Skip to content

Commit e45c02d

Browse files
committed
Add major feature enhancements and improvements
This commit adds extensive new features and improvements to the todo-list-cli: ## New Features ### Core Functionality - Colorized terminal output with ANSI color support - Tags/categories system for task organization - Due date tracking for tasks - Statistics and analytics dashboard (todo stats) - Export functionality (JSON, CSV, Markdown) - List all tags with usage counts (todo tags) ### Enhanced Task Management - Color-coded priorities (red=high, yellow=medium, blue=low) - Status indicators (✓ completed, ○ pending) - Dimmed display for completed tasks - Filter tasks by tags - Enhanced search with visual feedback ### Developer & DevOps - Docker support with multi-stage Dockerfile - .dockerignore for optimized builds - Shell completions for Bash and Zsh - Comprehensive CHANGELOG.md - GitHub issue templates (bug report, feature request) - GitHub pull request template ### Documentation - Completely rewritten README with detailed examples - Usage examples with emojis for better readability - Docker usage instructions - Shell completion installation guide - Example output demonstrations ## Technical Improvements ### Code Architecture - New colors.py module for terminal color management - Enhanced core.py with new methods: - list_tags(): Display all tags with counts - get_statistics(): Show comprehensive task statistics - export_tasks(): Export to multiple formats - Updated CLI with new commands and options - Support for --tags, --due flags - CSV export functionality ### Code Quality - Type hints for all new functions - Comprehensive docstrings - Enhanced error handling with colored messages - Consistent color scheme throughout ### Configuration & Setup - Shell completion scripts for better UX - Docker containerization for easy deployment - Updated .gitignore for export files ## Files Modified - src/todolist/core.py: Added tags, due dates, stats, export features - src/todolist/__main__.py: Updated CLI with new commands - README.md: Complete rewrite with new features - .gitignore: Added export file patterns ## Files Added - src/todolist/colors.py: Color support module - CHANGELOG.md: Version history and upgrade guide - Dockerfile: Multi-stage build configuration - .dockerignore: Docker build optimization - completions/: Bash and Zsh completion scripts - .github/ISSUE_TEMPLATE/: Bug report and feature request templates - .github/pull_request_template.md: PR template All features tested and working. Ready for v1.0.0 release.
1 parent c35cea6 commit e45c02d

File tree

15 files changed

+1413
-127
lines changed

15 files changed

+1413
-127
lines changed

.dockerignore

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Git files
2+
.git
3+
.gitignore
4+
.github
5+
6+
# Python cache
7+
__pycache__
8+
*.py[cod]
9+
*$py.class
10+
*.so
11+
.Python
12+
build/
13+
dist/
14+
*.egg-info/
15+
.eggs/
16+
17+
# Virtual environments
18+
venv/
19+
env/
20+
ENV/
21+
22+
# IDE
23+
.vscode/
24+
.idea/
25+
*.swp
26+
*.swo
27+
28+
# Testing
29+
.pytest_cache/
30+
.coverage
31+
htmlcov/
32+
.tox/
33+
34+
# Data files
35+
tasks.json
36+
*.json
37+
!pyproject.toml
38+
39+
# Documentation build
40+
docs/_build/
41+
42+
# OS files
43+
.DS_Store
44+
Thumbs.db
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
name: Bug Report
3+
about: Create a report to help us improve
4+
title: '[BUG] '
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
## Bug Description
10+
11+
A clear and concise description of what the bug is.
12+
13+
## Steps To Reproduce
14+
15+
1. Run command '...'
16+
2. With arguments '...'
17+
3. See error
18+
19+
## Expected Behavior
20+
21+
A clear and concise description of what you expected to happen.
22+
23+
## Actual Behavior
24+
25+
A clear and concise description of what actually happened.
26+
27+
## Error Messages
28+
29+
```
30+
Paste any error messages here
31+
```
32+
33+
## Environment
34+
35+
- OS: [e.g., Ubuntu 22.04, macOS 13.0, Windows 11]
36+
- Python Version: [e.g., 3.11.0]
37+
- Todo CLI Version: [e.g., 1.0.0]
38+
- Installation Method: [e.g., pip install, direct clone]
39+
40+
## Task Data (if relevant)
41+
42+
```json
43+
{
44+
"example": "Paste your tasks.json if relevant to the issue"
45+
}
46+
```
47+
48+
## Additional Context
49+
50+
Add any other context about the problem here, such as:
51+
- Screenshots (if applicable)
52+
- Related issues
53+
- Possible solutions you've considered

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: true
2+
contact_links:
3+
- name: Question or Discussion
4+
url: https://github.com/codeforgood-org/todo-list-cli/discussions
5+
about: Ask questions or discuss ideas with the community
6+
- name: Documentation
7+
url: https://github.com/codeforgood-org/todo-list-cli#readme
8+
about: Check the README for usage instructions and examples
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
name: Feature Request
3+
about: Suggest an idea for this project
4+
title: '[FEATURE] '
5+
labels: enhancement
6+
assignees: ''
7+
---
8+
9+
## Feature Description
10+
11+
A clear and concise description of the feature you'd like to see.
12+
13+
## Problem It Solves
14+
15+
Describe the problem or limitation this feature would address.
16+
Example: "I'm always frustrated when..."
17+
18+
## Proposed Solution
19+
20+
A clear and concise description of what you want to happen.
21+
22+
### Command Example
23+
24+
```bash
25+
# Example of how the new feature might work
26+
todo <new-command> [options]
27+
```
28+
29+
### Expected Output
30+
31+
```
32+
Example output or behavior
33+
```
34+
35+
## Alternatives Considered
36+
37+
Describe any alternative solutions or features you've considered.
38+
39+
## Additional Context
40+
41+
Add any other context, screenshots, mockups, or examples about the feature request here.
42+
43+
## Use Cases
44+
45+
Describe specific use cases for this feature:
46+
1. Use case 1
47+
2. Use case 2
48+
3. Use case 3
49+
50+
## Priority
51+
52+
How important is this feature to you?
53+
- [ ] Nice to have
54+
- [ ] Important
55+
- [ ] Critical
56+
57+
## Willingness to Contribute
58+
59+
Would you be willing to contribute to implementing this feature?
60+
- [ ] Yes, I can submit a PR
61+
- [ ] Yes, I can help with testing
62+
- [ ] No, but I can provide feedback
63+
- [ ] No

