Skip to content

Repository files navigation

VISIONGRADE

Student Performance Analysis System

MIT License Last Commit Python JavaScript Build Status Version

VisionGrade Demo Video

VisionGrade Demo Video

πŸŽ₯ Click above to watch the full demo on YouTube


About

A comprehensive web application for managing student academic data, providing ML-powered performance predictions, and facilitating communication between students, faculty, and administrators. Designed for educational institutions seeking intelligent performance analytics.

Features

Multi-Role System

  • Students - Access grades, attendance, and performance predictions
  • Faculty - Manage courses, grades, and student assessments
  • Tutors - Support student learning and track progress
  • Administrators - Full system control and analytics

Performance Tracking

  • Real-time Monitoring - Track marks and attendance instantly
  • Historical Analysis - View performance trends over time
  • Goal Setting - Set and track academic targets
  • Mobile Responsive - Access data anywhere, anytime

ML-Powered Intelligence

  • Performance Predictions - AI-powered exam score forecasting
  • Risk Detection - Identify at-risk students early
  • Smart Recommendations - Personalized improvement suggestions
  • Trend Analysis - Advanced analytics and insights

Automated Notifications

  • Low Attendance Alerts - Automatic warnings for poor attendance
  • Performance Warnings - Early intervention for struggling students
  • Email Integration - Automated notification delivery
  • Real-time Updates - Instant alerts for important events

Report Generation

  • PDF Reports - Professional report cards and transcripts
  • Performance Insights - Detailed analytics and visualizations
  • Progress Reports - Comprehensive academic summaries
  • Batch Processing - Generate multiple reports efficiently

Modern UI/UX

  • Glassmorphism Design - Beautiful, modern interface
  • Smooth Animations - Polished user interactions
  • Dark Mode Support - Easy on the eyes
  • Fully Responsive - Perfect on all devices

Tech Stack

Frontend

React Vite TailwindCSS JavaScript

Backend

Express.js PostgreSQL Sequelize NodeJS

ML Service

Python Flask scikit-learn

Infrastructure

Redis JWT

Quick Start

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v18 or higher)
  • Python (v3.8 or higher)
  • PostgreSQL (v12 or higher)
  • Redis (optional, for caching)

Installation

# 1️⃣ Clone the repository
git clone <repository-url>
cd vision-grade

# 2️⃣ Install all dependencies
npm run install:all

# 3️⃣ Set up environment variables
# Backend
cp backend/.env.example backend/.env
# Edit backend/.env with your database credentials

# ML Service
cp ml-service/.env.example ml-service/.env
# Edit ml-service/.env with your configuration

# 4️⃣ Set up the database
createdb visiongrade_db

# Run migrations
cd backend
npm run migrate

# 5️⃣ Create admin account (Choose one method)
# Quick setup with defaults (Development)
node scripts/create-default-admin.js
# Default Credentials: admin@visiongrade.com / Admin@123

# OR Interactive setup (Production)
node scripts/create-first-admin.js

Start Development Servers

# Start all services at once
npm run dev

# Or start individually:
npm run dev:frontend   # Frontend β†’ http://localhost:3000
npm run dev:backend    # Backend  β†’ http://localhost:5000
npm run dev:ml        # ML API   β†’ http://localhost:8000

Access Points

Security Notice

Security Authentication RBAC

⚠️ Important: Administrator accounts cannot be created through public registration for security reasons.

Admin Setup Options

Development/Testing (Quick Setup)

cd backend
node scripts/create-default-admin.js

Default Credentials: admin@visiongrade.com / Admin@123

Production (Secure Setup)

cd backend
node scripts/create-first-admin.js

Follow the interactive prompts to create a secure admin account.

πŸ“– Documentation:

Available Scripts

Script Description Status
npm run dev Start all services Status
npm run dev:frontend Start frontend only Status
npm run dev:backend Start backend only Status
npm run dev:ml Start ML service only Status
npm run install:all Install all dependencies Status
npm run build Build for production Status
npm test Run all tests Status

Project Structure

