A comprehensive Python-based tool to track coding practice, analyze progress, and identify areas for improvement.
CodeTrack is a local-first practice tracking system designed for students and programmers who want to systematically monitor their coding problem-solving journey. It provides a command-line interface to manage problems, track timed practice sessions, and generate insightful analytics about your progress.
Whether you're preparing for technical interviews, competing in coding contests, or simply improving your problem-solving skills, CodeTrack helps you stay organized and motivated.
- Add, edit, and delete coding problems
- Categorize by difficulty (Easy, Medium, Hard)
- Tag with multiple topics (Arrays, DP, Graphs, Strings, etc.)
- Track status for each problem (Not Started, In Progress, Solved, Reviewed)
- Search and filter by any attribute
- Store problem URLs and platform information
- Start timed practice sessions for problems
- Pause and resume timer functionality
- Add notes during practice (approach, observations)
- Progressive hints system
- Store your solution code
- Complete session history with timestamps
- View total problems solved and current streak
- Analyze success rate by topic
- See average solve time by difficulty
- Visual charts and graphs:
- Problems solved over time
- Difficulty distribution
- Topic strength analysis
- Practice calendar (30-day heatmap)
- Identify weak areas needing more practice
- Export reports for review
- JSON-based local storage
- Automatic backup functionality
- Data validation and error handling
- Import/export capabilities
- Language: Python 3.8+
- Data Storage: JSON
- Visualization: Matplotlib, Seaborn
- CLI Enhancement: Colorama (for colored terminal output)
- Date/Time: datetime, time modules
- Data Processing: collections, itertools
- Testing: unittest
- Python 3.8 or higher
- pip (Python package manager)
git clone https://github.com/yourusername/codetrack.git
cd codetrackpip install -r requirements.txtpython main.pyWhen you run CodeTrack for the first time, it will automatically create the necessary data directories and files.
=== CodeTrack - Main Menu ===
1. Problem Library Manager
2. Practice Session Tracker
3. Analytics & Reports
4. Settings & Data Management
5. Exit
Select: Problem Library Manager โ Add New Problem
Enter problem details:
- Title: Two Sum
- Difficulty: Easy
- Topics: Arrays, Hash Table
- Platform: LeetCode
- URL: https://leetcode.com/problems/two-sum/
Select: Practice Session Tracker โ Start New Session
Choose a problem from your library
Timer starts automatically
Add notes as you work
Mark as solved when complete
Select: Analytics & Reports โ Dashboard
View:
- Current streak: 7 days
- Total solved: 45 problems
- Weak topics: Dynamic Programming (40% success)
- Strong topics: Arrays (85% success)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CodeTrack Dashboard โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ
โ Total Problems: 127 โ
โ Problems Solved: 45 (35%) โ
โ Current Streak: 7 days ๐ฅ โ
โ Avg Time (Medium): 32 minutes โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Arrays โโโโโโโโโโโโโโโโโโ 85%
Strings โโโโโโโโโโโโโโโโโโ 78%
Graphs โโโโโโโโโโโโโโโโโโ 55%
Dynamic Prog โโโโโโโโโโโโโโโโโโ 40%
(Add actual screenshots here when your app is ready)
Run the test suite:
python -m pytest tests/Run specific test module:
python -m pytest tests/test_problem_manager.pyCodeTrack/
โโโ main.py # Entry point
โโโ modules/
โ โโโ __init__.py
โ โโโ problem_manager.py # Problem library operations
โ โโโ session_tracker.py # Practice session tracking
โ โโโ analytics.py # Analytics and reports
โโโ utils/
โ โโโ __init__.py
โ โโโ data_handler.py # JSON file operations
โ โโโ validators.py # Input validation
โ โโโ helpers.py # Utility functions
โโโ ui/
โ โโโ cli_interface.py # Command-line interface
โโโ data/
โ โโโ problems.json # Problem library
โ โโโ sessions.json # Session history
โ โโโ user_stats.json # User statistics
โโโ tests/
โ โโโ test_modules.py # Unit tests
โโโ requirements.txt # Python dependencies
โโโ README.md # This file
โโโ statement.md # Project statement
This is a student project, but suggestions and feedback are welcome!
- Fork the repository
- Create a feature branch (
git checkout -b feature/improvement) - Commit your changes (
git commit -am 'Add new feature') - Push to the branch (
git push origin feature/improvement) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
[Your Name]
- GitHub: @yourusername
- Email: your.email@example.com
- Inspired by the need for better practice tracking during interview preparation
- Built as part of VITyarthi Problem Solving course project
- Thanks to all open-source libraries used in this project
- Web-based GUI using Flask
- Integration with LeetCode/Codeforces APIs
- Collaborative features (share progress with study groups)
- Mobile app version
- AI-powered problem recommendations
- Spaced repetition algorithm for review scheduling
- Export to Notion/Obsidian for note-taking integration
Happy Coding! ๐