.github/pull_request_template.md

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
# Description
2+
3+
Please include a summary of the changes and which issue is fixed. Include relevant motivation and context.
4+
5+
Fixes # (issue)
6+
7+
## Type of Change
8+
9+
Please delete options that are not relevant.
10+
11+
- [ ] Bug fix (non-breaking change which fixes an issue)
12+
- [ ] New feature (non-breaking change which adds functionality)
13+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
14+
- [ ] Documentation update
15+
- [ ] Code refactoring
16+
- [ ] Performance improvement
17+
- [ ] Test coverage improvement
18+
19+
## Changes Made
20+
21+
List the specific changes made in this PR:
22+
23+
- Change 1
24+
- Change 2
25+
- Change 3
26+
27+
## Testing
28+
29+
Please describe the tests that you ran to verify your changes.
30+
31+
### Test Configuration
32+
33+
- Python Version:
34+
- OS:
35+
- Related test files:
36+
37+
### Test Commands Run
38+
39+
```bash
40+
# Example
41+
pytest tests/
42+
python todo.py list
43+
```
44+
45+
## Checklist
46+
47+
Please check all that apply:
48+
49+
- [ ] My code follows the style guidelines of this project (Black, Flake8)
50+
- [ ] I have performed a self-review of my own code
51+
- [ ] I have commented my code, particularly in hard-to-understand areas
52+
- [ ] I have made corresponding changes to the documentation
53+
- [ ] My changes generate no new warnings
54+
- [ ] I have added tests that prove my fix is effective or that my feature works
55+
- [ ] New and existing unit tests pass locally with my changes
56+
- [ ] Any dependent changes have been merged and published
57+
58+
## Screenshots (if applicable)
59+
60+
If your changes include UI/output changes, please include before/after screenshots.
61+
62+
### Before
63+
64+
```
65+
Output before changes
66+
```
67+
68+
### After
69+
70+
```
71+
Output after changes
72+
```
73+
74+
## Additional Notes
75+
76+
Add any additional notes, concerns, or questions here.
77+
78+
## Breaking Changes
79+
80+
If this PR introduces breaking changes, please describe:
81+
82+
1. What breaks
83+
2. How to migrate
84+
3. Why the breaking change is necessary
85+
86+
## Performance Impact
87+
88+
If applicable, describe any performance implications:
89+
90+
- Does this change impact performance?
91+
- Have you run benchmarks?
92+
- What are the results?
93+
94+
## Documentation
95+
96+
- [ ] README.md updated (if needed)
97+
- [ ] CHANGELOG.md updated
98+
- [ ] Examples updated (if needed)
99+
- [ ] Docstrings added/updated
100+
- [ ] CONTRIBUTING.md updated (if needed)

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,5 +175,7 @@ cython_debug/
175175

176176
# Project-specific files
177177
tasks.json
178+
tasks_export.*
179+
example_tasks.json
178180
*.json
179181
!pyproject.toml

0 commit comments

Comments
 (0)