CodeNest is a comprehensive member management and collaboration platform built for the Call of Code (CoC) club. This application helps club members track their progress, share interview experiences, manage DSA topics, and build their professional profiles.
- User Profiles: Build and showcase professional profiles
- Interview Experiences: Share and browse interview experiences
- DSA Dashboard: Track Data Structures and Algorithms progress
- Progress Tracking: Monitor individual learning progress
- Topic Management: Organize and track various CS topics
- React - UI library
- Vite - Build tool
- TailwindCSS - Styling
- React Router - Navigation
- Axios - HTTP client
- React Query - Data fetching
- React Hot Toast - Notifications
- Radix UI - Component primitives
- Bun - JavaScript runtime
- Express - Web framework
- TypeScript - Type safety
- JWT - Authentication
- Zod - Schema validation
- Helmet - Security middleware
- Rate Limiting - API protection
The easiest way to run the full stack β no Bun or Node required on your host machine.
# 1. Set up the COC API env (gitignored β copy template and fill in Supabase credentials)
cp docker/.env.example.coc-api docker/.env.local.coc-api
# 2. Review/edit the backend and frontend env files (safe defaults pre-filled)
docker/.env.local.backend
docker/.env.local.frontend
# 3. Build images and start all three services
docker compose up --build
# 4. Enable hot-reload during development (file changes sync automatically)
docker compose up --build --watch| Service | URL |
|---|---|
| Member Frontend | http://localhost:5173 |
| Member Backend API | http://localhost:8000 |
| COC API | http://localhost:3000 |
For the full setup guide β environment variables, CI/CD, watch mode, and troubleshooting β see DOCKER.md.
- Bun (v1.2.18 or higher)
- Git
git clone https://github.com/call-0f-code/codenest.git
cd codenest# Install all dependencies (root, backend, and frontend)
bun run install:allOr install them separately:
bun install # root
bun run install:backend # backend
bun run install:frontend # frontendcd backend
cp .env.example .env
# Open .env and fill in the required values| Variable | Description |
|---|---|
JWT_SECRET |
Secret for signing access tokens |
REFRESH_SECRET |
Secret for signing refresh tokens |
SALTING |
bcrypt cost factor (e.g. 8) |
API_URL |
COC API base URL β use http://localhost:3000 for local dev |
PORT |
Backend port (default 8000) |
NODE_ENV |
Set to production for secure refresh-token cookies |
ALLOWED_ORIGINS |
Comma-separated allowed CORS origins |
RATE_LIMIT_WINDOW_MINUTES |
Rate-limit window in minutes |
RATE_LIMIT_MAX_REQUESTS |
Max requests per window |
EMAIL_ID |
Sender address for outgoing emails |
CONTACT_EMAIL_ID |
Club contact email |
RESEND_API_KEY |
API key from resend.com |
ACCESS_TTL |
Access token lifetime in minutes (e.g. 15) |
REFRESH_TTL |
Refresh token lifetime in days (e.g. 7) |
cd frontend
cp .env.example .env| Variable | Description |
|---|---|
VITE_API_URL |
Backend URL visible from the browser (e.g. http://localhost:8000) |
# Run both frontend and backend concurrently
bun run devOr run them separately:
bun run backend-dev # backend only
bun run frontend-dev # frontend only- Frontend: http://localhost:5173
- Backend: http://localhost:8000
codenest/
βββ docker-compose.yml # Docker Compose stack
βββ docker/ # Dockerfiles and env templates
β βββ Dockerfile.backend
β βββ Dockerfile.frontend
β βββ .env.example.coc-api
β βββ .env.local.backend
β βββ .env.local.coc-api # gitignored β copy from .env.example.coc-api
β βββ .env.local.frontend
βββ backend/ # Backend application
β βββ src/
β β βββ config/ # Configuration files
β β βββ controllers/ # Route controllers
β β βββ middleware/ # Custom middleware
β β βββ routes/ # API routes
β β βββ types/ # TypeScript types
β β βββ utils/ # Utility functions
β β βββ validation/ # Input validation
β β βββ app.ts # Express app setup
β β βββ server.ts # Server entry point
β βββ .env.example
β βββ package.json
βββ frontend/ # Frontend application
β βββ public/ # Static assets
β βββ src/
β β βββ assets/ # Images, fonts, etc.
β β βββ components/ # React components
β β βββ context/ # React context
β β βββ hooks/ # Custom hooks
β β βββ lib/ # Libraries
β β βββ pages/ # Page components
β β βββ routes/ # Route configuration
β β βββ utils/ # Utility functions
β β βββ App.jsx # Main App component
β βββ .env.example
β βββ package.json
βββ package.json # Root package.json (workspace scripts)
# Backend
cd backend
bun run lint
bun run lint:fix # auto-fix
# Frontend
cd frontend
bun run lintcd backend
bun run formatcd frontend
bun run build # production build
bun run preview # preview the build locallyThe backend API is available at /api/v1 with the following endpoints:
- Members: User and member management
- Interview: Interview experience sharing
- Progress: Progress tracking
- Topics: Topic management
A health check endpoint is available at /health.
This is a private repository for Call of Code club members. If you're a member and want to contribute:
- Create a feature branch
- Make your changes
- Test your changes thoroughly
- Submit a pull request
For questions or issues, please contact the Call of Code club administrators or create an issue in the repository.
This project is private and intended for use by Call of Code club members only.
Built with β€οΈ by the Call of Code community