seerious/TaskMaster
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
TaskMaster
==========
TaskMaster is a command-line task and project manager with full user authentication, custom logging, and persistent data storage. Designed to demonstrate clean architecture, modularity, and testability — it's built to scale and ready for integration into larger systems.
Features
--------
- User Registration & Login (with hashed passwords using bcrypt)
- Per-user Project Management
- Project-based Task Management
- Data Persistence with JSON files
- Custom Logging System for all modules
- Comprehensive Unit Tests
- Clean CLI Interface for task/project workflows
Tech Stack
----------
- Python 3.x
- bcrypt (for password hashing)
- shortuuid (for clean unique IDs)
- Standard libraries: os, json, datetime, unittest
Project Structure
-----------------
TaskMaster/
├── auth_system.py
├── project_manager.py
├── task_manager.py
├── taskmaster.py <- main CLI app
├── logger.py
├── data/
│ └── .gitkeep
├── logs/
│ └── .gitkeep
├── tests/
│ ├── test_auth_system.py
│ ├── test_project_manager.py
│ └── test_task_manager.py
├── requirements.txt
├── README.txt
└── .gitignore
Running Tests
-------------
Run all unit tests with:
python -m unittest discover tests
Sample CLI Flow
---------------
$ python taskmaster.py
=== TaskMaster ===
1. Login
2. Register
0. Exit
> 2
Username: alice
Password: MySecurePassword1!
Registration Successful. Please log in.
Installation
------------
Clone the repo and install requirements:
git clone https://github.com/seerious/TaskMaster.git
cd TaskMaster
pip install -r requirements.txt
Then run the app:
python taskmaster.py
Future Enhancements (Planned)
-----------------------------
- Export tasks to .csv
- Due date reminders
- Task tags or categories
- GUI frontend or web interface
Why It Matters
--------------
This project demonstrates:
- Secure authentication
- Modular architecture
- Scalable persistence with JSON
- Test-driven development
- CLI-first design
License
-------
MIT License