A comprehensive full-stack placement management system designed for colleges to streamline the recruitment process. The system facilitates communication between students, TPO (Training and Placement Officers), administrators, and recruiters.
- Go 1.23 + Gin Framework v1.10.1: RESTful API server
- MongoDB v1.17: Database for users, jobs, applications, companies
- JWT Authentication: Role-based access control (jwt/v5)
- Deployment: https://campusnest-backend-lkue.onrender.com
- Flutter Mobile App (
/frontend) - Mobile interface for students and TPO - Next.js Web App (
/web) - Admin and recruiter dashboard - ML Service (
/ML) - Resume parsing and analysis (Python/Flask)
- Flutter SDK (3.8.1+ / Dart SDK 3.8.1+)
- Node.js (20+) & npm
- Git
git clone https://github.com/D-Justin-Dsouza/DBMS_Project.git
cd DBMS_Projectcd frontend
flutter pub get
flutter runFor Android Emulator:
flutter emulators --launch <emulator_id>
flutter runFor iOS Simulator (macOS only):
open -a Simulator
flutter runFor Chrome (Web):
flutter run -d chromecd web
npm install
npm run devAccess at: http://localhost:3000
Email: teslin.j@admin.com
Password: password123
Access: Full system control, analytics, student management, company management
Email: frank.w@tpo.com
Password: password123
Access: Department-wise student management, job drive creation, placement analytics
Email:bob.w@student.com
Password: password123
Access: Job applications, resume upload, notifications, application tracking
Email: karen.h@innovateinc.com
Password: recruiter123
Access: View candidates, shortlist students, manage applications, download resumes
- View available job drives
- Apply for jobs with resume
- Track application status
- Receive notifications
- Update skills and profile
- View placement statistics
- Create and manage job drives
- View department-wise placement stats
- Send notifications to students
- Search and filter students
- Generate placement reports
- Manage drive applications
- View eligible candidates
- Download resumes in bulk
- Update application status
- Manage company job drives
- View candidate details
- Shortlist/reject candidates
- Manage all students (add single/bulk via CSV)
- Manage companies and recruiters
- Create job drives
- View college-wide analytics
- Export comprehensive reports
- Send announcements to all
DBMS_Project/
βββ backend/ # Go/Gin REST API
β βββ controllers/ # HTTP handlers
β βββ models/ # Data models
β βββ services/ # Business logic
β βββ routes/ # API routes
β βββ middleware/ # Auth middleware
β βββ config/ # Database config
β
βββ frontend/ # Flutter mobile app
β βββ lib/
β β βββ screens/ # UI screens
β β βββ student_screens/
β β βββ tpo_screens/
β β βββ admin/
β βββ assets/ # Images & resources
β
βββ web/ # Next.js 15.2 web app
β βββ app/ # Next.js app directory
β βββ components/ # React 19 components
β βββ public/ # Static assets
β
βββ ML/ # Python ML service
β βββ main.py # Flask API
β βββ models/ # ML models
β βββ requirements.txt
β
βββ README.md # This file
POST /auth/login - Login with email/password
GET /student/jobs - View available jobs
POST /student/jobs/:jobId/apply - Apply for job
GET /student/applications - My applications
GET /student/notifications - View notifications
POST /tpo/drives - Create job drive
GET /tpo/drives - List all drives
GET /tpo/analytics - Placement analytics
POST /tpo/notifications - Send notifications
GET /tpo/students - Department students
POST /admin/student - Add single student
POST /admin/students/upload-csv - Bulk upload via CSV
GET /admin/students - List all students
POST /admin/drives - Create job drive
GET /admin/drives - List all drives
GET /admin/analytics/placements - Placement stats
GET /admin/analytics/companies - Company analytics
GET /admin/companies - List all companies
POST /admin/company - Add company with recruiters
GET /rec/candidates - View eligible candidates
GET /rec/job-drives - Company job drives
PUT /rec/job-drives/:jobId/students/status - Update application status
GET /rec/resumes/download-all - Download all resumes
If you want to run the backend locally:
- Go 1.23+
- MongoDB (local or Atlas)
cd backend
# Set environment variables
export MONGODB_URI="mongodb://localhost:27017/campusNestDB"
export JWT_SECRET="your-secret-key-here"
# Install dependencies
go mod download
# Run server
go run main.goServer runs on: http://localhost:8080
- users - Students, TPOs, Admins, Recruiters
- jobs - Job postings/drives
- applications - Student applications
- companies - Registered companies
- resumes - Uploaded resume files
- Go 1.23 + Gin v1.10.1
- MongoDB Driver v1.17
- JWT v5 (golang-jwt/jwt)
- Bcrypt (golang.org/x/crypto)
- CORS (gin-contrib/cors v1.7.6)
- Flutter SDK 3.8.1 / Dart 3.8.1
- http v0.13.5 (API calls)
- shared_preferences v2.2.2 (Local storage)
- google_fonts v4.0.4
- file_picker v8.0.6 (Resume upload)
- fl_chart v0.68.0 (Charts)
- Next.js 15.2.3 (React 19)
- TypeScript 5
- Tailwind CSS 4
- Recharts v3.3.0 (Data visualization)
- Lucide React v0.548 (Icons)
- jsPDF v3.0.3 (PDF generation)
- Python 3.13 + Flask 3.1.2
- PyMuPDF v1.26.5 (PDF parsing)
- Groq v0.32.0 (LLM API)
- PyMongo v4.15.3
- Gunicorn v23.0.0 (WSGI server)
firstName,lastName,email,rollNumber,department,gender,cgpa,skills,placedStatus
John,Doe,john.doe@college.edu,CS2021001,Computer Science,Male,8.5,Python;Java;React,Not Placed
Jane,Smith,jane.smith@college.edu,IT2021045,Information Technology,Female,9.2,JavaScript;SQL,Placed
- Login as Admin
- Navigate to Students β Upload CSV
- Upload CSV to Cloudinary/file hosting
- Use API:
POST /api/v1/admin/students/upload-csv{ "csvUrl": "https://your-file-url.com/students.csv" }
Default Password: All uploaded students get password password123
- JWT-based authentication
- Role-based access control (Student/TPO/Admin/Recruiter)
- Password hashing with Bcrypt
- Protected API routes with middleware
- Token expiration (72 hours)