Skip to content

This is a Student Performance Tracker - a full-featured web application for educational institutions to manage student data, track academic performance, and generate comprehensive reports and analytics

Notifications You must be signed in to change notification settings

Its-Kratik/Student-Performance-Tracker-application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

11 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽ“ Student Performance Tracker

A comprehensive web-based academic management system built with Streamlit and SQLite for tracking student performance, generating analytics, and managing educational data.

๐Ÿš€ Live Demo

๐ŸŒ Access the Application

๐Ÿ“‹ Table of Contents

๐ŸŽฏ Overview

The Student Performance Tracker is a full-stack web application designed to streamline academic performance management for educational institutions. Built with modern web technologies, it provides real-time analytics, automated grade calculations, and comprehensive reporting capabilities.

๐ŸŽจ Key Highlights

  • ๐Ÿ“Š Real-time Analytics: Live performance dashboards with interactive visualizations
  • ๐ŸŽฏ Automated Grading: Intelligent grade calculation system (A+ to F)
  • ๐Ÿ“ฑ Responsive Design: Cross-platform compatibility with modern UI/UX
  • โšก SQLite Database: Lightweight, portable database with optimized queries
  • ๐Ÿ›ก๏ธ Data Validation: Comprehensive input validation and error handling
  • ๐Ÿ“ค Export Capabilities: CSV export for all data types

โœจ Features

๐Ÿ‘ฅ Student Management System

  • Complete CRUD operations with search and filtering
  • Class and section-based organization (10A, 10B, 11A, etc.)
  • Student profile management with date of birth tracking
  • Bulk data export functionality
  • Advanced search with multiple criteria

๐Ÿ“š Subject Management

  • Dynamic subject creation and organization
  • Quick-add functionality for common subjects
  • Subject-wise performance tracking
  • Unique subject validation to prevent duplicates

๐Ÿ“ Assessment & Marks Management

  • Flexible marks entry with multiple assessment types (Quiz, Assignment, Midterm, Final)
  • Real-time percentage calculation and grade assignment
  • Assessment date tracking and validation
  • Maximum marks customization (default: 100)
  • Input validation to prevent invalid data entry

๐Ÿ“‹ Performance Analytics & Reporting

  • Individual student report cards with detailed breakdowns
  • Class-wise performance analytics with comparative metrics
  • Subject-wise performance analysis and trends
  • Grade distribution analysis across classes
  • Pass/fail rate tracking with visual indicators
  • Top performers identification and ranking

๐Ÿ“Š Interactive Visualizations

  • Grade distribution pie charts and bar graphs
  • Class performance comparison charts
  • Subject performance analysis with range visualization
  • Performance trends over time
  • Pass/fail analysis with risk assessment
  • Top performers leaderboard with ranking

โš™๏ธ System Administration

  • Database management and monitoring
  • Sample data generation for testing
  • Data backup and export functionality
  • Application settings and preferences
  • System statistics and health monitoring

๐Ÿ› ๏ธ Tech Stack

Frontend & Web Framework

  • Streamlit - Modern web app framework for rapid development
  • Pandas - Data manipulation and analysis
  • Plotly - Interactive data visualizations
  • Altair - Statistical visualizations

Backend & Database

Development & Deployment

  • Git - Version control
  • GitHub - Code repository and collaboration
  • Streamlit Cloud - Cloud deployment platform

๐Ÿš€ Installation

Prerequisites

  • Python 3.8 or higher
  • Git (for cloning the repository)

Quick Start

  1. Clone the Repository
git clone https://github.com/Its-Kratik/student-performance-tracker.git
cd student-performance-tracker
  1. Install Dependencies
pip install -r requirements.txt
  1. Run the Application
streamlit run app.py
  1. Access the Application
  • Open your browser and navigate to http://localhost:8501
  • The database will be automatically initialized with sample data

Alternative Setup

python install.py  # For Python 3.13 compatibility

๐Ÿ“– Usage Guide

