Name: Notebook β A Terminal-based Note-taking System Tech Stack: C++ (Core), ANSI Escape Codes (for UI styling) Developer: Haris Khan (GitHub Repo)
This project is a lightweight, terminal-powered note-taking system that allows users to create, categorize, and filter notes directly from the command line. Notes are stored in a file-based system, ensuring simplicity, portability, and no external database dependencies.
Add Notes with Categories
Each note can be tagged with a category (e.g., work
, study
, personal
), making organization intuitive.
File-based Storage Notes are stored as plain text files, making them lightweight, portable, and easy to back up.
Filtering System Users can filter notes by category in the terminal, allowing quick retrieval of relevant notes.
Terminal UI with ANSI Styling Uses colors and formatting to make the note-taking experience more user-friendly and visually appealing.
Minimal & Fast No external dependencies like databasesβjust compile and run anywhere with C++.
When creating a note, users specify a category.
The system supports filter queries that scan files and only return notes from a given category.
Example:
Enter category to filter: study
β Displaying all notes under category [study]
noteTakingSystem2.cpp
: Main program logic for note creation, storage, and filtering.ansi.h
: ANSI escape sequences for UI enhancement.Choice | Rationale |
---|---|
File-based storage | Lightweight, portable, avoids database complexity. |
Categories + filters | Improves organization and retrieval of notes. |
Terminal + ANSI | Simple, cross-platform, and visually engaging. |
C++ | Fast, efficient, and good practice for file I/O and system-level programming. |