๐ŸŽ“ I Built a Student Grade Book Web App — Python + Live Dashboard | Infosys Ed-Tech | Mopuru Upendra Reddy

๐Ÿš€  Infosys Ed-Tech Platform  ·  26 May 2026

I Built a Student Grade Book
Web App from Scratch ๐ŸŽ“

A full-stack education platform with Python analytics, real-time web dashboard, live rankings — built from zero. No frameworks. No shortcuts.

๐Ÿ Python 3.14 ๐ŸŒ HTML · CSS · JS ๐Ÿ“Š Live Dashboard ๐ŸŽ“ Infosys Training ๐Ÿซ Masai School
5
Students
83.2%
Class Avg
291
Lines of Code
2
Platforms

๐Ÿ‘‹ What I Built & Why

As part of my journey at Masai School and my training program at Infosys, I was given a challenge: build a Student Grade Book using Python data structures. Instead of stopping at the basic requirement, I went further and built a complete full-stack platform with two versions:

๐Ÿ

Python CLI Dashboard

291-line terminal app with ASCII progress bars, subject analytics, search, rankings, dynamic add — runs anywhere Python is installed

๐ŸŒ

Web Dashboard

Dark luxury UI — real-time charts, search & filter, edit modal, CSV export, mobile responsive — all in one single HTML file

๐Ÿ“Š

Live Analytics

Class average, pass rate, subject-wise breakdowns, grade distribution — all update instantly when you add or edit students

๐Ÿ†

Rankings System

๐Ÿฅ‡๐Ÿฅˆ๐Ÿฅ‰ live leaderboard, top student spotlight with gold banner, sortable table — like a real school management system

✨ All Features

๐Ÿ“Š Real-time stat cards
๐Ÿ† Top student gold banner
๐Ÿ” Search students live
๐ŸŽฏ Filter by grade A/B/C
✏️ Edit scores in modal
Add students dynamically
๐Ÿ… Live ๐Ÿฅ‡๐Ÿฅˆ๐Ÿฅ‰ rankings
๐Ÿ“ˆ Subject bar charts
๐ŸŽฏ Grade distribution
⬇️ Export CSV report
๐Ÿ“ฑ Mobile responsive
๐ŸŒ™ Dark luxury theme

๐Ÿง  Python — All 4 Data Structures

This project uses all 4 Python data structures meaningfully — not just to tick a box:

# ─── LIST — ordered, mutable ──────────────────────────────
students = ['Raj', 'Priya', 'Amit', 'Sneha', 'Karan']
print(students[:3]) # → ['Raj', 'Priya', 'Amit']

# ─── TUPLE — immutable (subjects never change) ────────────
subjects = ('Math', 'Science', 'English')

# ─── DICTIONARY — key-value mark storage ──────────────────
marks = {
  'Sneha': {'Math': 95, 'Science': 90, 'English': 92},
  'Priya': {'Math': 92, 'Science': 88, 'English': 85},
  'Raj' : {'Math': 85, 'Science': 78, 'English': 90},
}

# ─── SET — unique grades, zero duplicates ─────────────────
unique_grades = set() # Even if 'A' added 10 times → stored once

# ─── Lambda + max() — find top student ────────────────────
top = max(students, key=lambda s: sum(marks[s].values()) / 3)
print(f"Top Student: {top}") # → Sneha

๐Ÿ“Ÿ Real Terminal Output

grade_book.py — Python 3.14
═══════════════════════════════════════════════════════
  ๐Ÿ“‹  STUDENT GRADE BOOK  |  INFOSYS ED-TECH
═══════════════════════════════════════════════════════

  All Students   : ['Raj','Priya','Amit','Sneha','Karan']
  First 3       : ['Raj','Priya','Amit']

───────────────────────────────────────────────────────
  ๐Ÿ†  Sneha
      Math   : [███████████████████░] 95%
      Science: [██████████████████░░] 90%
      English: [██████████████████░░] 92%
      Average: 92.33  |  Grade: A

───────────────────────────────────────────────────────
  ๐Ÿฅ‡  Sneha    92.33 · Grade A
  ๐Ÿฅˆ  Priya    88.33 · Grade A
  ๐Ÿฅ‰  Raj      84.33 · Grade B
   #4  Karan    80.00 · Grade B
   #5  Amit     71.00 · Grade B

  Top Student   : Sneha
  Unique Grades : {'A', 'B'}
═══════════════════════════════════════════════════════
  ๐Ÿš€  Infosys Ed-Tech | Student Grade Book | v2.0
═══════════════════════════════════════════════════════

๐Ÿ“Š Student Results Table

StudentMathScienceEnglishAverageGrade
๐Ÿ† Sneha95909292.33A
๐Ÿ† Priya92888588.33A
Raj85789084.33B
Karan80827880.00B
Amit70756871.00B

๐Ÿ† Final Class Rankings

๐Ÿฅ‡
Sneha
92.33
A
๐Ÿฅˆ
Priya
88.33
A
๐Ÿฅ‰
Raj
84.33
B
#4
Karan
80.00
B
#5
Amit
71.00
B

๐Ÿ—บ️ How It Works

1

Data Input

Student names stored in a List, marks in a Dictionary, subjects in a Tuple — structured like a real database

2

Calculate Average

sum(scores.values()) / 3 for each student — clean, readable Python

3

Assign Grade

≥85 → A · ≥70 → B · <70 → C — stored in a Set for unique tracking

4

Find Top Student

max() + lambda sorts all students by average — Sneha wins with 92.33

5

Output

Python CLI → beautiful ASCII terminal dashboard · Web → dark luxury real-time UI

๐Ÿ‘จ‍๐Ÿ’ป Mopuru Upendra Reddy

Python Developer · AI/ML Engineer · Ed-Tech Builder

B.Tech CSE · CMR University, Bengaluru · Masai School · Infosys

⭐ Try It Yourself — It's Free!

Full source code is open-source on GitHub. Clone it, run it, learn from it, build on it!

#Python #WebDevelopment #EdTech #Infosys #MasaiSchool #100DaysOfCode #OpenSource #CMRUniversity #MopuruUpendraReddy #Bengaluru #StudentProject #GradeBook

Comments

Popular posts from this blog

๐Ÿ”ฅ Fire & Ice — Magic Hand Particle System ❄️ | Pure Python

๐Ÿš€ ONCO Breast Cancer Detection System (2026)