A Python application for managing subscriptions with both CLI and GUI interfaces. Track monthly subscriptions, monitor renewal dates, analyze costs, and generate reports with visualizations.
- Subscription Management: Add, edit, delete, and search subscriptions
- Cost Tracking: Monthly and annual cost calculation with category breakdown
- Renewal Monitoring: Track upcoming renewals and overdue subscriptions
- Reports & Charts: Generate reports and visualize subscription spending
- Dual Interfaces: CLI for power users, GUI for easy use
- Data Visualization: Pie charts, bar charts, and trend analysis
# Clone the repository
git clone https://github.com/debugfest/subscription-manager.git
cd subscription-manager
# Create virtual environment (optional)
python -m venv venv
# Windows: venv\Scripts\activate
# macOS/Linux: source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run the application
python launcher.py # Choose CLI or GUI
# Or run directly:
python main.py # CLI interface
python gui.py # GUI interfacepython demo.pyChoose Interface:
- CLI: Full-featured command-line interface
- GUI: User-friendly graphical interface with buttons and tables
Key Features:
- Add subscriptions: Name, category, cost, renewal date, payment method
- View total monthly/annual costs with category breakdown
- Monitor upcoming renewals and overdue subscriptions
- Generate reports: Summary, renewal, cost analysis charts
- Search and filter by name, category, cost, or renewal date
main.py: CLI interfacegui.py: Tkinter GUI interfacelauncher.py: Interface launcher scriptsubscription.py: Data model and database operationsreport.py: Report generation and visualizationsutils.py: Validation and utility functionsdemo.py: Demo script with sample datadata/subscriptions.db: SQLite database (auto-created)reports/: Generated reports and charts
Common Issues:
- Database errors: Ensure write permissions in project directory
- GUI not displaying: Install
python3-tkon Linux (sudo apt-get install python3-tk) - Import errors: Run
pip install -r requirements.txtand verify Python 3.8+
Input Format:
- Renewal dates must be YYYY-MM-DD format (e.g., 2024-02-15)
- Cost must be a positive number
- Subscription name: 2-100 characters
- Category: 2-50 characters
We welcome contributions! See CONTRIBUTING.md for guidelines.
Quick Start:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push and open a Pull Request
Acknowledgments: Matplotlib, SQLite, Tkinter
Made with ❤️ for subscription management 💳📊