Skip to main content

A powerful CLI and GUI tool to extract, organize, and analyze Microsoft Sticky Notes (modern and classic formats)

Project description

๐Ÿ“ Sticky Note Organizer

Python License Platform Tests Version

A powerful Windows application to extract, organize, and analyze Microsoft Sticky Notes with both CLI and GUI interfaces.

Features โ€ข Installation โ€ข Quick Start โ€ข Documentation โ€ข Contributing


๐ŸŒŸ Overview

Sticky Note Organizer is a comprehensive tool designed to help you manage your Microsoft Sticky Notes more effectively. It automatically detects your sticky notes database, intelligently categorizes notes by themes, and provides both a user-friendly GUI and powerful CLI for maximum flexibility.

Perfect for:

  • ๐Ÿ“Š Analyzing your note-taking patterns
  • ๐Ÿ—‚๏ธ Organizing hundreds of notes automatically
  • ๐Ÿ’พ Backing up your important notes
  • ๐Ÿ“ค Exporting notes to multiple formats (CSV, JSON, Excel, Markdown)
  • ๐Ÿ” Searching and filtering notes efficiently
  • ๐Ÿ“ˆ Visualizing statistics and insights

โœจ Features

Core Capabilities

  • ๐ŸŽฏ Auto-Detection: Automatically finds your Microsoft Sticky Notes database
  • ๐Ÿค– Smart Categorization: Organizes notes into 12+ intelligent categories
    • Business Ideas, Financial/Money, Technology/Development
    • Work/Career, Personal Goals, Tasks/Reminders
    • Contacts/People, Travel/Places, Shopping, and more!
  • ๐Ÿ“ฆ Multiple Export Formats: CSV, JSON, Excel, Markdown, and summary reports
  • ๐Ÿ” Advanced Search & Filtering: Search by content, category, date range, keywords, and more
  • ๐Ÿ“Š Analytics Dashboard: Get insights into your note-taking patterns with interactive charts
  • ๐ŸŽจ Theme Support: Filter by sticky note colors/themes
  • ๐ŸชŸ Windows Native: Designed specifically for Windows 10/11 Microsoft Sticky Notes

GUI Features

๐Ÿ–ฅ๏ธ Beautiful, Intuitive Interface

  • User-Friendly Interface: Easy-to-use Tkinter-based GUI for non-technical users
  • Visual Note Browser: Browse notes by category with live search
  • Advanced Filtering: Interactive filtering with real-time preview
  • Statistics Dashboard: Visual charts showing category distribution and trends
  • Note Management: Edit, delete, merge, and duplicate notes directly in the GUI
  • Backup & Restore: Create and manage database backups with one click
  • Export Manager: Export notes in multiple formats with visual feedback

Advanced Features

  • ๐Ÿ’พ Backup/Restore: Automated backup creation with ZIP compression
  • โœ๏ธ Note Editing: Edit note content, merge multiple notes, delete notes
  • ๐Ÿ”„ Duplicate Detection: Find similar notes automatically
  • ๐Ÿ“ Word Frequency Analysis: Discover common keywords in your notes
  • ๐Ÿ“… Timeline Analysis: See when notes were created over time
  • ๐ŸŽจ Custom Categories: Add your own categories and keywords

๐Ÿš€ Quick Start

Installation

Option 1: Quick Install (Recommended)

  1. Clone the repository:

    git clone https://github.com/Primus-Izzy/Sticky-Note-Organizer.git
    cd Sticky-Note-Organizer
    
  2. Run the installer:

    python install.py
    
  3. Verify installation:

    sticky-organizer --help
    

Option 2: Manual Install

pip install -r requirements.txt
pip install -e .

๐ŸŽฎ Launch the GUI (Super Easy!)

For Non-Technical Users (Easiest Method):

Simply double-click one of these files in the project folder:

  1. StickyNoteOrganizer.pyw โญ Recommended (runs without console window)
  2. launch_gui.bat (shows console window for debugging)
  3. launch_gui.py (if you have Python set to open .py files)

That's it! The GUI will open automatically and detect your sticky notes.

For Command Line Users:

# Launch GUI using installed command
sticky-organizer-gui

# Or via CLI
sticky-organizer gui

# Or directly
python -m sticky_organizer.gui_launcher

๐Ÿ’ป CLI Basic Usage

# Check your database
sticky-organizer info

# Extract and organize your notes
sticky-organizer extract

