Skip to content

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

 
 
 

Contributors

Languages