Developer Onboarding Checklist¶
Welcome to the Coaching App team! This checklist will guide you through setting up your development environment and making your first contribution.
β Prerequisites Installation¶
Required Tools¶
- Docker Desktop (v20.10+)
- Download: https://www.docker.com/products/docker-desktop
-
Verify:
docker --versionanddocker compose version -
Node.js (v18 or v20 LTS)
- Download: https://nodejs.org/
- Verify:
node --version -
Should output:
v18.x.xorv20.x.x -
Yarn (v1.22+ or v4+)
- Install:
npm install -g yarnorcorepack enable -
Verify:
yarn --version -
Git (v2.30+)
- Download: https://git-scm.com/downloads
- Verify:
git --version
Mobile Development (Optional - for mobile package work)¶
- Expo CLI
- Install:
npm install -g expo-cli -
Verify:
expo --version -
iOS Simulator (macOS only) or Android Studio (for Android emulator)
- iOS: Install Xcode from App Store
- Android: https://developer.android.com/studio
Recommended Tools¶
- VS Code with extensions:
- ESLint
- Prettier
- Docker
- React Native Tools
- Expo Tools
-
Jest Runner
-
Database Client (optional):
- Postico (macOS)
- pgAdmin
- DBeaver
π Access & Setup¶
- Get repository access
- Request access from team lead
-
Verify you can clone the repository
-
Clone the repository
- Set up Git configuration
- Copy environment files
π First Run¶
- Install dependencies
- Start Docker services
- First run downloads images (5β10 minutes)
- Watch for: PostgreSQL "ready to accept connections", Redis "Ready to accept connections", backend "listening on :3001"
-
Keep this terminal open
-
Run database migrations and seed
- Verify services are running
- Backend API: http://localhost:3001/api/auth/session (returns
{"session":null}) - Frontend Web: http://localhost:8081
- MinIO Console: http://localhost:9001 (minioadmin / minioadmin)
- Mailpit: http://localhost:8025
- Drizzle Studio: http://localhost:4983
# Or: docker compose -f docker-compose.yml -f docker-compose.dev.yml up
- First run downloads images (5-10 minutes)
- Watch for these messages:
- PostgreSQL: "database system is ready to accept connections"
- Redis: "Ready to accept connections"
- Backend: "Server is running on port 3001"
- Frontend: "Waiting on http://localhost:3000"
- Keep this terminal open
- Verify Docker services are running
- Backend API: http://localhost:3001/api/health
- Should return
{"status":"ok"}
- Should return
- Frontend Web: http://localhost:3000
- Should show "Hello from Web! π"
- Backend status should show "Hello from Backend!"
-
MinIO Console: http://localhost:9001 (login page)
-
Email:
platformadmin@coaching.test -
Password:
admin123 -
Login to MinIO Console
- URL: http://localhost:9001
- Access Key:
minioadmin - Secret Key:
minioadmin -
You should see the MinIO admin panel
-
Start mobile app (in new terminal)
- Opens Expo Dev Tools in browser
- Press
ifor iOS simulator,afor Android emulator, orwfor web -
Or scan QR code with Expo Go app on your phone
-
Verify mobile app is running
- Should display: "Hello from Mobile! π±"
- Platform info showing your OS (iOS/Android) and version
- Backend status section should show: "Hello from Backend!"
- If you see "Failed to connect to backend", ensure Docker services are running
π§ͺ Verify Development Environment¶
- Test the backend
- Run tests
- Run linters
- Check TypeScript
π Learn the Codebase¶
- Read core documentation
- Architecture β System design
- Development β Workflow and Docker
- API Endpoints β Backend route reference
-
Schema Management β Drizzle migrations
-
Explore the folder structure
- Review backend source
backend/src/db/schema/β Drizzle table definitionsbackend/src/routes/β Hono routersbackend/src/lib/auth.tsβ Better-auth config-
backend/src/middleware/β Auth + role guards -
Review shared types
shared/src/β Types shared across frontend and backend
π οΈ Make Your First Contribution¶
- Pick a good first issue
- Look for issues tagged
good-first-issueordocumentation -
Ask team lead for suggestions
-
Create a feature branch
- Make your changes
- Follow Code Quality guidelines
- Write tests for new functionality
-
Update documentation if needed
-
Test your changes
- Commit with conventional format
- Push and create PR
π Technology Documentation¶
π Common Issues¶
Docker Issues¶
# Clean up and restart
docker compose down -v
docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build
pnpm Issues¶
β¨ You're Ready!¶
Welcome aboard! π