# Search for specific content
sticky-organizer search "business idea"

# Create a backup
sticky-organizer backup

# View all categories
sticky-organizer categories

๐Ÿ“– Documentation

GUI User Guide

The GUI features a tabbed interface with five main sections:

1๏ธโƒฃ Browser Tab

  • Categories Panel: View notes organized by category
  • Notes List: Searchable list of notes in the selected category
  • Note Editor: View and edit note content
  • Export Options: Export to CSV, JSON, Excel, or Markdown

How to use:

  1. Select a category from the left panel
  2. Click on a note to view its content
  3. Edit the note in the text area
  4. Click "Save Changes" to update
  5. Use export buttons to save notes to files

2๏ธโƒฃ Filter Tab

  • Date Range: Filter notes by creation date
  • Categories: Select multiple categories to include
  • Content Length: Filter by minimum/maximum note length
  • Keywords: Search for specific keywords
  • Live Preview: See filtered results in real-time

3๏ธโƒฃ Statistics Tab

  • Summary Statistics: Total notes, categories, top keywords
  • Category Distribution: Pie chart showing note distribution
  • Word Frequency: Most common words in your notes
  • Timeline Chart: Notes created over time

4๏ธโƒฃ Backup Tab

  • Database Info: Current database location and size
  • Create Backup: One-click backup creation
  • Backup List: View all available backups
  • Restore: Restore from a previous backup

5๏ธโƒฃ Settings Tab

  • Custom Categories: Add your own categories
  • Keywords: Define keywords for auto-categorization
  • Export Preferences: Configure default export settings

CLI Commands Reference

extract - Extract and organize notes

# Basic extraction
sticky-organizer extract

# Custom output directory and formats
sticky-organizer extract -o my_notes -f csv json excel

# Specify database path
sticky-organizer extract -d "C:\path\to\plum.sqlite"

Options:

  • -d, --db-path: Path to sticky notes database file
  • -o, --output-dir: Output directory (default: 'output')
  • -f, --formats: Export formats (csv, json, excel, markdown, summary)
  • --filename: Base filename for exported files
  • --show-stats/--no-stats: Show/hide extraction statistics

search - Search notes

# Basic search
sticky-organizer search "project deadline"

# Search within a specific category
sticky-organizer search "meeting" -c "Work/Career"

# Case-sensitive search
sticky-organizer search "API" --case-sensitive

backup - Create database backup

# Create compressed backup
sticky-organizer backup

# Specify output directory
sticky-organizer backup -o my_backups

# Uncompressed backup
sticky-organizer backup --no-compress

restore - Restore from backup

# Restore from backup (with safety backup of current database)
sticky-organizer restore backups/sticky_notes_backup_20231215.zip

# Restore without creating safety backup
sticky-organizer restore backup.zip --no-backup

edit - Edit a note

sticky-organizer edit [note-id] "New content"

merge - Merge multiple notes

sticky-organizer merge [note-id-1] [note-id-2] [note-id-3]

Options:

  • -s, --separator: Text to insert between merged notes

info - Database information

sticky-organizer info

Shows database location, size, table structure, and note statistics.

categories - Show available categories

sticky-organizer categories

Displays all categories and their associated keywords.

๐Ÿ—‚๏ธ Categories

The tool automatically categorizes your notes into these themes:

Category Keywords
Business Ideas Startup, marketing, business, revenue, product, customer
Financial/Money Money, payment, salary, budget, investment, cost
Technology/Development Code, API, website, software, app, programming
Work/Career Work, job, meeting, project, deadline, career
Personal Goals Goal, aspiration, dream, improvement, habit
Health/Fitness Health, fitness, exercise, workout, diet, medical
Contacts/People Phone, email, address, contact
Travel/Places Travel, trip, vacation, destination, hotel
Shopping/Items Buy, purchase, shopping, store, price
Ideas/Thoughts Idea, thought, concept, brainstorm
Tasks/Reminders Todo, task, reminder, deadline, appointment
Education/Learning Learn, study, course, education, training

๐Ÿ“ฆ Output Files

The tool generates several types of output files:

  • CSV Files (.csv) - All notes with categories and metadata
  • JSON Export (.json) - Machine-readable format with full metadata
  • Excel Workbook (.xlsx) - Multi-sheet workbook organized by category
  • Markdown Report (.md) - Human-readable format for documentation
  • Summary Report (.txt) - Organized overview with key highlights

๐Ÿ”ง Advanced Usage

Using the Python API

from sticky_organizer.database import StickyNotesDatabase
from sticky_organizer.categorizer import NoteCategorizer
from sticky_organizer.exporters import ExportManager
from sticky_organizer.filters import NoteFilter, NoteSorter
from sticky_organizer.backup import BackupManager
from sticky_organizer.analytics import AdvancedAnalytics

# Connect to database
db = StickyNotesDatabase()
if db.connect():
    notes = db.extract_notes()
    db.close()

# Categorize notes
categorizer = NoteCategorizer()
categorized = categorizer.categorize_notes(notes)

# Advanced filtering
filter_engine = NoteFilter()
filtered_notes = (filter_engine
    .by_date_range('2023-01-01', '2023-12-31')
    .by_keywords(['business', 'startup'])
    .by_content_length(min_length=50)
    .apply(notes))

# Sort notes
sorted_notes = NoteSorter.by_date(filtered_notes, ascending=False)

# Create backup
backup_mgr = BackupManager()
backup_file = backup_mgr.create_backup('path/to/plum.sqlite')

# Generate analytics
analytics = AdvancedAnalytics()
word_freq = analytics.get_word_frequency(notes, top_n=20)
category_stats = analytics.get_category_stats(categorized)

# Export to multiple formats
export_manager = ExportManager('my_output')
results = export_manager.export(sorted_notes, ['csv', 'json'], 'filtered_notes')

Custom Categories

# Add custom category
categorizer = NoteCategorizer()
categorizer.add_custom_category('Recipes', ['recipe', 'cooking', 'ingredients', 'food'])

# Use in categorization
categorized = categorizer.categorize_notes(notes)

๐Ÿ–ฅ๏ธ Database Support

Supported Formats

  • Modern Sticky Notes (Windows 10/11): plum.sqlite โœ…
  • Classic Sticky Notes (Windows 7/8/early 10): StickyNotes.snt โœ… NEW in v1.1.0!

Auto-Detection Locations

The tool automatically searches these locations:

Windows:

  • %USERPROFILE%\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\plum.sqlite
  • %USERPROFILE%\AppData\Roaming\Microsoft\Sticky Notes\StickyNotes.snt

Current Directory:

  • ./plum.sqlite
  • ./StickyNotes.snt

๐Ÿ“‹ Requirements

Core Dependencies

click>=8.0.0              # CLI framework
pandas>=1.3.0             # DataFrames (optional, for Excel)
openpyxl>=3.0.0           # Excel writer (optional)
colorama>=0.4.0           # Colored console output
tabulate>=0.8.0           # Table formatting
pathlib2>=2.3.0           # Path handling
python-dateutil>=2.8.0    # Date utilities

GUI Dependencies

matplotlib>=3.5.0         # Charts and visualizations
Pillow>=9.0.0            # Image handling
wordcloud>=1.8.0         # Word cloud generation

All dependencies are automatically installed via install.py or requirements.txt.

๐Ÿ› ๏ธ Development

Project Structure

sticky-note-organizer/
โ”œโ”€โ”€ src/sticky_organizer/          # Main package
โ”‚   โ”œโ”€โ”€ __init__.py                # Package initialization
โ”‚   โ”œโ”€โ”€ cli.py                     # Command-line interface
โ”‚   โ”œโ”€โ”€ gui.py                     # GUI application
โ”‚   โ”œโ”€โ”€ gui_launcher.py            # GUI entry point
โ”‚   โ”œโ”€โ”€ database.py                # Database operations
โ”‚   โ”œโ”€โ”€ categorizer.py             # Note categorization
โ”‚   โ”œโ”€โ”€ exporters.py               # Export functionality
โ”‚   โ”œโ”€โ”€ filters.py                 # Advanced filtering
โ”‚   โ”œโ”€โ”€ backup.py                  # Backup/restore operations
โ”‚   โ”œโ”€โ”€ analytics.py               # Analytics and statistics
โ”‚   โ””โ”€โ”€ editor.py                  # Note editing operations
โ”œโ”€โ”€ tests/                         # Test files
โ”œโ”€โ”€ docs/                          # Documentation
โ”œโ”€โ”€ examples/                      # Usage examples
โ”œโ”€โ”€ requirements.txt               # Dependencies
โ”œโ”€โ”€ setup.py                       # Package setup
โ”œโ”€โ”€ install.py                     # Installation script
โ”œโ”€โ”€ StickyNoteOrganizer.pyw        # GUI launcher (no console)
โ”œโ”€โ”€ launch_gui.bat                 # Windows batch launcher
โ”œโ”€โ”€ launch_gui.py                  # Python launcher
โ””โ”€โ”€ README.md                      # This file

