A comprehensive web-based Student Result Management System built with modern technologies to efficiently manage student records, subjects, and examination results.
The Student Result Management System (SRMS) is a full-stack web application designed to help educational institutions manage student data, subject information, and examination results efficiently. The system features an intuitive admin dashboard with statistics, student search functionality, printable report cards, and CSV export capabilities.
- Secure Admin Login - JWT-based authentication system
- Session Management - Persistent login with token validation
- Default Admin Credentials:
- Username:
admin - Password:
vikrant123
- Username:
- Add New Students - Create student records with roll number, name, class, email, and phone
- Edit Student Details - Update existing student information
- Delete Students - Remove students along with their results
- Search Functionality - Quick search by student name or roll number
- View Report Cards - Generate detailed student performance reports
- Add Subjects - Create subjects with code, name, and maximum marks
- Edit Subject Details - Modify existing subject information
- Delete Subjects - Remove subjects and associated results
- Flexible Marking System - Support for different maximum marks per subject
- Enter Marks - Add or update marks for students across multiple subjects
- Automatic Calculations - Auto-compute percentage, grade, and pass/fail status
- Subject-wise Performance - Track individual subject marks
- Printable Report Cards - Professional, printer-friendly student reports
- Statistics Overview - Total students, subjects, pass/fail counts
- Visual Charts - Pie chart showing pass/fail distribution
- Average Performance - Class-wide percentage calculations
- Pass/Fail Rates - Percentage-based performance metrics
- CSV Export - Download all student results in CSV format
- Bulk Data Export - Export complete result data for analysis
The system uses the following grading criteria:
- 90-100% β A+ Grade β Distinction
- 75-89% β A Grade β First Class
- 60-74% β B Grade β Second Class
- 45-59% β C Grade β Pass Class
- Below 45% β F Grade β Fail
- Modern Glassmorphism Design - Beautiful, translucent card-based UI
- Purple/Indigo Theme - Professional color scheme with dark sidebar
- Responsive Layout - Works seamlessly on desktop, tablet, and mobile
- Smooth Animations - Hover effects and transitions for better UX
- Color-Coded Badges - Visual grade representation (Green, Blue, Yellow, Red)
- Chart.js Integration - Interactive charts and data visualizations
- Framework: FastAPI (Python)
- Database: MongoDB (with Motor async driver)
- Authentication: JWT (JSON Web Tokens)
- Password Hashing: Bcrypt
- Data Validation: Pydantic
- API Documentation: Auto-generated with FastAPI
- Framework: React 19
- Routing: React Router DOM
- HTTP Client: Axios
- Charts: Chart.js + react-chartjs-2
- Styling: Vanilla CSS (no frameworks)
- Fonts: Google Fonts (Inter, Manrope)
- Process Management: Supervisor
- Hot Reload: Enabled for both frontend and backend
- CORS: Configured for cross-origin requests
- Environment Variables: Managed via .env files
student-result-management/
βββ backend/
β βββ server.py # Main FastAPI application
β βββ .env # Backend environment variables
β βββ requirements.txt # Python dependencies
βββ frontend/
β βββ public/ # Static assets
β βββ src/
β β βββ components/ # React components
β β β βββ Login.js # Admin login page
β β β βββ Layout.js # Main layout with sidebar
β β β βββ Dashboard.js # Dashboard with statistics
β β β βββ Students.js # Student management
β β β βββ Subjects.js # Subject management
β β β βββ Results.js # Marks entry system
β β β βββ StudentReport.js # Report card view
β β βββ App.js # Main React component
β β βββ App.css # Global styles
β β βββ index.js # Entry point
β βββ package.json # Node.js dependencies
β βββ .env # Frontend environment variables
βββ README.md # This file
- Python 3.8 or higher
- Node.js 16 or higher
- MongoDB (installed and running)
- Yarn package manager
git clone <your-repository-url>
cd student-result-management# Navigate to backend directory
cd backend
# Install Python dependencies
pip install -r requirements.txt
# Verify .env file exists with correct MongoDB connection
# The .env file should contain:
# MONGO_URL=mongodb://localhost:27017
# DB_NAME=student_result_db
# CORS_ORIGINS=*# Navigate to frontend directory
cd ../frontend
# Install Node.js dependencies
yarn install
# Verify .env file exists with backend URL
# The .env file should contain:
# REACT_APP_BACKEND_URL=<your-backend-url># Make sure MongoDB is running on localhost:27017
# On Linux/Mac:
sudo systemctl start mongodb
# On Windows:
net start MongoDBOption 1: Using Supervisor (Recommended)
# The application uses supervisor for process management
sudo supervisorctl restart backend
sudo supervisorctl restart frontend
# Check status
sudo supervisorctl statusOption 2: Manual Start (Development)
# Terminal 1 - Start Backend
cd backend
python server.py
# Terminal 2 - Start Frontend
cd frontend
yarn start- Frontend: Open your browser and navigate to the URL shown in terminal
- Backend API: Available at
<BACKEND_URL>/api - API Documentation: Visit
<BACKEND_URL>/docsfor interactive API docs
When you run the application for the first time, it automatically creates:
- Username:
admin - Password:
vikrant123
The application automatically seeds the database with sample data on first run:
- 4 Sample Students (BCA 1st & 2nd Year)
- Sample Subjects (Mathematics, Physics, Chemistry, English, Computer Science)
- Sample Results for all students across all subjects
You can delete this data and add your own once the application is running.
- Navigate to the login page
- Enter credentials (admin / vikrant123)
- Click "Sign In"
- View total students, subjects, pass/fail counts
- Analyze pass/fail distribution via pie chart
- Check average class percentage
- Export all results to CSV
- Click "Students" in sidebar
- Add: Click "+ Add Student" button
- Edit: Click edit icon (βοΈ) on student row
- Delete: Click delete icon (ποΈ) on student row
- Search: Use search bar to find students quickly
- View Report: Click report icon (π) to view student report card
- Click "Subjects" in sidebar
- Add: Click "+ Add Subject" button
- Edit: Click edit icon (βοΈ) on subject row
- Delete: Click delete icon (ποΈ) on subject row
- Click "Results" in sidebar
- Select a student from dropdown
- Enter marks for each subject
- Click "Save Results"
- Navigate to Students page
- Click report icon (π) next to student name
- View complete report with grades and percentage
- Click "Print Report" to print or save as PDF
The report cards are printer-friendly:
- Click "Print Report" button on report page
- Browser print dialog will open
- Adjust settings (paper size, orientation)
- Print or Save as PDF
To export all student results:
- Go to Dashboard
- Click "Export Results to CSV"
- CSV file will download automatically
- Open in Excel, Google Sheets, or any CSV viewer
- Glassmorphism UI - Modern, translucent cards with backdrop blur
- Purple/Indigo Theme - Professional color palette
- Dark Sidebar - Clean navigation with active state indicators
- Responsive Design - Mobile-friendly layout
- Smooth Animations - Hover effects on buttons and cards
- Color-Coded Grades - Visual feedback (Green=A+, Blue=A, Yellow=B, Red=F)
- Chart Visualizations - Interactive pie and bar charts
MONGO_URL=mongodb://localhost:27017
DB_NAME=student_result_db
CORS_ORIGINS=*
JWT_SECRET=vikrant-secret-key-2024-srmsREACT_APP_BACKEND_URL=<your-backend-url>Problem: Database connection error
# Solution: Make sure MongoDB is running
sudo systemctl status mongodbProblem: Module not found
# Solution: Reinstall dependencies
pip install -r requirements.txtProblem: API connection failed
# Solution: Verify REACT_APP_BACKEND_URL in .env file
# Make sure backend server is runningProblem: Blank screen
# Solution: Clear cache and reinstall
rm -rf node_modules package-lock.json
yarn install
yarn startPOST /api/auth/login- Admin loginGET /api/auth/verify- Verify token
GET /api/students- Get all students (with optional search)GET /api/students/{id}- Get student by IDPOST /api/students- Create new studentPUT /api/students/{id}- Update studentDELETE /api/students/{id}- Delete student
GET /api/subjects- Get all subjectsGET /api/subjects/{id}- Get subject by IDPOST /api/subjects- Create new subjectPUT /api/subjects/{id}- Update subjectDELETE /api/subjects/{id}- Delete subject
GET /api/results/student/{id}- Get student resultsPOST /api/results- Create/update resultGET /api/results/all- Get all results
GET /api/dashboard/stats- Get dashboard statistics
GET /api/export/csv- Export results to CSV
- Multi-admin support with role-based access
- Student portal for viewing own results
- Email notifications for result publication
- Bulk student import via CSV
- Advanced analytics and reports
- Attendance management
- Fee management integration
- Parent login and notifications
Vikrant Rana
- π BCA Aspirant
- π Location: Delhi, India
- πΌ Role: Full Stack Developer
- π― Passion: Building educational technology solutions
This project was developed as part of academic learning and to showcase full-stack development skills using modern web technologies.
This project is open source and available for educational purposes.
- FastAPI community for excellent documentation
- React team for the amazing framework
- Chart.js for beautiful visualizations
- MongoDB for the robust database solution
For any issues, questions, or suggestions, please:
- Check the troubleshooting section above
- Review the API documentation at
/docs - Create an issue in the repository
Built with β€οΈ by Vikrant Rana | Β© 2024 Student Result Management System