add todo list for this project
This commit is contained in:
parent
3568cda90f
commit
90b0b5528d
61
TODO.md
Normal file
61
TODO.md
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
# cquote TODO
|
||||||
|
|
||||||
|
## Core functionality (high priority)
|
||||||
|
|
||||||
|
- [ ] Implement proper CSV line reader for `random`, `search`, and `list`
|
||||||
|
- Read one record at a time using `fgets`
|
||||||
|
- Parse fields with correct unquoting (handle doubled quotes `""`)
|
||||||
|
- Store quote, author, tags, and date in a struct
|
||||||
|
|
||||||
|
- [ ] Finish `quote_random()`
|
||||||
|
- Count total quotes
|
||||||
|
- Pick a random one (using `srand(time(NULL))`)
|
||||||
|
- Print cleanly (quote on first line, author on second, tags on third)
|
||||||
|
|
||||||
|
- [ ] Implement `quote_search(const char *term)`
|
||||||
|
- Case-insensitive substring match on quote, author, or tags
|
||||||
|
- Print matching quotes with context
|
||||||
|
|
||||||
|
- [ ] Implement `quote_list()`
|
||||||
|
- Optional `--tag` filter
|
||||||
|
- Simple tabular output or one-per-line
|
||||||
|
|
||||||
|
- [ ] Improve `quote_add()`
|
||||||
|
- Validate input (non-empty quote and author)
|
||||||
|
- Normalize tags (lowercase, no duplicates)
|
||||||
|
- Prevent duplicate quotes (optional)
|
||||||
|
|
||||||
|
## cnotes integration
|
||||||
|
|
||||||
|
- [ ] Create shell alias / wrapper examples
|
||||||
|
```bash
|
||||||
|
alias cnquote='cquote random | cnadd -c Quote'
|
||||||
|
```
|
||||||
|
- [ ] Document in README how to pipe quotes into daily logs
|
||||||
|
- [ ] *Optional*: Add a cnotes sub-command like cnotes quote
|
||||||
|
|
||||||
|
## Future / nice-to-have
|
||||||
|
|
||||||
|
- [ ] `--pipe` flag for clean output (no extra newlines)
|
||||||
|
- [ ] Support multiple database files (-f filename)
|
||||||
|
- [ ] `delete` or `archive` command (append to `.arc` like cnotes)
|
||||||
|
- [ ] Integration with `proj`:
|
||||||
|
|
||||||
|
```Bash
|
||||||
|
proj c mytool --quote # inserts random quote into README
|
||||||
|
proj c mytool --quote "focus" # uses tagged quote
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing & polish
|
||||||
|
|
||||||
|
- [ ] Add basic test cases (manual or simple shell scripts)
|
||||||
|
- [ ] Improve error messages and usage text
|
||||||
|
- [ ] Ensure Windows/DOS compatibility (path handling, line endings)
|
||||||
|
- [ ] Update README with usage examples and cnotes integration
|
||||||
|
|
||||||
|
## Long-term ideas
|
||||||
|
|
||||||
|
- [ ] Quote-of-the-day daemon / cron suggestion
|
||||||
|
- [ ] Export to HTML or plain text
|
||||||
|
- [ ] Fuzzy search
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user