A full-stack platform for the Collaborative Innovation & Development Cell, Department of Computer Science & Engineering — enabling hands-on learning, real-world project collaboration, mentorship, and innovation-driven growth.
- Home — Hero section, about preview, semester roadmap timeline, key activities, benefits & CTA
- About — Vision, mission, and detailed overview of CID-Cell
- Projects — Filterable project portfolio (Micro, Macro, Capstone, Open Source) with detail pages
- Events — Categorized events with status indicators (Upcoming / Completed) and detail pages
- Team — Showcase of CID-Cell members and leadership
- Roadmap — Interactive semester-wise learning roadmap
- Mentors — Browse and connect with faculty/industry mentors
- Contact — Reach out to the CID-Cell team
- Developers — Credits page for the development team
- Google OAuth — Seamless sign-in via Google using
@react-oauth/google - JWT Authentication — Secure API access with JSON Web Tokens
- Onboarding Flow — New users are guided to complete their profile before accessing protected features
- Role-Based Access — Four user roles:
student,mentor,faculty,admin
- Dashboard — Personalized overview with stats, projects, and activity
- Profile Management — Edit skills, social links, branch, batch, and bio
- Submit Projects — Propose new projects with rich-text descriptions
- My Projects — Track owned and contributed projects
- Join Requests — Request to join collaborative projects
- Chat Hub — Real-time direct messaging with other users
- Project Chat — Group chat within project teams
- Doubt Sessions — Ask and resolve doubts with mentors
- Find Mentor — Discover mentors by domain of expertise
- Notifications — Real-time bell notifications for activity updates
- Mentor Dashboard — Overview of mentees, doubt sessions, and assigned projects
- Mentor Chat — Direct messaging with students
- Faculty Dashboard — Overview of events and project mentorship
- Propose Event — Submit new event proposals with rich-text descriptions
- Admin Dashboard — Platform-wide analytics and overview
- User Management — View, search, and manage all user accounts
- Project Management — Approve, reject, and moderate project submissions
- Event Management — Create, edit, and manage events with rich-text editor
- Member Management — Manage CID-Cell membership records
- Direct Messaging — 1-on-1 real-time chat between users
- Project Group Chat — Dedicated chat rooms for project teams
- Doubt Sessions — Real-time Q&A between students and mentors
- Live Notifications — Instant push notifications for key events
- Auto Inactivity Cleanup — Contributors inactive for 10 days get warned; removed after 20 days
- Cloudinary Integration — Media uploads for avatars and project assets
- Rate Limiting — Global + per-route rate limiting for abuse prevention
- Helmet Security — HTTP headers hardened with Content Security Policy
- Email Service — Transactional emails via Nodemailer
- Task Management — Assign and track tasks within projects
| Technology | Purpose |
|---|---|
| React 18 | UI library |
| Vite 6 | Build tool & dev server |
| React Router 7 | Client-side routing |
| Tailwind CSS 3.4 | Utility-first styling |
| Lucide React | Icon library |
| Axios | HTTP client |
| Socket.IO Client | Real-time communication |
| React Quill | Rich-text editor |
| @react-oauth/google | Google OAuth integration |
| Technology | Purpose |
|---|---|
| Express 5 | Web framework |
| MongoDB + Mongoose 9 | Database & ODM |
| Socket.IO 4 | Real-time WebSocket server |
| JWT (jsonwebtoken) | Authentication tokens |
| Google Auth Library | Server-side Google OAuth verification |
| Cloudinary | Media storage & CDN |
| Nodemailer | Email service |
| Multer | File upload handling |
| Helmet | Security headers |
| express-rate-limit | API rate limiting |
| Zod | Input validation |
| Jest + Supertest | Testing |
cidcell/
├── frontend/ # React SPA
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ │ ├── Navbar.jsx
│ │ │ ├── Footer.jsx
│ │ │ ├── HeroSection.jsx
│ │ │ ├── Timeline.jsx
│ │ │ ├── ChatInterface.jsx
│ │ │ └── ...
│ │ ├── pages/ # Public & authenticated pages
│ │ │ ├── Home.jsx
│ │ │ ├── Dashboard.jsx
│ │ │ ├── Projects.jsx
│ │ │ ├── Chat.jsx
│ │ │ ├── FindMentor.jsx
│ │ │ └── ...
│ │ ├── admin/ # Admin panel
│ │ │ └── pages/
│ │ │ ├── AdminDashboard.jsx
│ │ │ ├── UserManagement.jsx
│ │ │ ├── ProjectManagement.jsx
│ │ │ ├── EventManagement.jsx
│ │ │ └── MemberManagement.jsx
│ │ ├── faculty/ # Faculty dashboard & event proposal
│ │ ├── mentor/ # Mentor dashboard & chat
│ │ ├── student/ # Student-specific features
│ │ ├── context/ # React context (AuthContext)
│ │ ├── constants/ # App-wide constants
│ │ ├── utils/ # Utility functions
│ │ └── App.jsx # Root component with routing
│ ├── package.json
│ ├── tailwind.config.cjs
│ └── vite.config.js
│
├── backend/ # Express API server
│ ├── config/
│ │ ├── db.js # MongoDB connection
│ │ └── cloudinaryConfig.js # Cloudinary setup
│ ├── controllers/ # Route handlers
│ │ ├── authController.js
│ │ ├── projectController.js (via routes)
│ │ └── eventController.js
│ ├── models/ # Mongoose schemas
│ │ ├── User.js
│ │ ├── Project.js
│ │ ├── Event.js
│ │ ├── Task.js
│ │ ├── Message.js
│ │ ├── Notification.js
│ │ ├── JoinRequest.js
│ │ ├── DoubtSession.js
│ │ └── ...
│ ├── routes/ # API route definitions
│ │ ├── authRoutes.js
│ │ ├── projectRoutes.js
│ │ ├── eventRoutes.js
│ │ ├── chatHubRoutes.js
│ │ ├── doubtRoutes.js
│ │ └── ...
│ ├── middleware/ # Auth, rate limiting, error handling
│ ├── socket/ # Socket.IO event handlers
│ ├── utils/ # Email service, helpers
│ ├── tests/ # Jest test suites
│ ├── server.js # App entry point
│ └── package.json
│
└── README.md
- Node.js ≥ 18
- npm ≥ 9
- MongoDB (local or MongoDB Atlas)
git clone https://github.com/KD2303/cidcell.git
cd cidcellcd backend
npm installCreate a .env file in the backend/ directory:
NODE_ENV=development
PORT=5000
MONGO_URI=mongodb://localhost:27017/mern_db2
JWT_SECRET=your_jwt_secret_here
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
CLOUDINARY_URL=cloudinary://your_cloudinary_urlStart the backend server:
npm start # Production
npm run dev # Development (with nodemon)cd frontend
npm installStart the frontend dev server:
npm run devThe app will be available at http://localhost:5173 (or the next available port).
cd frontend
npm run build # Create optimized production build
npm run preview # Preview production build locally| Prefix | Description |
|---|---|
/api/auth |
Google OAuth login, token verification |
/api/users |
User profile CRUD |
/api/projects |
Project CRUD, contributors, status |
/api/events |
Event CRUD, registration |
/api/members |
CID-Cell membership management |
/api/tasks |
Task assignment and tracking |
/api/messages |
Direct messaging |
/api/project-messages |
Project group chat messages |
/api/chat |
Chat hub (conversation list, history) |
/api/doubts |
Doubt sessions between students & mentors |
/api/join-requests |
Project join request workflow |
/api/notifications |
User notifications |
/api/upload |
File/image uploads via Cloudinary |
cd backend
npm test # Runs Jest test suites- Frontend — Deployed on Vercel → cidcell.vercel.app
- Backend — Can be deployed on Render, Railway, or any Node.js hosting
- Database — MongoDB Atlas recommended for production
| Command | Description |
|---|---|
npm run dev |
Start Vite dev server with HMR |
npm run build |
Build for production |
npm run preview |
Preview production build locally |
| Command | Description |
|---|---|
npm start |
Start the server |
npm run dev |
Start with nodemon (auto-reload) |
npm test |
Run Jest test suites |
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -m "Add your feature") - Push to the branch (
git push origin feature/your-feature) - Open a Pull Request
This project is private and maintained by the CID-Cell team, Department of CSE.
Built with ❤️ by CID-Cell — CSE Department
