skillSync is a full-stack Outcome-Based Education (OBE) platform designed for engineering colleges to manage student grades, track academic progression, and compute CO/PO attainment metrics required for NBA accreditation. It combines a teacher-facing portal with a set of AI-powered microservices for automated course outcome generation, personalized learning recommendations, and resource discovery.
Traditional mark-entry and result-processing workflows in engineering colleges are manual, error-prone, and disconnected from accreditation requirements. skillSync replaces that with a unified system where teachers upload marks once and the platform automatically:
- Applies VTU grading rules (CIE + SEE, ×2 formula for lab/activity courses)
- Computes SGPA and CGPA for every student across all semesters
- Maps student performance to Course Outcomes (COs) and Program Outcomes (POs)
- Calculates attainment levels for NBA/NAAC reports
- Suggests learning resources to students based on their performance gaps
- Mark Upload — Upload CIE (Internal), SEE (End-Semester), lab, and activity marks via Excel/CSV
- Grade Calculation — Automatic VTU-compliant grade computation (CIE/50 + SEE/50 = 100) with special handling for 1–2 credit courses
- Student Progression — 8-semester timeline view showing SGPA, CGPA, earned credits, and course-wise grades per student
- CO/PO Attainment Dashboard — Visualises attainment levels across all mapped course outcomes and program outcomes
- SEE Question Mapping — Map SEE question marks to specific COs for fine-grained attainment tracking
- Course Exit Survey (CES) — Collect and analyse student feedback on CO achievement
- Student Analysis — Per-student drill-down showing CIE component breakdown (assignments, quizzes, AAT, lab records)
- View personal grades, CGPA history, and semester-wise progression
- Access personalised learning resource recommendations
- Complete Course Exit Surveys
- DBMS-specific resource recommender with study plan generation
| Service | Description |
|---|---|
| CO Generator | Fine-tuned LLM (Qwen / GPT-Neo with LoRA) backed by a Neo4j knowledge graph to auto-generate Course Outcomes from a course syllabus |
| Recommendation Service | Hybrid collaborative-filtering + content-based ML model that recommends learning resources based on a student's performance gaps |
| DBMS Recommender | FastAPI service providing topic-aware resource recommendations specifically for Database Management courses |
| Layer | Technology |
|---|---|
| Frontend | React 19, Vite, Tailwind CSS, Recharts, Framer Motion, MUI, Lucide React |
| Backend API | Node.js 20, Express, JWT Auth, Winston logging |
| Primary Database | PostgreSQL 16 |
| Analytics Store | MongoDB 7 |
| Vector Store | ChromaDB (for RAG/semantic search) |
| Knowledge Graph | Neo4j 5 (CO Generator) |
| Upload Service | FastAPI (Python) — parses XLSX/CSV and writes to PostgreSQL |
| CO Generator | FastAPI + fine-tuned Qwen/GPT-Neo (LoRA) + Neo4j |
| Recommendation | FastAPI + scikit-learn collaborative filtering |
| Containerisation | Docker + Docker Compose |
┌──────────────────────────────────────────────────────────────────┐
│ React Frontend :5173 │
└──────────────┬──────────────────────────────┬────────────────────┘
│ │
REST / JWT REST (microservices)
│ │
┌───────────▼──────────┐ ┌──────────▼──────────────────┐
│ Node.js Backend │ │ Python Microservices │
│ Express API :8080 │ │ Upload Service :8001 │
│ │ │ CO Generator :8002 │
│ ┌────────────────┐ │ │ Recommendation Svc :8003 │
│ │ PostgreSQL │ │ │ DBMS Recommender :8004 │
│ │ (grades, │ │ └──────────────────────────────┘
│ │ users, COs) │ │
│ └────────────────┘ │ ┌──────────────────────────────┐
│ ┌────────────────┐ │ │ Databases │
│ │ MongoDB │ │ │ PostgreSQL :5432 │
│ │ (analytics) │ │ │ MongoDB :27018 │
│ └────────────────┘ │ │ ChromaDB :8000 │
└──────────────────────┘ │ Neo4j :7474 │
└──────────────────────────────┘
- Docker and Docker Compose
- 8 GB RAM recommended (Neo4j + LLM services are memory-intensive)
git clone https://github.com/trahulprabhu38/skillSync.git
cd skillSync
docker compose up --build| Service | URL |
|---|---|
| Frontend | http://localhost:5173 |
| Backend API | http://localhost:8080/api |
| Upload Service | http://localhost:8001 |
| CO Generator | http://localhost:8002 |
| Recommendation Service | http://localhost:8003 |
| DBMS Recommender | http://localhost:8004 |
| Neo4j Browser | http://localhost:7474 |
The database is seeded with an admin teacher account. Register new teacher/student accounts through the signup page.
skillSync implements VTU (Visvesvaraya Technological University) grading rules:
| Course Type | Formula |
|---|---|
| Theory / IPCC (≥3 credits) | Final = CIE/50 + (SEE_obtained / SEE_max) × 50 |
| Activity / Lab with CIE (2 credits) | Final = CIE/50 + SEE_obtained/50 |
| Pure Lab / Activity (1–2 credits, no CIE) | Final = min(raw_mark × 2, 100) |
Letter grades follow the 10-point scale: A+ (10), A (9), B+ (8), B (7), C+ (6), C (5), D (4), E (0), F (0).
skillSync/
├── backend/ # Node.js/Express REST API
│ ├── routes/ # API route handlers
│ ├── services/ # Business logic (grades, CGPA, attainment)
│ ├── middleware/ # Auth, logging
│ └── migrations/ # PostgreSQL schema
├── edu-frontend/ # React + Vite frontend
│ └── src/
│ ├── pages/teacher/ # Teacher portal pages
│ └── pages/student/ # Student portal pages
├── upload-service/ # FastAPI XLSX/CSV ingestion service
├── CO-generator/ # LLM-based CO generation + Neo4j
├── recommendation-service/# Collaborative filtering recommender
├── res_system_streamlit/ # DBMS resource recommender
├── data/ # Docker volume mounts (DB data)
└── docker-compose.yml
T Rahul Prabhu
Department of Artificial Intelligence and Machine Learning
Dayananda Sagar College of Engineering, Bengaluru
MIT