A clean, modern, and interactive Web-based Note-taking application built with Python and Streamlit. Organize notes with categories, sort and filter them, and use a safe Trash Bin (soft-delete) with restore capabilities.
- Key Features
- Project Structure
- Demo / Quick Start
- Installation
- Usage
- Configuration & Data
- Contributing
- License
- Author
- β Dynamic Note Creation with timestamps and titles
- π Category Management & Filtering (custom categories)
- ποΈ Smart Sorting: Newest, Oldest, Category (AβZ)
- ποΈ Trash Bin & Soft Delete (move notes to Trash instead of deleting)
- π Restore deleted notes back to active state
- π₯ Permanent trash cleaning (clear individual or full trash)
my_note/
βββ GUI/
β βββ streamlit_gui.py # Streamlit Web User Interface
βββ src/
β βββ json_handler.py # Core JSON I/O Engine
β βββ note.py # Main Notes Manager (CRUD Operations & Trash Logic)
β βββ sorter.py # Sorting & Category Filtering Logic
βββ utils/
β βββ helper.py # Terminal utilities & helper functions
β βββ input_taker.py # Safe input validation tools
βββ main.py # CLI Launcher Script
βββ LICENSE # Open-source License (MIT)
βββ README.md # Project Documentation
If you want to demo the app quickly:
- Clone the repo: git clone https://github.com/siyametj/my_note.git
- Enter the project folder: cd my_note
- Install dependencies (Streamlit is required): pip install streamlit
- Run the app:
- Option A (Streamlit runner): streamlit run GUI/streamlit_gui.py
- Option B (Python wrapper): python3 main.py
Open the URL printed by Streamlit (usually http://localhost:8501) and try creating notes, categorizing them, deleting/restoring to/from Trash, and experimenting with sorting & filtering.
Requirements
- Python 3.10+
- pip
Install streamlit: pip install streamlit
(If you plan to add more dependencies later, consider adding a requirements.txt and using pip install -r requirements.txt.)
- Use the UI to add a note: title, content, choose or create a category.
- Sort by Newest / Oldest / Category.
- Delete a note β it goes to Trash (soft-delete).
- From Trash, you can restore notes or permanently delete them (single or empty all).
If you prefer a CLI flow, run python3 main.py β see main.py for CLI options.
Notes and app data are managed via the JSON engine in src/json_handler.py. If you want to change where data is stored, check that file and src/note.py for configurable paths.
Contributions, suggestions, and bug reports are welcome!
- Fork the repo
- Create a feature branch: git checkout -b feature/your-feature
- Commit your changes and open a PR
Please keep changes focused and include tests or manual steps to validate features where appropriate.
This project is licensed under the MIT License β see the LICENSE file for details.
Siyam (@siyametj)
Environment: Debian Linux
If you like this project, give it a STAR! β