Skip to content
Β 
Β 

Repository files navigation

CampusCurator πŸŽ“

A comprehensive campus-wide platform connecting students, mentors, and administrators to manage academic project drives efficiently through all stages - from group formation to final results.

🌟 Features

For Students

  • πŸ“ View and join active project drives
  • πŸ‘₯ Create or join project groups with invitation codes
  • 🎯 Set mentor preferences for group allotment
  • πŸ“„ Submit project synopsis for mentor approval
  • πŸ“Š Submit checkpoint evaluations (mid-sem, end-sem)
  • πŸ† View evaluation feedback and final results

For Mentors

  • πŸ‘€ View assigned groups and student details
  • βœ… Review and approve/reject project synopsis
  • πŸ“ Evaluate checkpoint submissions
  • πŸ’¬ Provide feedback and improvement suggestions
  • πŸ“ˆ Track student progress throughout the drive

For Admins

  • πŸš€ Create and manage project drives
  • πŸ‘₯ Manage student batches and mentor lists
  • βš™οΈ Configure group sizes and mentor capacity
  • πŸ”„ Manual or automatic mentor allotment
  • πŸ“Š View comprehensive drive statistics
  • 🎯 Manage stage transitions and deadlines
  • πŸ“’ Declare and publish final results

πŸ—οΈ Architecture

Tech Stack

  • Backend: Node.js, Express.js
  • Database: MongoDB (Atlas)
  • ODM: Mongoose
  • Authentication: JWT (JSON Web Tokens)
  • File Upload: Multer
  • Validation: express-validator

Project Stages

  1. Drive Creation - Admin sets up project drive with configuration
  2. Group Formation - Students create/join groups with invitation codes
  3. Mentor Allotment - Manual or automatic mentor assignment
  4. Synopsis Submission - Groups submit project proposals for approval
  5. Checkpoints/Evaluations - Progress tracking through multiple evaluations
  6. Result Declaration - Final consolidated results publication

πŸ“ Project Structure

CampusCurator/
β”œβ”€β”€ backend/                    # Node.js/Express API
β”‚   β”œβ”€β”€ config/                # Configuration files
β”‚   β”‚   └── database.js       # MongoDB connection
β”‚   β”œβ”€β”€ controllers/          # Business logic
β”‚   β”‚   β”œβ”€β”€ authController.js
β”‚   β”‚   β”œβ”€β”€ driveController.js
β”‚   β”‚   └── groupController.js
β”‚   β”œβ”€β”€ middleware/           # Express middleware
β”‚   β”‚   β”œβ”€β”€ auth.js          # JWT authentication
β”‚   β”‚   β”œβ”€β”€ errorHandler.js  # Error handling
β”‚   β”‚   └── upload.js        # File upload config
β”‚   β”œβ”€β”€ models/              # Mongoose schemas
β”‚   β”‚   β”œβ”€β”€ User.js
β”‚   β”‚   β”œβ”€β”€ Drive.js
β”‚   β”‚   β”œβ”€β”€ Group.js
β”‚   β”‚   β”œβ”€β”€ Synopsis.js
β”‚   β”‚   β”œβ”€β”€ CheckpointSubmission.js
β”‚   β”‚   β”œβ”€β”€ Evaluation.js
β”‚   β”‚   β”œβ”€β”€ Result.js
β”‚   β”‚   └── Notification.js
β”‚   β”œβ”€β”€ routes/              # API routes
β”‚   β”‚   β”œβ”€β”€ auth.js
β”‚   β”‚   β”œβ”€β”€ drives.js
β”‚   β”‚   β”œβ”€β”€ groups.js
β”‚   β”‚   β”œβ”€β”€ synopsis.js
β”‚   β”‚   β”œβ”€β”€ checkpoints.js
β”‚   β”‚   β”œβ”€β”€ evaluations.js
β”‚   β”‚   β”œβ”€β”€ results.js
β”‚   β”‚   └── notifications.js
β”‚   β”œβ”€β”€ uploads/            # File storage
β”‚   β”œβ”€β”€ .env.example       # Environment template
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ server.js         # Entry point
β”‚   └── README.md        # Backend docs
β”œβ”€β”€ database/                # Database documentation
β”‚   β”œβ”€β”€ SCHEMA.md          # Complete schema reference
β”‚   └── DATABASE_SETUP.md # MongoDB Atlas setup guide
β”œβ”€β”€ QUICKSTART.md         # Quick setup guide
β”œβ”€β”€ README.md            # This file
└── LICENSE

πŸš€ Quick Start

Prerequisites

  • Node.js (v14+)
  • npm or yarn
  • MongoDB Atlas account (free tier)

1. Clone Repository

git clone https://github.com/ankitsingh015/CampusCurator.git
cd CampusCurator

2. Setup MongoDB Atlas

Follow the detailed guide in database/DATABASE_SETUP.md to:

  • Create a free MongoDB Atlas cluster
  • Set up database user and network access
  • Get your connection string

3. Install & Configure Backend

cd backend
npm install
cp .env.example .env
# Edit .env with your MongoDB URI and other configs

4. Start Server

npm run dev

Server runs at http://localhost:5000

5. Test API

# Health check
curl http://localhost:5000/health

# Register admin user
curl -X POST http://localhost:5000/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Admin",
    "email": "admin@example.com",
    "password": "admin123",
    "role": "admin"
  }'

πŸ“– For detailed setup instructions, see QUICKSTART.md

πŸ“š Documentation

πŸ”‘ API Endpoints

Authentication

POST   /api/auth/register    - Register new user
POST   /api/auth/login       - Login user
GET    /api/auth/me          - Get current user
GET    /api/auth/logout      - Logout user

Drives (Admin)

POST   /api/drives           - Create drive
GET    /api/drives           - List drives
GET    /api/drives/:id       - Get drive details
PUT    /api/drives/:id       - Update drive
DELETE /api/drives/:id       - Delete drive
GET    /api/drives/:id/stats - Get statistics
PUT    /api/drives/:id/stage - Update stage

Groups (Students)

POST   /api/groups                      - Create group
GET    /api/groups                      - List groups
GET    /api/groups/:id                  - Get group details
POST   /api/groups/join                 - Join with code
PUT    /api/groups/:id/members/:mid    - Manage members
DELETE /api/groups/:id                  - Delete group
PUT    /api/groups/:id/mentor          - Allot mentor (Admin)
POST   /api/groups/auto-allot/:driveId - Auto-allot (Admin)

Full API documentation in backend/README.md

πŸ—„οΈ Database Schema

Collections

  1. Users - Students, Mentors, Admins
  2. Drives - Project drive configurations
  3. Groups - Student groups with members
  4. Synopsis - Project proposals
  5. CheckpointSubmissions - Progress submissions
  6. Evaluations - Mentor evaluations
  7. Results - Final consolidated results
  8. Notifications - System notifications

Detailed schema in database/SCHEMA.md

πŸ” User Roles

Role Permissions
Admin Create drives, manage all groups, allot mentors, publish results
Mentor View assigned groups, review synopsis, evaluate checkpoints
Student Create/join groups, submit synopsis & checkpoints, view results

πŸ› οΈ Development

Environment Variables

PORT=5000
NODE_ENV=development
MONGODB_URI=mongodb+srv://...
JWT_SECRET=your_secret_key
JWT_EXPIRE=30d
FRONTEND_URL=http://localhost:3000
MAX_FILE_SIZE=10485760

Run in Development

cd backend
npm run dev  # Auto-reload with nodemon

Run in Production

cd backend
npm start

πŸ§ͺ Testing

Manual Testing with curl

# Register
curl -X POST http://localhost:5000/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{"name":"Test","email":"test@test.com","password":"test123","role":"student","batch":"2025"}'

# Login
curl -X POST http://localhost:5000/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"test@test.com","password":"test123"}'

# Use Postman for easier testing

🚧 Roadmap

  • Backend API with authentication
  • Drive management system
  • Group formation with invitation codes
  • Mentor allotment (manual & auto)
  • Database schema and models
  • Complete synopsis submission workflow
  • Checkpoint submission with file uploads
  • Evaluation system with feedback
  • Result declaration and publication
  • Email notification system
  • Real-time notifications (Socket.io)
  • Frontend application (React/Vue)
  • File preview and management
  • Analytics dashboard
  • Mobile responsive design

🀝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

πŸ“ License

This project is licensed under the terms included in the LICENSE file.

πŸ‘₯ Authors

πŸ™ Acknowledgments

  • MongoDB Atlas for database hosting
  • Express.js community
  • All contributors and testers

πŸ“ž Support

For issues, questions, or suggestions:

  • Open an issue on GitHub
  • Check documentation in /database and /backend
  • Review MongoDB Atlas and Express.js documentation

Made with ❀️ for efficient campus project management

About

A campus-wide platform connecting students, mentors, and administrators to manage academic project drives efficiently.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages