A comprehensive command-line application for managing, organizing, and exploring your favorite quotes. Built with Python and SQLite for efficient storage and retrieval.
- Add Quotes: Single quote entry or batch import multiple quotes at once
- Search & Filter: Search by text, author, category, or tags
- Favorites System: Mark and manage your favorite quotes
- Random Quotes: Get inspiration with random quote display (optionally filtered by category)
- Statistics: Detailed analytics about your quote collection
- Import/Export: Support for JSON and CSV formats
- Database Backup: Create backups of your quote collection
- Multiple Authors: Support for known authors and unknown attributions
- Categorization: Organize quotes by categories and tags
- View Tracking: Track how often quotes are viewed
- Cross-platform: Works on Windows, Linux, and macOS
- Rich Metadata: Store source, year, tags, and other quote details
- Duplicate Detection: Prevents duplicate quotes from being added
- Database Statistics: Comprehensive overview of your collection
- Python 3.6 or higher
- Standard Python libraries (sqlite3, os, sys, json, csv, datetime, random, textwrap, shutil, time)
- Clone the repository:
git clone https://github.com/official-imvoiid/Quotes-Manager.git
cd Quotes-Manager- No additional dependencies required - uses only Python standard library
Run the main program and choose to initialize with the included quote collection:
# Windows
StartWindows.bat
# Linux/macOS
chmod +x StartLinux.sh
./StartLinux.sh
# Or directly
python QuotesManager.pypython MYQuotes.pyChoose from three initialization options:
- Empty Database: Start with clean database structure
- Pre-loaded Database: Use the included collection of quotes
- Merge Mode: Combine existing database with the included quotes
Quotes-Manager/
├── QuotesManager.py # Main application (START HERE)
├── MYQuotes.py # Database initialization script
├── StartWindows.bat # Windows launcher
├── StartLinux.sh # Linux/macOS launcher
├── quotes.db # SQLite database (created on first run)
└── README.md # This file
QuotesManager.py- The main application interface with full quote management functionalityMYQuotes.py- Database setup script containing pre-defined quotes and initialization optionsStartWindows.bat- Windows batch file for easy launchingStartLinux.sh- Shell script for Linux/macOS systemsquotes.db- SQLite database file (auto-created)
- Add single quote - Enter one quote with author, category, and tags
- Add multiple quotes - Batch entry mode for multiple quotes
- Show all quotes - Display your entire collection with optional statistics
- Random quote - Get a random quote, optionally filtered by category
- Delete quote by ID - Remove quotes from your collection
- Search quotes - Find quotes by text, author, category, or tags
- Add to favorites - Mark quotes as favorites
- Remove from favorites - Unmark favorite quotes
- Show favorites - Display only your favorite quotes
- Statistics - View detailed analytics about your collection
- Export quotes - Save quotes to JSON or CSV files
- Import quotes - Load quotes from JSON or CSV files
- Backup database - Create database backups
- Exit - Close the application
When running MYQuotes.py, you can choose:
- Create EMPTY database - Just the structure, no quotes
- Create database with pre-loaded quotes - Includes the author's curated collection
- Delete and create EMPTY database - Reset to empty structure
- Replace with pre-loaded quotes - Clear existing and use author's collection
- Merge with pre-loaded quotes - Add author's quotes to your existing collection
The included quote database contains:
- Philosophy: Classic philosophical quotes from Socrates, Nietzsche, Camus, and more
- Stoicism: Wisdom from Marcus Aurelius, Epictetus, and Seneca
- Eastern Philosophy: Insights from Buddhism, Taoism, and spiritual traditions
- Psychology: Carl Jung's profound observations on the human psyche
- Personal Reflections: Contemporary quotes on life, love, loss, and growth
Categories include: Motivation, Resilience, Philosophy, Love, Death, Transformation, Purpose, and many more.
[
{
"id": 1,
"quote_text": "The unexamined life is not worth living.",
"author": "Socrates",
"category": "Philosophy",
"tags": "self-awareness,meaning",
"source": "",
"year": null,
"favorite": 0,
"times_viewed": 5,
"date_added": "2024-01-01 12:00:00",
"last_viewed": "2024-01-15 14:30:00"
}
]Supports all database fields in standard CSV format with headers.
CREATE TABLE quotes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
quote_text TEXT NOT NULL UNIQUE,
author TEXT DEFAULT 'Unknown',
category TEXT DEFAULT 'General',
tags TEXT DEFAULT '',
source TEXT DEFAULT '',
year INTEGER DEFAULT NULL,
favorite BOOLEAN DEFAULT 0,
times_viewed INTEGER DEFAULT 0,
date_added DATETIME DEFAULT CURRENT_TIMESTAMP,
last_viewed DATETIME DEFAULT NULL
);- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Database not found: Run python MYQuotes.py to initialize the database.
Permission errors on Linux/macOS: Make the shell script executable:
chmod +x StartLinux.shImport errors: Ensure your JSON/CSV files are properly formatted and encoded in UTF-8.
Python version issues: This project requires Python 3.6+. Check your version:
python --versionFor issues, questions, or contributions, please visit the GitHub repository.
"The privilege of a lifetime is to become who you truly are." - Carl Jung