Skip to content

spray8x/CodeTrack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

CodeTrack - Coding Problem Practice Tracker

A comprehensive Python-based tool to track coding practice, analyze progress, and identify areas for improvement.

Python Version License


๐Ÿ“– Overview

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.


โœจ Features

๐Ÿ—‚๏ธ Problem Library Management

  • 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

โฑ๏ธ Practice Session Tracking

  • 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

๐Ÿ“Š Analytics & Progress Dashboard

  • 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

๐Ÿ’พ Data Management

  • JSON-based local storage
  • Automatic backup functionality
  • Data validation and error handling
  • Import/export capabilities

๐Ÿ› ๏ธ Technologies & Tools Used

  • 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

๐Ÿ“ฆ Installation & Setup

Prerequisites

  • Python 3.8 or higher
  • pip (Python package manager)

Step 1: Clone the Repository

git clone https://github.com/yourusername/codetrack.git
cd codetrack

Step 2: Install Dependencies

pip install -r requirements.txt

Step 3: Run the Application

python main.py

๐Ÿš€ How to Use

First Time Setup

When you run CodeTrack for the first time, it will automatically create the necessary data directories and files.

Main Menu Options

=== CodeTrack - Main Menu ===
1. Problem Library Manager
2. Practice Session Tracker
3. Analytics & Reports
4. Settings & Data Management
5. Exit

Example Workflow

1. Add a New Problem

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/

2. Start a Practice Session

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

3. View Your Progress

Select: Analytics & Reports โ†’ Dashboard

View:
- Current streak: 7 days
- Total solved: 45 problems
- Weak topics: Dynamic Programming (40% success)
- Strong topics: Arrays (85% success)

๐Ÿ“ธ Screenshots

Main Dashboard

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘           CodeTrack Dashboard                 โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘  Total Problems: 127                          โ•‘
โ•‘  Problems Solved: 45 (35%)                    โ•‘
โ•‘  Current Streak: 7 days ๐Ÿ”ฅ                    โ•‘
โ•‘  Avg Time (Medium): 32 minutes                โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

Topic Strength Analysis

Arrays          โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘ 85%
Strings         โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘ 78%
Graphs          โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 55%
Dynamic Prog    โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 40%

(Add actual screenshots here when your app is ready)


๐Ÿงช Testing

Run the test suite:

python -m pytest tests/

Run specific test module:

python -m pytest tests/test_problem_manager.py

๐Ÿ“ Project Structure

CodeTrack/
โ”œโ”€โ”€ 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

๐Ÿค Contributing

This is a student project, but suggestions and feedback are welcome!

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/improvement)
  3. Commit your changes (git commit -am 'Add new feature')
  4. Push to the branch (git push origin feature/improvement)
  5. Open a Pull Request

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ‘จโ€๐Ÿ’ป Author

[Your Name]


๐Ÿ™ Acknowledgments

  • 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

๐Ÿ”ฎ Future Enhancements

  • 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! ๐Ÿš€

About

A CLI Programming Problem Tracker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages