Skip to content

Latest commit

Β 

History

760 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⚑ Axiom - College Management System

Build

Live Demo React Node.js MySQL Android Electron PWA License

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


Login Light

πŸ“Œ Overview

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.


✨ Features

πŸ›‘οΈ 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

πŸ–₯️ Multi-Platform Support

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

πŸ” Authentication & Security

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

πŸ”’ Role & Access Matrix

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 ❌ ❌ βœ…

πŸ—οΈ Architecture

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

Deployment Architecture

User
 β”‚
 β”œβ”€β”€ Web / PWA ──────────→ Vercel (Frontend)
 β”‚                               β”‚
 β”œβ”€β”€ Android App ───────────────→│
 β”‚                               β”‚
 └── Electron Desktop ──────────→│
                                 β”‚
                                 ↓
                    Render (Express Backend) ←── keep-alive ping every 5 min
                                 β”‚
                                 ↓
                    Railway (MySQL Database)

πŸ—„οΈ Database Schema

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

πŸ”– Marksheet Verification System

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

πŸ› οΈ Tech Stack

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

πŸš€ Setup Guide

Click to expand

Prerequisites

  • Node.js v18+
  • MySQL Server (or a Railway account)
  • Git

Step 1 β€” Clone the Repository

git clone https://github.com/AyusmanNanda/college-management-system.git
cd college-management-system

Step 2 β€” Backend Setup

cd backend
npm install

Create 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=5000

Import the database schema:

mysql -u root -p collegedata < sql/schema.sql

Start the backend:

npm run dev

Step 3 β€” Frontend Setup

cd ../frontend
npm install

Create a .env file inside frontend/:

VITE_BACKEND=http://localhost:5000
VITE_GOOGLE_CLIENT_ID=your_google_client_id
VITE_FRONTEND=http://localhost:5173

Start the frontend:

npm run dev

Open your browser at http://localhost:5173 βœ…


Default Admin Account

Email:    admin@gcekjr.ac.in
Password: admin123

Android Build

cd frontend
npm run build
npx cap sync android
npx cap open android

Build and run via Android Studio.


Desktop (Electron) Build

cd frontend
npm run build
npm run electron

πŸ–ΌοΈ Screenshots

Click to expand

πŸ” Login Page

Light Dark
Login Light Login Dark
Login Phone Light Login Phone Dark

πŸ›‘οΈ Admin Portal

Light Dark
Admin Light Admin Dark
Admin Phone Light Admin Phone Dark

πŸ‘¨β€πŸ« Faculty Portal

Light Dark
Faculty Light Faculty Dark
Faculty Phone Light Faculty Phone Dark

πŸ‘¨β€πŸŽ“ Student Portal

Light Dark
Student Light Student Dark
Student Phone Light Student Phone Dark

πŸ‘₯ Team

Developed 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


πŸ“„ License

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!

Releases

Packages

Used by

Contributors

Languages