πŸ“¦ vision-grade/
β”œβ”€β”€ πŸ“ frontend/                 # React.js frontend
β”‚   β”œβ”€β”€ πŸ“ src/
β”‚   β”‚   β”œβ”€β”€ πŸ“ components/      # Reusable components
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Dashboard.jsx       # Main dashboard
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ StudentCard.jsx     # Student info cards
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ GradeTable.jsx      # Grade display table
β”‚   β”‚   β”‚   └── πŸ“„ NotificationBell.jsx # Alert system
β”‚   β”‚   β”œβ”€β”€ πŸ“ pages/          # Page components
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Login.jsx          # Authentication page
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ StudentDashboard.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ FacultyDashboard.jsx
β”‚   β”‚   β”‚   └── πŸ“„ AdminPanel.jsx
β”‚   β”‚   β”œβ”€β”€ πŸ“ hooks/          # Custom hooks
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ useAuth.js         # Authentication hook
β”‚   β”‚   β”‚   └── πŸ“„ usePerformance.js  # Performance data hook
β”‚   β”‚   β”œβ”€β”€ πŸ“ services/       # API services
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ authService.js     # Auth API calls
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ studentService.js  # Student API calls
β”‚   β”‚   β”‚   └── πŸ“„ mlService.js       # ML predictions
β”‚   β”‚   └── πŸ“ utils/          # Utility functions
β”‚   β”‚       β”œβ”€β”€ πŸ“„ dateFormatter.js   # Date utilities
β”‚   β”‚       └── πŸ“„ gradeCalculator.js # Grade calculations
β”‚   └── πŸ“„ package.json
β”œβ”€β”€ πŸ“ backend/                 # Node.js/Express backend
β”‚   β”œβ”€β”€ πŸ“ controllers/        # Route handlers
β”‚   β”‚   β”œβ”€β”€ πŸ“„ authController.js      # Authentication logic
β”‚   β”‚   β”œβ”€β”€ πŸ“„ studentController.js   # Student operations
β”‚   β”‚   └── πŸ“„ gradeController.js     # Grade management
β”‚   β”œβ”€β”€ πŸ“ middleware/         # Custom middleware
β”‚   β”‚   β”œβ”€β”€ πŸ“„ authenticate.js        # JWT verification
β”‚   β”‚   β”œβ”€β”€ πŸ“„ authorize.js           # Role-based access
β”‚   β”‚   └── πŸ“„ errorHandler.js        # Error management
β”‚   β”œβ”€β”€ πŸ“ models/            # Sequelize models
β”‚   β”‚   β”œβ”€β”€ πŸ“„ User.js               # User model
β”‚   β”‚   β”œβ”€β”€ πŸ“„ Student.js            # Student model
β”‚   β”‚   β”œβ”€β”€ πŸ“„ Course.js             # Course model
β”‚   β”‚   └── πŸ“„ Grade.js              # Grade model
β”‚   β”œβ”€β”€ πŸ“ routes/            # API routes
β”‚   β”‚   β”œβ”€β”€ πŸ“„ auth.js               # Auth endpoints
β”‚   β”‚   β”œβ”€β”€ πŸ“„ students.js           # Student endpoints
β”‚   β”‚   └── πŸ“„ grades.js             # Grade endpoints
β”‚   β”œβ”€β”€ πŸ“ services/          # Business logic
β”‚   β”‚   β”œβ”€β”€ πŸ“„ notificationService.js # Alert system
β”‚   β”‚   └── πŸ“„ reportService.js      # Report generation
β”‚   β”œβ”€β”€ πŸ“ scripts/           # Utility scripts
β”‚   β”‚   β”œβ”€β”€ πŸ“„ create-default-admin.js
β”‚   β”‚   └── πŸ“„ create-first-admin.js
β”‚   β”œβ”€β”€ πŸ“ docs/              # Documentation
β”‚   β”‚   └── πŸ“„ ADMIN_SETUP.md
β”‚   └── πŸ“„ package.json
β”œβ”€β”€ πŸ“ ml-service/             # Python ML service
β”‚   β”œβ”€β”€ πŸ“ models/            # Trained ML models
β”‚   β”‚   β”œβ”€β”€ πŸ“„ performance_model.pkl  # Prediction model
β”‚   β”‚   └── πŸ“„ risk_classifier.pkl    # Risk detection
β”‚   β”œβ”€β”€ πŸ“ services/          # ML logic
β”‚   β”‚   β”œβ”€β”€ πŸ“„ predictor.py          # Prediction service
β”‚   β”‚   └── πŸ“„ analyzer.py           # Analysis service
β”‚   β”œβ”€β”€ πŸ“ utils/             # ML utilities
β”‚   β”‚   β”œβ”€β”€ πŸ“„ preprocessor.py       # Data preprocessing
β”‚   β”‚   └── πŸ“„ feature_engineer.py   # Feature engineering
β”‚   β”œβ”€β”€ πŸ“„ app.py            # Flask application
β”‚   └── πŸ“„ requirements.txt
β”œβ”€β”€ πŸ“„ DEFAULT_ADMIN_SETUP.md
└── πŸ“„ README.md               # You are here

Testing

Test Coverage Unit Tests Integration

# Frontend tests
cd frontend && npm test

# Backend tests
cd backend && npm test

# ML service tests
cd ml-service && pytest

# Run all tests
npm test

Deployment

Frontend Deployment

Deploy to Netlify Deploy to Vercel

Backend Deployment

Deploy to Heroku Deploy on Railway

# Build frontend for production
npm run build

# Start production server
npm start

# Environment variables required:
MONGODB_URI=your-postgresql-connection-string
JWT_SECRET=your-super-secure-jwt-secret
NODE_ENV=production
REDIS_URL=your-redis-url (optional)

Browser Support

Chrome Firefox Safari Edge

🀝 Contributing

We love contributions! Please read our contributing guidelines before getting started.

Contributors Issues Pull Requests

Development Process

  1. 🍴 Fork the repository
  2. 🌿 Create a feature branch (git checkout -b feature/amazing-feature)
  3. πŸ’Ύ Commit your changes (git commit -m 'Add amazing feature')
  4. πŸ§ͺ Add tests for new functionality
  5. πŸ“€ Push to the branch (git push origin feature/amazing-feature)
  6. πŸ“₯ Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License

πŸ™ Acknowledgments

Special thanks to the amazing open source community and these fantastic projects:

React TailwindCSS PostgreSQL Python

πŸ“¬ Connect With Me

GitHub LinkedIn Email

πŸ†˜ Support

For support and questions:


🎯 Built with ❀️ for educational excellence

Made with Love Open Source ML Powered

⭐ If you found this project helpful, please give it a star!

Star History Chart

πŸš€ Return To TOP

About

A comprehensive web application for managing student academic data, providing ML-powered performance predictions, and facilitating communication between students, faculty, and administrators. Designed for educational institutions seeking intelligent performance analytics.

Topics

Resources

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Contributors

Languages