Getting Started Workflow

  1. ๐Ÿ  Dashboard: Overview of system statistics and quick actions
  2. ๐Ÿ‘ฅ Manage Students: Add, edit, delete, and search students
  3. ๐Ÿ“š Manage Subjects: Create and organize subject curriculum
  4. ๐Ÿ“ Enter Marks: Input student assessments and grades
  5. ๐Ÿ“‹ Report Cards: Generate individual student reports
  6. ๐Ÿ“Š Class Analytics: Analyze class and section performance
  7. ๐Ÿ“ˆ Visual Reports: Interactive charts and insights
  8. โš™๏ธ Settings: Configure application preferences

Key Operations

  • Adding Students: Navigate to "Manage Students" โ†’ "Add New Student"
  • Entering Marks: Go to "Enter Marks" โ†’ Select student and subject โ†’ Input scores
  • Viewing Analytics: Access "Class Analytics" โ†’ Select class/section โ†’ View insights
  • Exporting Data: Use export buttons in any section โ†’ Download CSV files

๐Ÿ“ Project Structure

student-performance-tracker/
โ”œโ”€โ”€ ๐Ÿ“„ app.py                    # Main application entry point
โ”œโ”€โ”€ ๐Ÿ“‚ pages/                    # Streamlit pages
โ”‚   โ”œโ”€โ”€ 1_Manage_Students.py     # Student management interface
โ”‚   โ”œโ”€โ”€ 2_Manage_Subjects.py     # Subject management interface
โ”‚   โ”œโ”€โ”€ 3_Enter_Update_Marks.py  # Marks entry and updating
โ”‚   โ”œโ”€โ”€ 4_Student_Report_Card.py # Individual report generation
โ”‚   โ”œโ”€โ”€ 5_Class_Analytics.py     # Class performance analytics
โ”‚   โ”œโ”€โ”€ 6_Visual_Reports.py      # Interactive visual dashboards
โ”‚   โ””โ”€โ”€ 7_Settings.py            # Application configuration
โ”œโ”€โ”€ ๐Ÿ“‚ models/                   # Data models and business logic
โ”‚   โ”œโ”€โ”€ student.py               # Student model and operations
โ”‚   โ”œโ”€โ”€ subject.py               # Subject model and operations
โ”‚   โ””โ”€โ”€ marks.py                 # Marks model and calculations
โ”œโ”€โ”€ ๐Ÿ“‚ db/                       # Database layer
โ”‚   โ””โ”€โ”€ connection.py            # SQLite connection and utilities
โ”œโ”€โ”€ ๐Ÿ“‚ utils/                    # Utility functions
โ”‚   โ””โ”€โ”€ analytics.py             # Advanced analytics functions
โ”œโ”€โ”€ ๐Ÿ“‚ tests/                    # Test suite
โ”‚   โ””โ”€โ”€ test_cases.py            # Unit and integration tests
โ”œโ”€โ”€ ๐Ÿ“„ requirements.txt          # Python dependencies
โ”œโ”€โ”€ ๐Ÿ“„ install.py                # Installation script
โ”œโ”€โ”€ ๐Ÿ“„ README.md                 # Project documentation
โ””โ”€โ”€ ๐Ÿ“„ student_tracker.db        # SQLite database (auto-generated)

๐Ÿ”ง Technical Implementation

Database Schema

Student Table

CREATE TABLE Student (
    student_id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL CHECK(length(trim(name)) >= 2),
    class TEXT NOT NULL CHECK(class IN ('10', '11', '12')),
    section TEXT NOT NULL CHECK(section IN ('A', 'B', 'C')),
    dob DATE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)

Subject Table

CREATE TABLE Subject (
    subject_id INTEGER PRIMARY KEY AUTOINCREMENT,
    subject_name TEXT NOT NULL UNIQUE CHECK(length(trim(subject_name)) >= 2),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)

Marks Table

CREATE TABLE Marks (
    mark_id INTEGER PRIMARY KEY AUTOINCREMENT,
    student_id INTEGER NOT NULL,
    subject_id INTEGER NOT NULL,
    marks_obtained INTEGER NOT NULL CHECK(marks_obtained >= 0),
    max_marks INTEGER DEFAULT 100 CHECK(max_marks > 0),
    assessment_date DATE DEFAULT (date('now')),
    assessment_type TEXT DEFAULT 'Assignment' 
        CHECK(assessment_type IN ('Quiz', 'Assignment', 'Midterm', 'Final', 'Project')),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (student_id) REFERENCES Student(student_id) ON DELETE CASCADE,
    FOREIGN KEY (subject_id) REFERENCES Subject(subject_id) ON DELETE CASCADE,
    CHECK(marks_obtained <= max_marks)
)

