Your development environment is now fully configured and running. Here's what we've set up:
| Service | Status | Port | URL |
|---|---|---|---|
| Client (Frontend) | ✅ Running | 5173 | http://localhost:5173 |
| Server (Backend) | ✅ Running | 52345 | http://localhost:52345 |
| MongoDB | ✅ Running | 27017 | localhost:27017 |
| Redis | ✅ Running | 6379 | localhost:6379 |
- ✅
.vscode/tasks.json- VS Code tasks for easy development - ✅
.vscode/launch.json- Debug configurations - ✅
.vscode/settings.json- Project-specific settings - ✅
.vscode/extensions.json- Recommended extensions - ✅
server/.env- Server environment variables - ✅
client/.env.development- Client environment variables - ✅
docker-compose.dev.yaml- Docker services configuration
Method 1: Using Tasks (Recommended)
- Press
Ctrl+Shift+P(Command Palette) - Type "Run Task"
- Select from:
- "Start All (Dev)" - Starts both server and client
- "Start Server (Dev)" - Server only
- "Start Client (Dev)" - Client only
- "Start Docker Services" - Start MongoDB & Redis
- "Stop Docker Services" - Stop MongoDB & Redis
Method 2: Using Terminal
# Server
cd server
pnpm dev
# Client (in another terminal)
cd client
pnpm devOpen these URLs in your browser:
- Frontend Application: http://localhost:5173
- Backend API: http://localhost:52345
- Edit Files in VS Code
- Hot Reload - Changes are automatically reflected
- Client: Vite hot-reload
- Server: Nodemon auto-restart
# Server tests
cd server
pnpm test
# Client tests (when available)
cd client
pnpm test# Format code
pnpm format
# Check linting
pnpm lint
# Fix linting issues
pnpm lint-fix # (server only)- Go to Run and Debug panel (Ctrl+Shift+D)
- Select "Debug Server" from dropdown
- Press F5 or click the green play button
- Set breakpoints in your code
Client (Frontend):
client/src/
├── Components/ # Reusable UI components
├── Pages/ # Page components
├── Features/ # Feature-specific logic
├── Hooks/ # Custom React hooks
├── Utils/ # Utility functions
├── store.js # Redux store
└── Routes/ # Routing configuration
Server (Backend):
server/src/
├── controllers/ # Request handlers
├── routes/ # API routes
├── models/ # Database models
├── middleware/ # Express middleware
├── service/ # Business logic
├── validation/ # Input validation
└── utils/ # Utility functions
Backend (API Endpoint):
- Create model in
server/src/db/models/ - Add validation in
server/src/validation/ - Create controller in
server/src/controllers/ - Add route in
server/src/routes/
Frontend (UI):
- Create component in
client/src/Components/ - Add page in
client/src/Pages/ - Configure route in
client/src/Routes/ - Add Redux slice if needed in
client/src/Features/
- Make changes to code
- Check browser for frontend changes
- Use Thunder Client or Postman for API testing
- Check terminal for errors
VS Code will prompt you to install these. Click "Install" when prompted:
- ✅ ESLint - Code linting
- ✅ Prettier - Code formatting
- ✅ ES7+ React Snippets - React code snippets
- ✅ Docker - Docker management
- ✅ MongoDB for VS Code - Database viewer
- ✅ Thunder Client - API testing (like Postman)
# All containers
docker-compose -f docker-compose.dev.yaml logs -f
# Specific service
docker logs checkmate_mongodb_dev -f
docker logs checkmate_redis_dev -f- Server logs appear in the "Start Server (Dev)" terminal
- Client logs appear in the "Start Client (Dev)" terminal
Connect using MongoDB VS Code extension:
- Install "MongoDB for VS Code" extension
- Connection string:
mongodb://localhost:27017 - Database:
checkmate
Using MongoDB Shell:
docker exec -it checkmate_mongodb_dev mongoshConnect using Redis CLI:
docker exec -it checkmate_redis_dev redis-cli# Check if port is already in use
netstat -ano | findstr :52345
# Kill the process if needed
taskkill /PID <PID> /F
# Restart server
pnpm dev# Check if port is already in use
netstat -ano | findstr :5173
# Clear Vite cache
cd client
rm -r node_modules/.vite
pnpm dev# Check if MongoDB is running
docker ps
# Restart MongoDB
docker restart checkmate_mongodb_dev
# View MongoDB logs
docker logs checkmate_mongodb_dev# Reinstall dependencies
cd server
rm -r node_modules
pnpm install
cd ../client
rm -r node_modules
pnpm install- Official Docs: https://docs.checkmate.so/
- React: https://react.dev/
- Material-UI: https://mui.com/
- Express: https://expressjs.com/
- MongoDB: https://www.mongodb.com/docs/
- Redis: https://redis.io/docs/
You're all set! Here's what you can do now:
- Explore the codebase - Browse through the files
- Run the application - See it in action at http://localhost:5173
- Make a small change - Try modifying a component
To start developing:
- Open http://localhost:5173 in your browser
- Check that both terminals are running without errors
- Make a small change to test hot-reload
- Start building your feature!
Happy coding! 🚀