Skip to content

Repository files navigation

πŸ“‰ Mistake Tracker

Python License Tests PRs Welcome


Bookmark

🎯 Track your learning mistakes. Identify weak points. Improve efficiently.

Features β€’ Installation β€’ Usage β€’ Contributing


✨ Features

πŸ“ Log Mistakes

Record subject, error description, and solution with automatic timestamps.

πŸ“Š Smart Analytics

View error breakdown and percentage by subject to identify weak points.

πŸ” Search & Filter

Find mistakes quickly with keyword search across all entries.

✏️ Edit & Delete

Modify or remove entries when needed with confirmation prompts.

πŸ’Ύ Auto-Backup

Data is saved instantly with automatic backup rotation (20 versions).

πŸ“„ Pagination

Browse through large datasets with paginated view (10 items/page).


πŸš€ Installation

Option 1: Quick Start (Recommended)

# Step 1: Clone the repository
git clone https://github.com/minx-nie/Mistake-Tracker.git
cd Mistake-Tracker

# Step 2: Install the package
pip install -e .

# Step 3: Run the program
python -m mistake_tracker

⚠️ Important: You must run pip install -e . before using python -m mistake_tracker, otherwise you'll get "No module named mistake_tracker" error.


Option 2: Run Without Installing

If you prefer not to install, run the standalone script directly:

git clone https://github.com/minx-nie/Mistake-Tracker.git
cd Mistake-Tracker

# Run standalone script (no install needed)
python Mistake_Tracker.py

Option 3: Development Setup

git clone https://github.com/minx-nie/Mistake-Tracker.git
cd Mistake-Tracker

# Install with development dependencies
pip install -e ".[dev]"

# Setup pre-commit hooks
pre-commit install

# Run tests
pytest tests/ -v

πŸ“– Usage

Main Menu

When you run the program, you'll see this menu:

╔══════════════════════════════════════╗
β•‘       πŸ“‰ MISTAKE TRACKER             β•‘
╠══════════════════════════════════════╣
β•‘  [1] βž• Add New Mistake              β•‘
β•‘  [2] πŸ“‹ View Mistakes                β•‘
β•‘  [3] ✏️  Edit/Delete                  β•‘
β•‘  [4] πŸšͺ Exit                         β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Choose (1-4):

1️⃣ Add New Mistake

Select 1 β†’ Enter the details:

━━━ βž• Add New Mistake ━━━
Subject: math
Mistake: Wrong formula for area calculation
Fix: S = pi * r^2, not 2*pi*r

βœ… Mistake added successfully!

2️⃣ View Mistakes & Statistics

Select 2 β†’ See statistics and list:

━━━ πŸ“‹ View Mistakes ━━━
πŸ” Filter by keyword (Enter to skip):

πŸ“Š Statistics (Total: 15)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Subject              β”‚ Count β”‚  Rate
─────────────────────┼───────┼───────
Math                 β”‚    10 β”‚ 66.7%
English              β”‚     3 β”‚ 20.0%
Coding               β”‚     2 β”‚ 13.3%

πŸ“ All Mistakes
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. [Math] Wrong formula β†’ S = pi*r^2 (2024-12-23)
2. [Math] Sign error β†’ Check steps again (2024-12-22)
...

πŸ’‘ Tip: Enter a keyword to filter mistakes by subject, description, or fix.


3️⃣ Edit or Delete

Select 3 β†’ Choose entry number β†’ e to edit or d to delete:

━━━ ✏️ Edit/Delete ━━━
1. [Math] Wrong formula
2. [English] Grammar mistake

Choose number (0 = cancel): 1
(e)dit / (d)elete: e

πŸ’‘ Leave blank to keep current value.
Subject [math]:
Mistake [Wrong formula]: Wrong volume formula
Fix [S = pi*r^2]: V = 4/3 * pi * r^3

βœ… Updated.

4️⃣ Exit

Select 4 to safely exit the program. Your data is automatically saved!


πŸ› οΈ Tech Stack

Tool Purpose
Python Core language (3.9+)
Pytest Testing framework
Ruff Linting & formatting
Mypy Type checking
GitHub Actions CI/CD

πŸ“‚ Project Structure

Mistake-Tracker/
β”œβ”€β”€ πŸ“ src/mistake_tracker/
β”‚   β”œβ”€β”€ __init__.py      # Package init
β”‚   β”œβ”€β”€ __main__.py      # Entry point
β”‚   β”œβ”€β”€ cli.py           # CLI interface
β”‚   └── data.py          # Data management
β”œβ”€β”€ πŸ“ tests/
β”‚   └── test_tracker.py  # Unit tests
β”œβ”€β”€ πŸ“ .github/workflows/
β”‚   └── ci.yml           # GitHub Actions CI
β”œβ”€β”€ Mistake_Tracker.py   # Standalone script (legacy)
β”œβ”€β”€ pyproject.toml       # Project config
β”œβ”€β”€ ruff.toml            # Linter config
└── README.md

🀝 Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

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

πŸ“„ License

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


Made with ❀️ by minx-nie

Star Fork

About

A simple CLI tool to track learning mistakes

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages