Onboarding Guide
Welcome to Ever Works! This guide will help you set up your development environment and make your first contribution.
π― Objectivesβ
By the end of this module, you will:
- β Have a fully configured development environment
- β Understand the project structure
- β Run the application locally
- β Make your first code change
- β Understand the development workflow
Estimated time: 1-2 days
Step 1: Environment Setupβ
1.1 Install Required Toolsβ
Follow the detailed Installation Guide to install:
- Node.js 20.19.0+
- pnpm (install)
- PostgreSQL 14+
- Git
- VS Code (recommended)
1.2 Clone the Repositoryβ
# Clone the repository
git clone https://github.com/ever-co/ever-works.git
cd ever-works
# Install dependencies (pnpm is the monorepo package manager)
pnpm install
1.3 Configure Environment Variablesβ
Follow the Environment Setup Guide to configure your apps/web/.env.local file.
Quick checklist:
- Database connection configured
- Authentication secrets set
- Payment provider keys added (optional for development)
- Email service configured (optional for development)
Step 2: Database Setupβ
2.1 Start PostgreSQLβ
# Using Docker (recommended)
docker run --name everworks-postgres \
-e POSTGRES_PASSWORD=password \
-e POSTGRES_DB=everworks \
-p 5432:5432 \
-d postgres:14
# Or use your local PostgreSQL installation
2.2 Run Migrationsβ
# Run database commands from the web app directory
cd apps/web
# Push schema to database
pnpm exec drizzle-kit push
# (Optional) Seed with sample data
pnpm run db:seed
2.3 Verify Database Connectionβ
# Open Drizzle Studio to inspect database (from apps/web/)
pnpm exec drizzle-kit studio
# Access at http://localhost:4983
Step 3: Start Development Serverβ
3.1 Run the Applicationβ
# Start development server (from monorepo root)
pnpm run dev
# Or start only the web app
pnpm run dev:web
# Server will start at http://localhost:3000
3.2 Verify Installationβ
Open your browser and verify:
- Homepage loads at
http://localhost:3000 - Can create an account
- Can login/logout
- API documentation accessible at
http://localhost:3000/api/reference - No console errors in browser DevTools
If you encounter issues, check the Troubleshooting Guide or ask your mentor.
Step 4: Understand Project Structureβ
4.1 Key Directoriesβ
directory-web-template/ # Turborepo monorepo root
βββ apps/
β βββ web/ # Next.js web application
β β βββ app/ # Next.js App Router
β β β βββ api/ # API routes
β β β βββ [locale]/ # Internationalized pages
β β β βββ layout.tsx # Root layout
β β βββ components/ # React components
β β β βββ ui/ # UI components (HeroUI)
β β β βββ ...
β β βββ lib/ # Utilities and libraries
β β β βββ db/ # Database (Drizzle ORM)
β β β βββ auth/ # Authentication
β β β βββ ...
β β βββ public/ # Static assets
β β βββ .content/ # Git-based CMS content
β β βββ messages/ # i18n translations
β βββ web-e2e/ # Playwright E2E tests
β βββ docs/ # Documentation site
βββ packages/ # Shared configs and libraries
βββ turbo.json # Turborepo pipeline config
βββ pnpm-workspace.yaml # pnpm workspace definition
βββ package.json # Root package.json
4.2 Important Filesβ
apps/web/app/api/**/route.ts- API endpointsapps/web/lib/db/schema/- Database schemasapps/web/components/- React componentsapps/web/messages/- Translation filesapps/web/.env.local- Environment variablesturbo.json- Turborepo pipeline configurationpnpm-workspace.yaml- Workspace package definitions
Learn more about the architecture β
Step 5: Development Workflowβ
5.1 Create a Feature Branchβ
# Always create a branch from main
git checkout main
git pull origin main
git checkout -b feature/your-feature-name
5.2 Make Changesβ
- Identify the files to modify
- Make your changes
- Test locally
- Generate API docs (if you modified API routes)
# If you modified API routes (from apps/web/)
cd apps/web && pnpm run generate-docs
5.3 Commit and Pushβ
# Stage changes
git add .
# Commit with descriptive message
git commit -m "feat: add user notification system"
# Push to remote
git push origin feature/your-feature-name
5.4 Create Pull Requestβ
- Go to GitHub repository
- Create Pull Request from your branch
- Fill in PR template
- Request code review
- Address feedback
- Merge when approved
Follow Conventional Commits:
feat:- New featurefix:- Bug fixdocs:- Documentation changesrefactor:- Code refactoringtest:- Adding tests
Step 6: Your First Taskβ
6.1 Practice Taskβ
Try this simple task to get familiar with the workflow:
Task: Add a new API endpoint that returns server information
- Create
apps/web/app/api/server-info/route.ts - Add Swagger documentation
- Generate docs with
cd apps/web && pnpm run generate-docs - Test in Scalar UI
- Create a PR
β Onboarding Checklistβ
Before moving to the next module, ensure you have:
- Development environment fully set up
- Application running locally
- Database connected and seeded
- Understand project structure
- Know the development workflow
- Created your first branch
- Made your first commit
- Completed the practice task
Next Stepsβ
Great job! You're ready to move on to:
- API Documentation - Learn the documentation system
- Best Practices - Learn coding standards
- Exercises - Practice with real tasks
Additional Resourcesβ
- Quick Reference - Essential commands and patterns
- Tech Stack - Technologies used
- Testing Guide - How to write tests
Need help? Ask your mentor or check the team Slack channel! π