This finance management app provides robust user authentication and allows users to track their incomes and expenses efficiently. Users can create and manage incomes and expenses, with the option to set them as recurring (weekly, monthly, or yearly). The app automatically creates these recurring entries at midnight on the specified date using cron jobs. Additionally, users can specify the currency for each income and expense, and convert amounts to any other currency. Currency exchange rates are updated daily at midnight.
- User Authentication: Secure login and registration for users.
- Income and Expense Tracking: Easily add and manage financial records.
- Recurring Entries: Set incomes and expenses to recur weekly, monthly, or yearly.
- Currency Support: Choose the currency for each entry and convert between currencies with up-to-date exchange rates.
- Categories and Subcategories: Organize expenses under main categories and custom subcategories.
- Data Export: Export data to a database, CSV file, or download as a chart.
- Attributes: Source, description, amount, date, recurrence (optional), and recurrence period (optional).
- Example: Salary from a job, rental income, money received from a family member, etc.
- Attributes: Description, amount, date, recurrence (optional), recurrence period (optional), subcategory, and main category.
- Example: A subscription to Netflix categorized under 'Subscription' with a user-created subcategory 'Netflix', set as recurring if desired.
There are seven main categories available:
- Subscription
- Food
- Utilities
- Entertainment
- Transportation
- Healthcare
- Other
Users can create custom subcategories within these main categories for better organization and tracking.
The app offers three ways to save and manage your data:
- Database Storage: All data is stored securely in a database.
- CSV Export: Generate and download CSV reports anytime.
- Charts: Visualize your data with downloadable chart files.
This application ensures that users can efficiently manage their finances, keep track of recurring payments, and have a clear overview of their financial situation through detailed categorization and data export options.
Video Presentation of the Project
- Replace the placeholder/default application/-test.properties envs with your values
- Don't forget to also replace the envs in docker-compose.yml
- For 1. and 2. maybe I will add a centralized .env or you can do it yourself
- Add more tests
- Maybe add a centralized .env ??