A production-grade, full-stack web application built as part of the ML Engineer Internship โ Phase 1 at ONEDATA SOFTWARE SOLUTIONS PRIVATE LIMITED.
EduManage is a comprehensive academic management platform that digitizes and automates every aspect of an institution's operations โ from student records and attendance to fee management and AI-powered placement analytics. It serves three distinct user roles through dedicated portals, each with its own access controls and tailored interface.
- ๐ JWT Authentication with RBAC (Admin / Faculty / Student)
- ๐จโ๐ Student & Faculty Management with soft delete and reactivation
- ๐ Course Enrollment with prerequisite and credit-limit validation
- ๐ Credit-Weighted GPA (SGPA & CGPA) with auto grading
- ๐ Attendance Tracking with rule engine and auto-notifications
- ๐ณ Fee Management with partial payments and scholarship automation
- ๐ค 3 AI Features powered by Groq and Gemini
- ๐ Docker + GitHub Actions for containerization and CI/CD
- ๐ Swagger UI auto-generated API docs at
/docs
| Technology | Version | Purpose |
|---|---|---|
| FastAPI | 0.115.0 | Async REST API framework |
| Python | 3.12 | Backend language |
| SQLAlchemy | 2.0.36 | Async ORM |
| PostgreSQL | 16 | Primary database |
| Redis | Alpine | Caching & rate limiting |
| Alembic | 1.14.0 | Database migrations |
| Pydantic | 2.9.2 | Data validation |
| python-jose | 3.3.0 | JWT tokens |
| passlib[bcrypt] | 1.7.4 | Password hashing |
| Gemini | 2.5 Pro | Gemini AI client |
| Groq | Llama 3.3 | Groq AI client |
| Technology | Version | Purpose |
|---|---|---|
| React | 18.x | UI framework |
| Vite | 5.x | Build tool |
| Tailwind CSS | 3.x | Utility-first styling |
| React Router DOM | 6.x | Client-side routing |
| Axios | 1.x | HTTP client |
| Recharts | 2.x | Data visualization |
| Lucide React | 0.383.0 | Icons |
| Tool | Purpose |
|---|---|
| Docker + Docker Compose | Multi-container orchestration |
| GitHub Actions | CI/CD pipeline |
| pgAdmin | PostgreSQL administration |
| Postman | API testing |
student-management-system/
โโโ backend/
โ โโโ app/
โ โ โโโ api/ # 16 router modules (one per feature domain)
โ โ โโโ models/ # 23 SQLAlchemy ORM models
โ โ โโโ schemas/ # Pydantic request/response schemas
โ โ โโโ services/ # Business logic (GPA, attendance, AI, audit)
โ โ โโโ auth/ # JWT, bcrypt, RBAC permissions
โ โ โโโ middleware/ # Rate limiter, request logger, error handler
โ โ โโโ database/ # Async connection factory, session management
โ โโโ alembic/ # Migration scripts
โ โโโ tests/ # pytest test suites
โโโ frontend/
โ โโโ src/
โ โโโ apps/
โ โ โโโ admin/ # Admin portal pages & layout
โ โ โโโ faculty/ # Faculty portal pages & layout
โ โ โโโ student/ # Student portal pages & layout
โ โโโ components/ui/ # Shared UI components
โ โโโ services/ # Axios API client + AI service layer
โ โโโ context/ # React AuthContext with role helpers
โ โโโ hooks/ # Custom hooks (useSessionState)
โโโ .github/workflows/ # GitHub Actions CI/CD
โโโ docker-compose.yml
โโโ StudentManagementSystem.postman_collection.json
Analyzes a student's academic profile and returns:
- Placement probability (0โ100%)
- Target companies and eligible tiers (FAANG / Mid-tier / Service / Startup)
- Skill gap analysis with priorities
- Personalized 30-day preparation plan
Processes full attendance history and returns:
- Risk level (Safe / Warning / Critical)
- Most skipped day and subject
- Weekly trend (Improving / Stable / Declining)
- Projected semester-end status and corrective action plan
- Injected with student's live CGPA, attendance, fee dues, and enrolled courses
- Multi-turn conversation with 6-message history
- Available as a floating widget across all student portal pages
- AI reports can be saved to the database for later reference
- bcrypt password hashing (12 work factor rounds)
- JWT Bearer tokens (HS256, 30-minute expiry)
- RBAC with centralized permission guards (
require_admin,require_faculty_or_admin,require_any_role) - Ownership enforcement โ students can only access their own data
- Rate limiting โ Redis sliding window, 100 req/min per IP
- OTP password reset via email (6-digit, 15-minute expiry)
- Audit logging โ every mutation recorded with user, entity, timestamp
- Soft delete โ no hard deletion of student or faculty records
- Docker & Docker Compose
- Node.js 20+
- Python 3.12
git clone https://github.com/Nekilesh001/Student_Management_System.git
cd Dtudent_Management_SystemCreate backend/.env:
DATABASE_URL=postgresql+asyncpg://YOUR_Passwor/DB_NAME
SECRET_KEY=your_super_secret_key
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
REDIS_URL=redis://localhost:6379
DEBUG=True
GROQ_API_KEY=YOUR_KEY
GEMINI_API_KEY=YOUR_KEY
MAIL_USERNAME=your_gmail@gmail.com
MAIL_PASSWORD=your_gmail_app_password
MAIL_FROM=your_gmail@gmail.com
MAIL_PORT=587
MAIL_SERVER=smtp.gmail.comdocker compose up --build| Service | URL |
|---|---|
| Backend API | http://localhost:8000 |
| Swagger UI | http://localhost:8000/docs |
| ReDoc | http://localhost:8000/redoc |
| Frontend | http://localhost:5173 |
| pgAdmin | http://localhost:5050 |
curl -X POST http://localhost:8000/auth/create-admin \
-H "Content-Type: application/json" \
-d '{"username": "admin", "email": "admin@edu.com", "password": "Admin@123"}'docker exec sms-backend alembic upgrade head# Inside the backend container
docker exec sms-backend pytest tests/ -vTests cover:
- Auth: login, duplicate email, wrong password, JWT validity
- Students: create, list (paginated), get by ID, 404, update, soft delete
The backend exposes 50+ endpoints across 16 modules:
| Module | Endpoint Prefix | Access |
|---|---|---|
| Authentication | /auth |
Public + All roles |
| Students | /students |
Admin / Own data |
| Faculty | /faculty |
Admin / All roles |
| Departments | /departments |
Admin / All roles |
| Courses | /courses |
Admin / All roles |
| Enrollments | /enrollments |
Admin / Faculty |
| Marks & GPA | /marks |
Faculty / Own data |
| Attendance | /attendance |
Faculty / Own data |
| Fees | /fees |
Admin / Own data |
| Placement | /placement |
Admin / Faculty / Own |
| AI Features | /ai |
All roles |
| Notifications | /notifications |
All roles |
| Documents | /documents |
All roles |
| Audit Logs | /audit |
Admin only |
| Bulk Import | /bulk-import |
Admin only |
| Dashboard | /dashboard/stats |
All roles (role-scoped) |
Full interactive API documentation available at http://localhost:8000/docs
| Metric | Value |
|---|---|
| API Endpoints | 50+ |
| Database Tables | 23 |
| Backend Modules | 16 |
| Frontend Pages | 20+ (across 3 portals) |
| Pydantic Schemas | 40+ |
| Automated Tests | 10 |
| Docker Services | 3 |
| Estimated Lines of Code | 8,000+ |
| Seed Data Rows | 1,200+ |
| Service | Image | Port |
|---|---|---|
sms-backend |
Python 3.12 slim | 8000 |
sms-postgres |
postgres:16-alpine | 5433 |
sms-redis |
redis:alpine | 6379 |
sms-frontend |
node:20 โ nginx:alpine | 5173 |
- Kubernetes deployment with Minikube for horizontal scaling
- WebSocket notifications replacing 30-second polling
- Celery + Redis task queue for bulk operations and report generation
- Parent portal with read-only access to attendance, marks, fees
- Smart Resume Builder โ AI-generated resume from student profile
- Burnout detection โ behavioral signal analysis for at-risk students
NEKILESH
ML Engineer Intern โ ONEDATA SOFTWARE SOLUTIONS PRIVATE LIMITED
Project ยท 2026
This project was developed as part of an internship engagement and is intended for evaluation purposes.