-
-
Notifications
You must be signed in to change notification settings - Fork 887
Development environment
Before anything else, please read the Contributing guidelines.
- Node.js 22+
- npm
- Git
- A GitHub account
Go to the TREK repository and click Fork to create your own copy.
Then clone your fork locally:
# Clone your fork, checking out the dev branch
git clone -b dev git@github.com:your-username/TREK.git
cd TREKAdd the original repository as upstream so you can pull in future updates:
git remote add upstream git@github.com:mauriceboe/TREK.gitYou should now have two remotes:
| Remote | URL | Purpose |
|---|---|---|
origin |
git@github.com:your-username/TREK.git |
Your fork — push changes here |
upstream |
git@github.com:mauriceboe/TREK.git |
Main repo — pull updates from here |
Before starting any work, make sure your local dev branch is in sync with upstream:
git fetch upstream
git rebase upstream/dev # or: git merge upstream/devWorking on a dedicated branch keeps your changes isolated and makes PRs easier to review:
git checkout -b fix/my-changes origin/devBranch naming conventions:
-
feat/short-descriptionfor new features -
fix/short-descriptionfor bug fixes -
chore/short-descriptionfor maintenance tasks
The repo is an npm workspace monorepo. One command at the root installs everything:
npm ciThese commands run across all workspaces at once and are the recommended way to work:
| Command | Description |
|---|---|
npm run dev |
Build shared, then start shared (watch), server, and client together via concurrently
|
npm run build |
Build shared → server → client in order |
npm test |
Run tests in shared, server, and client |
npm run test:cov |
Run coverage for server and client |
npm run test:e2e |
Run end-to-end tests (server) |
npm run lint |
Lint shared, server, and client |
npm run format |
Format shared, server, and client |
npm run format:check |
Check formatting across all workspaces |
The @trek/shared package is the single source of truth for code shared between the client and server. It currently holds Zod schemas that define API contracts (request/response shapes, common primitives, pagination). Both workspaces import from it so schema changes automatically propagate to both sides.
Upcoming: the i18n translation layer will be migrated into this package so that translation keys and types are enforced across the stack from one place.
| Command | Description |
|---|---|
npm run build |
Compile shared package (tsup) |
npm run build:watch |
Compile in watch mode |
npm test |
Run tests |
npm run typecheck |
Type-check without emitting |
npm run lint |
Lint source |
npm run format |
Format source |
| Command | Description |
|---|---|
npm start |
Start the server (production) |
npm run dev |
Start the server in watch mode |
npm run build |
Compile server |
npm run typecheck |
Type-check without emitting |
npm test |
Run all tests |
npm run test:unit |
Run unit tests only |
npm run test:integration |
Run integration tests |
npm run test:ws |
Run WebSocket tests |
npm run test:parity |
Run parity tests |
npm run test:e2e |
Run end-to-end tests |
npm run test:watch |
Run tests in watch mode |
npm run test:coverage |
Run tests with coverage report |
npm run lint |
Lint source |
npm run format |
Format source |
| Command | Description |
|---|---|
npm run dev |
Start the Vite dev server |
npm run build |
Build for production (runs icon generation first) |
npm run preview |
Preview the production build locally |
npm test |
Run all tests |
npm run test:unit |
Run unit tests only |
npm run test:integration |
Run integration tests |
npm run test:watch |
Run tests in watch mode |
npm run test:coverage |
Run tests with coverage report |
npm run lint |
Lint source |
npm run format |
Format source |
git add .
git commit -m "fix: describe your change"
# Push to your fork's dev branch
git push origin fix/my-changes:dev
# Or if working directly on dev
git push origin devThen open a Pull Request from your fork to mauriceboe/TREK targeting the dev branch. If your PR only modifies files under wiki/, it is exempt from branch enforcement and may target any branch.
- Always branch off from an up-to-date
dev— rungit fetch upstream && git rebase upstream/devbefore starting new work. - Run tests before pushing:
npm testat the repo root runs all workspaces. - Follow the commit message conventions described in the Contributing guidelines.
- Home
- Quick Start
- Install: Docker
- Install: Docker Compose
- Install: Helm
- Install: Proxmox VE (LXC)
- Install: Unraid
- Install: Portainer
- Reverse Proxy
- Environment Variables
- Updating
- Login and Registration
- OIDC SSO
- Two-Factor Authentication
- Passkeys
- Password Reset
- User Settings
- General Settings
- Appearance Settings
- Map Settings
- Notifications
- Offline Mode and PWA
- Languages
- My Trips Dashboard
- Creating a Trip
- Trip Members and Sharing
- Trip Planner Overview
- Places and Search
- Day Plans and Notes
- Map Features
- Route Optimization
- Weather Forecasts
- Reservations and Bookings
- AI Booking Import
- Transport: Flights, Trains, Cars
- Accommodations
- Costs
- Currencies
- Packing Lists
- Packing Templates
- Todos and Tasks
- Documents and Files
- Tags and Categories
- Calendar Feeds
- Real-Time Collaboration
- Collab Chat
- Collab Notes
- Collab Polls
- What's Next Widget
- Public Share Links
- Invite Links