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
Before you begin, ensure you have installed:
- Bun (v1.2.18 or higher)
- Node.js (v18 or higher)
- Git
git clone https://github.com/call-0f-code/codenest.git
cd codenestInstall all dependencies (root, backend, and frontend):
bun run install:allOr install them separately:
# Install root dependencies
bun install
# Install backend dependencies
bun run install:backend
# Install frontend dependencies
bun run install:frontendCreate a .env file in the backend directory:
cd backend
cp .env.example .envEdit the .env file with your configuration.
Create a .env file in the frontend directory if needed:
cd frontend
cp .env.example .envRun both frontend and backend concurrently:
bun run devOr run them separately:
# Run backend only
bun run backend-dev
# Run frontend only
bun run frontend-dev- Frontend: http://localhost:5173
- Backend: http://localhost:3000 (or as configured)
codenest/
├── 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
│ ├── tests/ # Backend tests
│ └── 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
│ └── package.json
└── package.json # Root package.json
cd backend
bun testcd frontend
bun testcd backend
bun run lint
bun run lint:fix # Auto-fix issuescd frontend
bun run lintcd backend
bun run formatcd frontend
bun run buildcd frontend
bun run previewThe 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