Skip to content

Leetcode Statistics Dashboard v2.0 - Admin Panel & UI Enhancements

Latest

Choose a tag to compare

@Ketopluto Ketopluto released this 15 Oct 09:55
· 43 commits to main since this release
fb5451e

πŸŽ‰ 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