- Overview
- Features
- Project Structure
- Getting Started
- Project Roadmap
- Contributing
- License
- Acknowledgments
A command-line expense tracking application that helps users manage their personal expenses. The application provides both an interactive menu-driven interface and a command-line interface for adding, updating, deleting, and analyzing expenses. Data is persistently stored in JSON format, making it easy to backup and transfer.
- Dual Interface: Choose between an interactive menu-driven interface or command-line arguments
- Expense Management:
- Add new expenses with descriptions and amounts
- Update existing expense details
- Delete unwanted expenses
- List all expenses in a tabulated format
- Financial Analysis:
- View monthly expense summaries
- Calculate total expenses
- Data Persistence: All expenses are automatically saved to a JSON file
- Error Handling: Robust error handling for file operations and user inputs
- Clean Interface: Terminal-clearing functionality for better user experience
βββ roadmap-expense-tracker/
βββ expenses.json
βββ main.py
ROADMAP-EXPENSE-TRACKER/
__root__
main.py β― Main application file containing the expense tracker implementation
expenses.json β― JSON file storing the expense data
Before getting started with roadmap-expense-tracker, ensure your runtime environment meets the following requirements:
- Python: Python 3.6 or higher
- Dependencies: tabulate package for table formatting
Install roadmap-expense-tracker using one of the following methods:
Build from source:
- Clone the roadmap-expense-tracker repository:
β― git clone https://github.com/P-Nelly/roadmap-expense-tracker
- Navigate to the project directory:
β― cd roadmap-expense-tracker
- Install the project dependencies:
β― pip install tabulate
Interactive Mode:
β― python main.py
Command Line Interface:
# Add an expense
β― python main.py add --description "Groceries" --amount 50.50
# List all expenses
β― python main.py list
# Show monthly summary
β― python main.py summary --month 12
# Delete an expense
β― python main.py delete --id 1
# Update an expense
β― python main.py update --id 1 --amount 75.00 --description "Updated description"
-
Core Features
:Basic expense tracking functionality -
UI Improvements
:Interactive menu-driven interface -
Data Management
:JSON-based data persistence -
Data Export
: Add CSV export functionality -
Categories
: Add expense categorization -
Data Visualization
: Add charts and graphs for expense analysis -
Multi-currency Support
: Add support for different currencies -
Budget Management
: Add budget setting and tracking
- π¬ Join the Discussions: Share your insights, provide feedback, or ask questions.
- π Report Issues: Submit bugs found or log feature requests for the
roadmap-expense-tracker
project. - π‘ Submit Pull Requests: Review open PRs, and submit your own PRs.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your github account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/P-Nelly/roadmap-expense-tracker
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.'
- Push to github: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
This project is protected under the MIT License. For more details, refer to the LICENSE file.
- Thanks to the Python community for the excellent libraries
- Inspired by the need for a simple, efficient expense tracking solution
- Built as part of a learning roadmap project: https://roadmap.sh/projects/expense-tracker