Axiom is a full-stack, multi-platform college management system built for Government College of Engineering, Keonjhar. It runs as a web app, Android app, desktop (Electron) app, and installable PWA β all from a single codebase.
π Live Demo Β· π Features Β· ποΈ Architecture Β· π Setup Β· π₯ Team
Axiom replaces manual administrative workflows β paper attendance sheets, printed mark sheets, and fragmented record-keeping β with a unified digital platform accessible from any device.
The system supports three distinct user roles (Admin, Faculty, Student), each with a tailored dashboard and access-controlled features. It is deployed across three separate services for reliability and scalability, and ships as a native Android app, Electron desktop app, and PWA alongside the standard web interface.
Built with React + Node.js + MySQL. Deployed on Vercel + Render + Railway.
π‘οΈ Admin Portal
| Feature | Description |
|---|---|
| Dashboard | College-wide stats β total students, faculty, and courses at a glance |
| Student Management | Add, view, edit, and delete student records with full personal details |
| Faculty Management | Manage faculty accounts, qualifications, experience, and subject assignments |
| Import Students via Excel | Bulk-create student accounts from .xlsx with downloadable template (Android-aware file handling) |
| Import Faculty via Excel | Bulk-create faculty accounts from .xlsx files |
| Import Marks via Excel | Bulk upload marks per subject with a downloadable pre-filled template |
| Course Management | Create courses supporting both Semester and Year based systems |
| Subject Management | Define subjects with theory and practical max marks per course and semester |
| Assign Subjects | Map subjects to faculty members per course and semester |
| Take Attendance | Mark student attendance per subject and date |
| Edit Attendance | Correct previously recorded attendance for any date |
| Enter Marks | Record internal theory and practical marks per subject |
| Edit Marks | Update previously entered marks |
| Attendance Report | Subject-wise attendance with percentage analytics per student |
| Marks Report | Subject-wise marks with average, highest, and lowest summary |
| Print Marksheet | Generate cryptographically verified A4 marksheets with QR code, watermark, SVG seal, and signature |
| Admin Profile | Manage college name, logo, contact details, social media links, and signature |
π¨βπ« Faculty Portal
| Feature | Description |
|---|---|
| Dashboard | Overview of total students, faculty, and subjects |
| Take Attendance | Mark attendance for assigned subject β restricted to today's date (enforced server-side) |
| Edit Attendance | Correct attendance entries for today only β server-side enforced |
| Enter Marks | Enter internal marks for assigned subject |
| Attendance Report | Subject-wise attendance analytics for assigned class |
| Marks Report | View marks report for assigned subject |
| Faculty Profile | View and update personal profile and photo |
π¨βπ Student Portal
| Feature | Description |
|---|---|
| Dashboard | Personal info β name, roll number, course, and semester |
| Attendance Tracker | Subject-wise attendance with total classes, attended count, and percentage |
| Marksheet | View internal marks β theory, practical, and total per subject |
| Student Profile | Update password and date of birth |
A single codebase that ships to four platforms:
| Platform | Technology | Status |
|---|---|---|
| Web App | React + Vite, deployed on Vercel | β Live |
| Android App | Capacitor 8 β native Android wrapper | β Built |
| Desktop App | Electron β Windows / macOS / Linux | β Built |
| PWA | Web App Manifest + Service Worker | β Installable |
| Feature | Description |
|---|---|
| Email + Password | JWT-based login with bcrypt password hashing |
| Google OAuth | One-click sign-in via Google β web, Android, and Electron each handled separately |
| Role-based Access Control | Middleware-enforced per-role access on every API route |
| Faculty Attendance Restriction | Faculty can only submit attendance for today's date β enforced server-side |
| Last Login Tracking | Login timestamps recorded per user in the database |
| Active / Inactive Status | Per-user active status tracked for admin, faculty, and students |
| SHA-256 Marksheet Verification | Every marksheet carries a cryptographic hash of the student's marks data |
| QR Code Verification | Scan QR on any printed marksheet to verify its authenticity |
| Offline Detection | PWA-aware β detects when app loads from cache but backend is unreachable, shows graceful retry dialog |
| Dark / Light Mode | System-preference aware, persisted in localStorage |
Click to expand
| Feature | Student | Faculty | Admin |
|---|---|---|---|
| View own attendance | β | β | β |
| Take attendance | β | β today only | β |
| Edit attendance | β | β today only | β |
| View own marks | β | β | β |
| Enter marks | β | β | β |
| Edit marks | β | β | β |
| Import marks via Excel | β | β | β |
| Print marksheet | β | β | β |
| Verify marksheet via QR | β | β | β |
| Manage students | β | β | β |
| Manage faculty | β | β | β |
| Import students / faculty via Excel | β | β | β |
| Manage courses & subjects | β | β | β |
| Assign subjects to faculty | β | β | β |
| Manage college profile | β | β | β |
Click to expand
axiom/
β
βββ backend/ β Node.js + Express REST API
β βββ src/
β β βββ controllers/ β 14 controllers
β β βββ routes/ β 14 route files
β β βββ middleware/ β JWT auth + role-based access control
β β βββ config/ β MySQL connection
β βββ uploads/ β Profile photos, college logo, signature
β βββ server.js
β
βββ frontend/ β React + Vite SPA
β βββ src/
β β βββ pages/
β β β βββ Admin/ β 20 pages + modals
β β β βββ Faculty/ β 8 pages
β β β βββ Student/ β 5 pages
β β βββ components/ β Reusable UI components
β β βββ utils/ β Axios API client
β βββ android/ β Capacitor Android project
β βββ electron/ β Electron desktop app
β βββ public/ β PWA manifest, icons, screenshots
β
βββ sql/
βββ schema.sql β Full MySQL schema with foreign keys
User
β
βββ Web / PWA βββββββββββ Vercel (Frontend)
β β
βββ Android App βββββββββββββββββ
β β
βββ Electron Desktop ββββββββββββ
β
β
Render (Express Backend) βββ keep-alive ping every 5 min
β
β
Railway (MySQL Database)
Click to expand
| Table | Purpose |
|---|---|
admin |
College profile, logo, social links, credentials |
students |
Full student records including personal and family details |
faculties |
Faculty records with qualifications and subject assignments |
courses |
Courses with semester / year system support |
subject |
Subjects with theory and practical max marks |
attendance |
Date-wise attendance with unique constraint per student/subject/date |
marks |
Theory and practical marks per student per subject |
result |
Result declaration status per course/semester |
rollgenerator |
Auto roll number generation per course/semester |
Click to expand
Every marksheet generated by Axiom is cryptographically verifiable:
Generate Marksheet
β
βββ SHA-256 hash computed from student marks data (Web Crypto API)
βββ Hash printed on the physical marksheet
βββ QR code generated pointing to /verify/marksheet/:code
βββ College logo watermark at 6% opacity
βββ Circular SVG text seal around student photo
βββ Controller of Examinations signature image
Scan QR Code
β
βββ Verification page confirms authenticity
βββ Student name + Roll number
βββ Course + Semester
βββ SHA-256 hash
βββ β
Issued by GCE Keonjhar
| Layer | Technology |
|---|---|
| Frontend | React 19, React Router v7, Vite 7, TailwindCSS 4 |
| Backend | Node.js, Express 5 |
| Database | MySQL (hosted on Railway) |
| Authentication | JWT + bcrypt, Google OAuth 2.0 |
| Android | Capacitor 8 with Filesystem, Network, Browser plugins |
| Desktop | Electron 41 with electron-builder (Windows NSIS + Linux AppImage) |
| PWA | Vite PWA Plugin, Web App Manifest |
| Marksheet | QRCode.react, SHA-256 via Web Crypto API, jsPDF, html2canvas |
| Excel Import/Export | SheetJS (xlsx) + ExcelJS |
| CI/CD | GitHub Actions |
| Frontend Hosting | Vercel |
| Backend Hosting | Render (keep-alive ping to prevent cold starts) |
| Database Hosting | Railway |
Click to expand
- Node.js v18+
- MySQL Server (or a Railway account)
- Git
git clone https://github.com/AyusmanNanda/college-management-system.git
cd college-management-systemcd backend
npm installCreate a .env file inside backend/:
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=yourpassword
DB_NAME=collegedata
JWT_SECRET=your_jwt_secret
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
FRONTEND_URL=http://localhost:5173
BASE_URL=http://localhost:5000
NODE_ENV=development
PORT=5000Import the database schema:
mysql -u root -p collegedata < sql/schema.sqlStart the backend:
npm run devcd ../frontend
npm installCreate a .env file inside frontend/:
VITE_BACKEND=http://localhost:5000
VITE_GOOGLE_CLIENT_ID=your_google_client_id
VITE_FRONTEND=http://localhost:5173Start the frontend:
npm run devOpen your browser at http://localhost:5173 β
Email: admin@gcekjr.ac.in
Password: admin123
cd frontend
npm run build
npx cap sync android
npx cap open androidBuild and run via Android Studio.
cd frontend
npm run build
npm run electronDeveloped as part of the B.Tech (CSE) curriculum at Government College of Engineering, Keonjhar.
| Name | Role |
|---|---|
| Ayusman Avisek Nanda | Team Member |
| Muna Samal | Team Member |
| Dibyasmita Mohapatra | Team Member |
| Debasish Kar | Team Member |
| Lipika Pati | Team Member |
Project Guide: Prof. Santosh Kumar Meher Department: Computer Science & Engineering Program: B.Tech β 3rd Year, 6th Semester (2025β26) Institution: Government College of Engineering, Keonjhar, Odisha
This project is licensed for educational and non-commercial use only.
Made with β€οΈ at GCE Keonjhar β 2025β26
β If this project helped you, please give it a star on GitHub!















