Skip to content

Latest commit

 

History

782 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GCE Keonjhar logo

Axiom

College Management System

The Government College of Engineering, Keonjhar name and logo/crest are trademarks of GCE Keonjhar, used here for attribution only, not covered by this project's license, see LICENSE.

Build status Live demo React Node.js PostgreSQL Android Electron License

Live Demo →

Overview · Features · Setup · Team

Built as a 6th-semester B.Tech project for Government College of Engineering, Keonjhar. It's finished and not under active feature development, though we check in occasionally to merge Dependabot updates and review issues.


Overview

Most colleges we've seen still run attendance and marks through paper registers and spreadsheets passed around over email. Axiom tries to replace that with a single system that Admins, Faculty, and Students all log into, each seeing only what's relevant to their role.

It supports three roles today (Admin, Faculty, and Student), with role-based access enforced on every API route, not just hidden in the UI. On top of the core attendance/marks/course-management flow, it also generates cryptographically verifiable marksheets: each one carries a SHA-256 hash of the underlying data and a QR code that links to a public verification page, so a printed marksheet can be checked for tampering.

Axiom ships from a single codebase to four platforms: a web app, an installable PWA, a native Android app (via Capacitor), and a desktop app (via Electron).

The project has three parts:

Part Location Responsibility
Backend API backend/src/ Express REST API, controllers, routes, JWT/role middleware, Postgres access
Frontend frontend/src/ React + Vite SPA, Admin, Faculty, and Student dashboards
Database sql/schema.sql PostgreSQL schema (hosted on Supabase)

System Flow

flowchart LR
    A[Web / PWA] --> D[Vercel]
    B[Android App] --> D
    C[Electron Desktop] --> D
    D --> E[Render, Express API]
    E --> F[Supabase, PostgreSQL]
Loading

A keep-alive ping hits the Render backend every 5 minutes to avoid cold starts on the free tier.


Features

Admin Portal
Feature Description
Dashboard College-wide stats, total students, faculty, and courses
Student Management Add, view, edit, and delete student records
Faculty Management Manage faculty accounts, qualifications, and subject assignments
Import Students / Faculty via Excel Bulk-create accounts from .xlsx, with a downloadable template
Import Marks via Excel Bulk upload marks per subject via a pre-filled template
Course & Subject Management Semester- or year-based courses, with theory/practical max marks per subject
Assign Subjects Map subjects to faculty per course and semester
Attendance & Marks Entry/Edit Record and correct attendance and marks
Reports Subject-wise attendance and marks analytics
Print Marksheet Generate a verified A4 marksheet with QR code, watermark, and signature
Admin Profile Manage college name, logo, contact details, and signature
Faculty Portal
Feature Description
Dashboard Overview of students, faculty, and subjects
Take / Edit Attendance Restricted to today's date, enforced server-side
Enter Marks Internal marks for assigned subjects
Reports Attendance and marks analytics for assigned classes
Faculty Profile View and update personal profile and photo
Student Portal
Feature Description
Dashboard Name, roll number, course, and semester
Attendance Tracker Subject-wise attendance with percentage
Marksheet Internal marks, theory, practical, and total
Student Profile Update password and date of birth
Role & Access Matrix
Feature Student Faculty Admin
View own attendance ✅ ✅ ✅
Take / edit attendance ❌ ✅ today only ✅
View own marks ✅ ✅ ✅
Enter / edit marks ❌ ✅ ✅
Import marks via Excel ❌ ❌ ✅
Print marksheet ✅ ❌ ✅
Verify marksheet via QR ✅ ✅ ✅
Manage students / faculty ❌ ❌ ✅
Import students / faculty via Excel ❌ ❌ ✅
Manage courses & subjects ❌ ❌ ✅
Manage college profile ❌ ❌ ✅

Marksheet Verification

flowchart TD
    A[Generate Marksheet] --> B[SHA-256 hash of marks data]
    B --> C[QR code → /verify/marksheet/:code]
    C --> D[Watermark + SVG seal + signature]
    D --> E[Printed Marksheet]
    E --> F[Scan QR]
    F --> G[Verification page: name, roll no, course, hash, issuer]
Loading

Authentication & Security

Feature Description
Email + Password JWT-based login with bcrypt password hashing
Google OAuth Handled separately for web, Android, and Electron
Role-based Access Control Middleware-enforced on every API route
Faculty Attendance Restriction Faculty can only submit attendance for today, enforced server-side
SHA-256 + QR Marksheet Verification See above
Offline Detection PWA-aware, detects a stale cache with an unreachable backend
Dark / Light Mode System-preference aware, persisted locally

Screenshots

Click to expand
Login (Light) Login (Dark)
Login Light Login Dark
Admin (Light) Admin (Dark)
Admin Light Admin Dark
Faculty (Light) Faculty (Dark)
Faculty Light Faculty Dark
Student (Light) Student (Dark)
Student Light Student Dark

Running Locally

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

# backend
cd backend
npm install
cp .env.example .env
npm run dev

# frontend
cd ../frontend
npm install
cp .env.example .env
npm run dev

Open http://localhost:5173.

Default admin login is in .env.example, change it immediately after first login.

Android / Electron builds
# Android
cd frontend
npm run build
npx cap sync android
npx cap open android

# Electron desktop
cd frontend
npm run build
npm run electron

Limitations

  • Built and tested against a single college's course/semester structure, assumptions about the academic calendar are baked in rather than fully configurable
  • No automated test suite, changes were verified manually
  • Currently supports three roles (Admin, Faculty, Student) only
  • This project is not under active feature development; issues and PRs may take a while to get a response

Contributing

This repo isn't under active feature development, so response times on issues or PRs will be slow. Feel free to fork it if you want to take it further.


Tech Stack

Frontend: React 19, React Router v7, Vite 7, TailwindCSS 4 Backend: Node.js, Express 5 Database: PostgreSQL (Supabase) Auth: JWT, bcrypt, Google OAuth 2.0 Android: Capacitor 8 Desktop: Electron 41, electron-builder Marksheet: QRCode.react, Web Crypto API (SHA-256), jsPDF, html2canvas Excel: SheetJS, ExcelJS Hosting: Vercel (frontend), Render (backend), Supabase (database)


Team

Built as a B.Tech (CSE) project 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)


License

MIT, see LICENSE.


⭐ If this project is useful to you, consider starring it.