Skip to content

The Finance Tracker is a Python CLI app for efficient expense management. With SQLAlchemy ORM and Click CLI interface, users can easily create, track, and analyze expenses. It offers user-friendly features and supports multiple accounts for better financial control.

License

Notifications You must be signed in to change notification settings

baruh-d/Finance-Tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Finance Tracker Application

The Finance Tracker Application is a comprehensive tool designed to assist users in managing their financial transactions efficiently. Whether you're tracking expenses, monitoring income, or analyzing spending patterns, this application provides a user-friendly interface and robust features to meet your financial management needs.

Features

Transaction Management

The core feature of the Finance Tracker Application is its ability to manage transactions effectively. Users can add, view, and organize transactions effortlessly.

  • Add Transactions: Easily add new transactions with details such as amount, category, description, and type (debit/credit).
  • View Transactions: View a detailed history of all transactions, including transaction ID, user ID, category, amount, and type.
  • Organize Transactions: Organize transactions by month and year to gain insights into spending patterns over time.

User Authentication and Security

The application ensures user security and privacy through robust authentication mechanisms and password encryption.

  • User Authentication: Users can securely log in to their accounts using their email address and password.
  • Password Encryption: User passwords are encrypted using the Bcrypt library, ensuring that sensitive information remains secure in the database.

Category Management

Users can categorize transactions into predefined categories for better organization and analysis.

  • Add Categories: Create custom categories to classify transactions based on their nature (e.g., groceries, utilities, entertainment).
  • Group Categories: Group transactions by category to gain insights into spending habits across different expense categories.

Current Balance Calculation

Users can easily calculate their current account balance to track their financial standing in real-time.

  • Get Current Balance: Retrieve the current account balance for a specific user, taking into account all recorded transactions.

Technologies Used

The Finance Tracker Application is built using a variety of technologies to ensure reliability, security, and performance:

  • Python: The primary programming language used for application logic and scripting.
  • SQLAlchemy: A powerful SQL toolkit and Object-Relational Mapping (ORM) library for database interaction.
  • SQLite: A lightweight and efficient relational database management system used as the backend database.
  • Bcrypt: A cryptographic library used for password hashing and verification to enhance user security.
  • Faker: A Python library used for generating fake data during development and testing.
  • Alembic: A database migration tool utilized for managing database schema changes seamlessly.

Project Structure

The project directory structure is organized as follows:

Project Structure

The project directory structure is organized as follows:

  • lib/: Contains the main application files, including the command-line interface (cli.py), database models (models.py), and helper functions (helpers.py).
  • Pipfile and Pipfile.lock: Specify the project dependencies and their versions using Pipenv for streamlined dependency management.
  • LICENSE: The license file for the project, ensuring compliance with open-source licensing standards.
  • README.md: This file, providing an overview of the project, its features, technologies used, and usage instructions.

lib/ │ ├── cli.py ├── db/ │ ├── alembic.ini │ ├── finance_tracker.db │ └── migrations/ │ ├── env.py │ ├── README │ ├── script.py.mako │ └── versions/ ├── models.py ├── seed.py ├── helpers.py │ ├── finance_tracker.db │ └── README.md

Challenges Faced

During the development of the Finance Tracker Application, several challenges were encountered, each requiring innovative solutions and careful consideration. Some of the key challenges faced include:

  • Database Schema Design: Designing an efficient and scalable database schema to accommodate various types of financial transactions while ensuring data integrity and performance.
  • User Authentication: Implementing robust user authentication mechanisms to securely manage user accounts and protect sensitive information such as passwords.
  • Transaction Management: Developing a flexible and intuitive interface for adding, viewing, and organizing transactions, considering factors such as user experience and performance optimization.
  • Data Validation and Error Handling: Validating user input and implementing error handling mechanisms to prevent data inconsistencies and ensure smooth application operation.
  • Security: Addressing security concerns such as preventing SQL injection attacks, protecting sensitive data, and safeguarding against unauthorized access.

Future Functionalities

While the Finance Tracker Application already provides a comprehensive set of features for managing financial transactions, there are several exciting functionalities that could be added in the future to enhance the user experience and expand the application's capabilities. Some potential future functionalities include:

  • Budget Management: Introducing budget tracking and analysis features to help users set financial goals, monitor spending patterns, and stay within budget limits.
  • Data Visualization: Incorporating data visualization tools such as charts and graphs to present financial data in a more visually appealing and insightful manner.
  • Reminder and Notification System: Implementing a reminder and notification system to alert users about upcoming bill payments, budget milestones, or unusual spending activity.
  • Multi-Platform Support: Extending the application's compatibility to multiple platforms, including web browsers, mobile devices, and desktop applications, to provide users with seamless access to their financial data from anywhere.
  • Advanced Reporting: Enhancing reporting capabilities to generate detailed financial reports, summaries, and insights based on user-defined criteria and filters.
  • Integration with External Services: Integrating with external financial services, such as bank accounts, credit card providers, and investment platforms, to automate data synchronization and provide users with a holistic view of their finances.
  • Customization Options: Offering customization options to allow users to personalize their experience by configuring settings, preferences, and dashboard layouts according to their individual needs and preferences.

By continually refining and expanding the feature set of the Finance Tracker Application, we aim to provide users with a powerful and versatile tool for managing their finances effectively and achieving their financial goals.

Getting Started

To get started with the Finance Tracker Application:

  1. Clone the repository to your local machine.
  2. Install the project dependencies using Pipenv.
  3. Run the models.py to create the database schema.
  4. Run the seed.py script to populate the database with sample data.
  5. Execute the cli.py script to interact with the application via the command-line interface.

Contribution

Contributions to the Finance Tracker Application are welcome! If you'd like to contribute new features, enhancements, or bug fixes, please fork the repository, make your changes, and submit a pull request. Be sure to follow the project's coding standards and guidelines. : )

About

The Finance Tracker is a Python CLI app for efficient expense management. With SQLAlchemy ORM and Click CLI interface, users can easily create, track, and analyze expenses. It offers user-friendly features and supports multiple accounts for better financial control.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published