https://github.com/sirecodes/hackathon-todo-app
Phase I: Todo In-Memory Python Console App
https://github.com/sirecodes/hackathon-todo-app
claude-code gemini-api python3 uv
Last synced: about 1 month ago
JSON representation
Phase I: Todo In-Memory Python Console App
- Host: GitHub
- URL: https://github.com/sirecodes/hackathon-todo-app
- Owner: sirecodes
- Created: 2025-12-29T17:21:07.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-12-29T18:10:17.000Z (about 2 months ago)
- Last Synced: 2026-01-01T23:34:26.625Z (about 2 months ago)
- Topics: claude-code, gemini-api, python3, uv
- Language: PowerShell
- Homepage:
- Size: 111 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: history/prompts/001-cli-todo-app/001-generate-task-breakdown-for-todo-app.tasks.prompt.md
Awesome Lists containing this project
README
# Todo App - CLI Task Manager
A lightweight, in-memory command-line todo application built with Python 3.13+. Manage your tasks efficiently with a beautiful, color-coded terminal interface.
## Features
- ✅ Add, view, update, and delete todos
- ✅ Mark todos as complete
- ✅ Tab autocomplete for commands
- ✅ Color-coded output with ASCII art
- ✅ Zero external dependencies
- ✅ Fast and responsive CLI
## Requirements
- Python 3.13 or higher
- No external dependencies required
## Installation
### Option 1: Using UV (Recommended)
[UV](https://github.com/astral-sh/uv) is a fast Python package installer and resolver.
1. **Install UV** (if not already installed):
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
2. **Clone the repository**:
```bash
git clone
cd Hackathon-Todo-App
```
3. **Run with UV**:
```bash
uv run src/app.py
```
UV will automatically handle Python version compatibility and run the application.
### Option 2: Standard Python
1. **Clone the repository**:
```bash
git clone
cd Hackathon-Todo-App
```
2. **Verify Python version**:
```bash
python --version # Should be 3.13+
```
3. **Run the application**:
```bash
python src/app.py
```
## Usage
### Commands
Once the application is running, use these commands:
| Command | Description |
|------------|--------------------------------|
| `add` | Add a new todo |
| `view` | View all todos |
| `update` | Update an existing todo |
| `delete` | Delete a todo |
| `complete` | Mark a todo as complete |
| `help` | Show the command menu |
| `exit` | Exit the application |
**Tip**: Use TAB to autocomplete commands!
### Example Workflow
```bash
# Start the app
python src/app.py
# Add a todo
Command: add
Enter todo description: Buy groceries
# View all todos
Command: view
# Mark as complete
Command: complete
Enter todo ID to mark complete: 1
# Exit
Command: exit
```
## Project Structure
```
Hackathon-Todo-App/
├── src/
│ ├── app.py # Main CLI interface
│ └── todo_manager.py # Todo data management
├── specs/ # Feature specifications
├── .specify/ # Development templates
└── README.md
```
## Technical Details
- **Storage**: In-memory (data is lost when app closes)
- **ID System**: Auto-incrementing integers
- **Status Types**: `pending` | `complete`
- **Python Version**: 3.13+
- **Dependencies**: None (uses only standard library)
## Development
This project follows Spec-Driven Development (SDD) principles. See the `specs/` directory for detailed specifications, plans, and task breakdowns.
### Documentation
- **Specification**: `specs/001-cli-todo-app/spec.md`
- **Implementation Plan**: `specs/001-cli-todo-app/plan.md`
- **Task Breakdown**: `specs/001-cli-todo-app/tasks.md`
- **Implementation Report**: `specs/001-cli-todo-app/implement.md`
## Limitations
- No data persistence (Phase I by design)
- Single-user only
- Terminal-based interface only
- Tab autocomplete may not work on all Windows terminals
## Future Enhancements (Phase II)
- File-based or database persistence
- Categories and tags
- Due dates and priorities
- Search and filter functionality
- Export to CSV/JSON
## License
[Your License Here]
## Contributing
Contributions are welcome! Please follow the Spec-Driven Development workflow outlined in `.specify/`.
---
**Version**: Phase I (In-Memory)
**Status**: Production Ready
**Last Updated**: 2025-12-29