Running Tests

# Run all tests
python -m pytest tests/

# Run with coverage
python -m pytest tests/ --cov=sticky_organizer

# Run specific test file
python -m pytest tests/test_categorizer.py

Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
    
  3. Make your changes
    • Write tests for new features
    • Update documentation
    • Follow PEP 8 style guidelines
  4. Commit your changes
    git commit -m 'Add amazing feature'
    
  5. Push to the branch
    git push origin feature/amazing-feature
    
  6. Open a Pull Request

Development Guidelines

  • Write clear, descriptive commit messages
  • Add tests for all new features
  • Update documentation for any API changes
  • Ensure all tests pass before submitting PR
  • Follow the existing code style

๐Ÿ› Troubleshooting

GUI won't launch

Make sure GUI dependencies are installed:

pip install matplotlib Pillow wordcloud

Database not found

The tool looks for the database in standard Windows locations. If not found:

  1. Use the GUI's "Connect" button to manually select the database
  2. Or use --db-path option in CLI commands

Export fails

  • Excel export: Install pandas and openpyxl: pip install pandas openpyxl
  • Permission errors: Check that the output directory is writable

Backup/Restore issues

  • Ensure you have write permissions in the backup directory
  • Verify the backup file exists and is not corrupted
  • For ZIP backups, ensure the file is a valid ZIP archive

Console encoding errors

If you see Unicode errors on Windows:

  • The tool automatically handles encoding issues with multiple fallback levels
  • If problems persist, use the GUI instead of CLI
  • Or redirect output: sticky-organizer extract > output.log 2>&1

๐Ÿ“Š Example Output

EXTRACTION SUMMARY
==================================================
Total notes extracted: 371
Categories found: 13

CATEGORY BREAKDOWN:
  Miscellaneous              75 notes ( 20.2%)
  Business Ideas             72 notes ( 19.4%)
  Financial/Money            59 notes ( 15.9%)
  Technology/Development     58 notes ( 15.6%)
  Contacts/People            30 notes (  8.1%)
  Work/Career                25 notes (  6.7%)
  Tasks/Reminders            21 notes (  5.7%)
  Personal Goals             10 notes (  2.7%)
  Travel/Places               8 notes (  2.2%)
  Shopping/Items              6 notes (  1.6%)
  Ideas/Thoughts              4 notes (  1.1%)
  Education/Learning          2 notes (  0.5%)
  Health/Fitness              1 notes (  0.3%)

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Microsoft for the Sticky Notes application
  • The Python community for excellent libraries
  • All contributors and users of this tool

๐Ÿ“ž Support

๐Ÿ—บ๏ธ Roadmap

  • Support for Classic Sticky Notes (.snt format) โœ… v1.1.0
  • Cloud sync support
  • Mobile app companion
  • Advanced AI-powered categorization
  • Collaborative features
  • Theme customization
  • Export to OneNote/Evernote

โญ Star this repo if you find it useful! โญ

Made with โค๏ธ for better note organization

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sticky_note_organizer-1.1.0.tar.gz (63.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sticky_note_organizer-1.1.0-py3-none-any.whl (40.8 kB view details)

Uploaded Python 3

File details

Details for the file sticky_note_organizer-1.1.0.tar.gz.

File metadata

  • Download URL: sticky_note_organizer-1.1.0.tar.gz
  • Upload date:
  • Size: 63.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for sticky_note_organizer-1.1.0.tar.gz
Algorithm Hash digest
SHA256 262ae6e0ef02b05b512eb95eac6918d0b92613d474389ace710041c640324909
MD5 379ce8709bda2d154813ed56d943cd46
BLAKE2b-256 eaa1cdb9d858f28ed89a6ee19589b729050eb6eda09ef4c3d5f55aee1fd3a8fb

See more details on using hashes here.

File details

Details for the file sticky_note_organizer-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sticky_note_organizer-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3a01672b4dd470fb705d5eba1c8d89fca1e001946605a8b42d0f087eda77520c
MD5 4849299edcd982f4e0a1ece804833bff
BLAKE2b-256 36957ab6e6c41c85283f4c4be9623a72a3133246971a8b79635915ed7343b123

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page