Skip to content

siyametj/my_note

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ Smart Notepad App πŸš€

Python Streamlit OS License

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.


Table of Contents


🌟 Key Features

  • βž• 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)

Project Structure

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

Demo / Quick Start

If you want to demo the app quickly:

  1. Clone the repo: git clone https://github.com/siyametj/my_note.git
  2. Enter the project folder: cd my_note
  3. Install dependencies (Streamlit is required): pip install streamlit
  4. 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.


Installation

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.)


Usage

  • 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.


Configuration & Data

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.


Contributing

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.


License

This project is licensed under the MIT License β€” see the LICENSE file for details.


Author

Siyam (@siyametj)

Environment: Debian Linux

If you like this project, give it a STAR! ⭐

About

A feature-rich Smart Notepad Web Application built with Python & Streamlit. Features category-based organization, custom sorting, filtering, and a soft-delete trash bin system. πŸ“βš‘

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages