Repository navigation
π LeetCode Stats Dashboard v2.0
A complete overhaul of the LeetCode Statistics Dashboard with professional admin panel, modern UI, and powerful management features.
π Major Features
Admin Panel
π Secure Authentication System - Password-protected admin area with 7-day persistent sessions
π€ Excel Bulk Upload - Smart column detection supporting various Excel formats (Register No, Name, LeetCode Profile)
π₯ Student Management - View, edit, and delete student records with advanced filtering
π Pagination - Browse 25 students per page for optimal performance
π Advanced Search - Filter students by name, register number, or username
π Upload Logs - Track all upload activities with success/error tracking
Dashboard Enhancements
π¨ Complete UI Redesign - Modern, responsive interface with improved user experience
π Top 5 Leaderboard - Dynamic leaderboard showcasing top performers
π Stats Overview Cards - Real-time metrics (Total Users, Problems Solved, Average per User)
π Client-Side Table Search - Instant filtering as you type with "Showing X of Y" counter
π― Year & Section Filtering - Filter by year (2nd Year A, 2nd Year B, 3rd Year, 4th Year)
πΎ CSV Export - Download filtered data with proper year/section labels
Student Profiles
π€ Individual Profile Pages - Detailed stats for each student
π Comprehensive Statistics - Easy/Medium/Hard breakdown, total problems solved
π Recent Submissions - View last 20 submissions with timestamps
π Direct LeetCode Links - Quick access to student profiles
β‘ Performance & Technical Improvements
Database Migration - Migrated from text files to SQLite for better data integrity
Async API Calls - Concurrent fetching of LeetCode stats with retry logic
Smart Error Handling - 3-attempt retry mechanism for failed API calls
Loading Animations - 8 different random spinners with 40+ fun coding facts
Caching System - Improved performance with Flask-Caching
π¨ UI/UX Enhancements
Modern color scheme with improved readability
Responsive design for mobile and desktop
Smooth animations and transitions
Interactive elements with hover effects
Professional navbar with role-based links
Flash messages for user feedback
Empty state designs
π Security Features
Environment variable configuration (SECRET_KEY, HOD_PASSWORD)
Secure session management with 7-day persistence
Password-protected admin routes
.gitignore configuration to exclude sensitive files
No database or credentials in Git repository
π οΈ Developer Experience
Production Ready - render.yaml configuration for one-click deployment
Migration Scripts - Tools to migrate from v1.0 to v2.0
Database Management - Auto-creation and migration scripts
Requirements Updated - All dependencies documented
Gunicorn Support - Production WSGI server configuration
π¦ Deployment
Ready for production deployment on Render.com with:
Persistent disk storage for database
Environment variable management
Auto-scaling configuration
Health check endpoints
π Bug Fixes
Fixed LeetCode API timeout issues with retry logic
Resolved column detection issues with Excel uploads
Fixed year/section display inconsistencies
Corrected navigation authentication state
Removed cached credentials causing 403 errors
πΎ Database Schema
New models:
Student - Register number, name, LeetCode username, year, section, timestamps
UploadLog - Track all Excel uploads with success/error reporting
π Tech Stack
Backend: Flask 2.3, SQLAlchemy, asyncio, aiohttp
Frontend: Vanilla JavaScript, CSS3
Database: SQLite
API: LeetCode Stats API (Faisal Shohag)
Deployment: Render.com with persistent disk
Server: Gunicorn WSGI
π― Breaking Changes
Database format changed from .txt to .db (migration script provided)
Configuration now requires environment variables for production
Admin password must be set via environment variable
π Documentation
Full deployment guide and configuration instructions available in repository.
Full Changelog: Compare changes from v1.0 to v2.0
Installation: See README.md for setup instructions
Feedback: Open an issue for bugs or feature requests