Grade Calculation System

Percentage Range Grade Description
90% - 100% A+ Outstanding
80% - 89% A Excellent
70% - 79% B+ Very Good
60% - 69% B Good
50% - 59% C+ Above Average
40% - 49% C Average
Below 40% F Fail

Key Algorithms

Percentage Calculation

def calculate_percentage(marks_obtained: int, max_marks: int) -> float:
    if max_marks == 0:
        return 0.0
    return round((marks_obtained / max_marks) * 100, 2)

Grade Assignment

def calculate_grade(percentage: float) -> str:
    if percentage >= 90: return "A+"
    elif percentage >= 80: return "A"
    elif percentage >= 70: return "B+"
    elif percentage >= 60: return "B"
    elif percentage >= 50: return "C+"
    elif percentage >= 40: return "C"
    else: return "F"

Performance Optimizations

  • Database Indexing: Optimized queries with proper indexes
  • Connection Pooling: Efficient database connection management
  • Caching: Streamlit caching for improved performance
  • Query Optimization: Optimized SQL queries for large datasets

๐Ÿ“ธ Screenshots

Dashboard Overview

image

Student Management

image image

Class Analytics

image image

Visual Reports

image image

๐Ÿค Contributing

We welcome contributions to improve the Student Performance Tracker! Here's how you can help:

Getting Started

  1. Fork the Repository
git fork https://github.com/Its-Kratik/student-performance-tracker.git
  1. Create a Feature Branch
git checkout -b feature/amazing-feature
  1. Make Your Changes

    • Follow Python PEP 8 style guidelines
    • Add tests for new functionality
    • Update documentation as needed
  2. Commit Your Changes

git commit -m "Add amazing feature"
  1. Push to Your Branch
git push origin feature/amazing-feature
  1. Open a Pull Request

Development Guidelines

  • Code Style: Follow PEP 8 conventions
  • Testing: Add unit tests for new features
  • Documentation: Update README and inline docs
  • Commits: Use clear, descriptive commit messages

Areas for Contribution

  • ๐Ÿ”ง New Features: Additional analytics, reporting capabilities
  • ๐Ÿ› Bug Fixes: Identify and resolve issues
  • ๐Ÿ“š Documentation: Improve guides and examples
  • ๐ŸŽจ UI/UX: Enhance user interface and experience
  • โšก Performance: Optimize database queries and rendering

๐Ÿ™‹โ™‚๏ธ Contact

Kratik Jain - Full Stack Developer & Data Enthusiast

๐Ÿ™ Acknowledgments

  • Streamlit Team for the amazing framework
  • SQLite for the reliable database engine
  • Pandas for powerful data manipulation
  • Plotly for interactive visualizations
  • Open Source Community for inspiration and support

๐Ÿ”ฎ Future Roadmap

Phase 1 - Enhanced Analytics

  • Advanced statistical analysis and predictive modeling
  • Comparative benchmarking across institutions
  • Performance trend forecasting

Phase 2 - Extended Features

  • PDF report generation with custom templates
  • Email notification system for parents/teachers
  • Multi-language support for international use
  • Advanced user roles and permissions system

Phase 3 - Integration & APIs

  • REST API development for third-party integrations
  • Mobile application development
  • Cloud storage integration
  • Real-time collaboration features

โญ Show Your Support

If you find this project helpful, please consider:

  • โญ Starring the repository
  • ๐Ÿ› Reporting issues and bugs
  • ๐Ÿ’ก Suggesting new features
  • ๐Ÿค Contributing to the codebase
  • ๐Ÿ“ข Sharing with others

Built with โค๏ธ by Kratik Jain

Empowering education through data-driven insights ๐Ÿ“šโœจ

About

This is a Student Performance Tracker - a full-featured web application for educational institutions to manage student data, track academic performance, and generate comprehensive reports and analytics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages