CampusHub REST API A backend API for a Campus Portal system with Role-Based Access Control (RBAC) for Students, Faculty, and Admins. Built using Node.js, Express, and MongoDB.
π₯ Roles
Student: View announcements, own results, courses, and materials
Faculty: Post announcements, upload course materials, view results
Admin: Manage users, publish results, create courses, full access
π Features JWT Authentication for secure login
API Key required for protected routes
Role-based route protection using middleware
CRUD for announcements, results, courses, and materials
Admin user management
Postman collection for testing
π Routes Auth
POST /auth/register β Register user (default role: student)
POST /auth/login β Login and get JWT
POST /auth/api-key β Generate API Key
GET /auth/me β Current user profile
Announcements
POST /announcements β Faculty/Admin only
GET /announcements β All roles
Results
POST /results β Admin only
GET /results/:studentId β Student (own), Faculty/Admin (any)
Courses & Materials
GET /courses β All roles
POST /courses β Admin only
POST /courses/:courseId/materials β Faculty only
GET /courses/:courseId/materials β Student/Faculty
Admin
GET /admin/users β List all users
PUT /admin/users/:id/role β Change user role
π Tech Stack Node.js | Express.js | MongoDB
π Postman Collection https://rushikeshwagh-2864771.postman.co/workspace/Rushikesh-Wagh's-Workspace~f27b2980-6629-4d1d-8d72-91d36eb3eeb4/collection/45876881-893080ea-d7ba-414f-8dde-8f1716ec7d97?action=share&creator=45876881