Make sure you have the following dependencies installed on your enviroment:
- nodejs - Use fnm to install the latest LTS version, same as in .npmrc
- docker
- pnpm
- atlas - Database Schema and Migration management Tool
Run all the following commands in the root directory
# install dependencies
pnpm i
# run the database in background
docker compose up -d
# migrate the database
pnpm db:schema-push
# run tests
pnpm test
# run all apps in watch mode
pnpm dev
# Access the backend at http://localhost:3000 and the frontend at http://localhost:5173
# Optionally seed the database:
pnpm backend:seed
- dev dependencies
- all dev dependencies should be installed in root package.json to avoid version mismatches and other headaches.
- directories
- config
- Place here code that should be shared across ALL packages. They should be imported in the root package.json.
- packages
- Place here code that can be shared across multiple packages. Avoid doing it for just organization purposes.
- apps
- These are the deployable code units.
- config
- cache (turbo cache)
- if something is cached but shouldn't be, try to run
pnpm run clean:workspace
- if something is cached but shouldn't be, try to run
- test
- we using Vitest for unit and integration tests, and playwright for E2E tests.
- deploy
- We using terraform to create the infrastructure and GitHub Actions for CI and CD pipelines.