Skip to content

rhit-parsonjc/money-manager

Repository files navigation

Money Manager

Description

This Money Manager app allows you to keep track of your financial transactions and match them with records for an account at a financial institution.

  • Keep track of deposits and withdrawals from an account at a financial institution (bank records).
  • Keep track of payments, donations, income, etc. (financial transactions).
  • Connect bank records with financial transactions.
  • Attach files to a bank record or financial transaction.
  • Keep track of the amount of money in an account at a particular date.

Pages (To Be Updated)

  • /: home page, can go to login or register page (visible to everyone)
  • /login: login page, can go to register, home, or accounts page (only visible to non-authenticated users)
  • /register: register page, can go to login or home page (only visible to non-authenticated users)
  • /accounts: accounts page, can go to account or profile page (only visible to authenticated users)
  • /profile: profile page, can go to home, accounts, or edit profile page (only visible to authenticated users)
  • /profile/edit: profile edit page, can go to profile page (only visible to authenticated users)
  • /profile/delete: profile delete page, can go to profile or home page (only visible to authenticated users)
  • /accounts/{account id}: account page, can go to accounts, records, or transactions page (only visible to authenticated users)
  • /accounts/{account id}/records: records page, can go to record or create record page (only visible to authenticated users)
  • /accounts/{account id}/transactions: transactions page, can go to transaction or create transaction page (only visible to authenticated users)
  • /accounts/{account id}/create-record: create record page, can go to record page (only visible to authenticated users)
  • /accounts/{account id}/create-transaction: create transaction page, can go to transaction page (only visible to authenticated users)
  • /accounts/{account id}/records/{record id}: record page, can go to attach transactions, edit record, or delete record page (only visible to authenticated users)
  • /accounts/{account id}/records/{record id}/transactions: attach transactions page, can go to record page (only visible to authenticated users)
  • /accounts/{account id}/records/{record id}/edit: edit record page, can go to record page (only visible to authenticated users)
  • /accounts/{account id}/records/{record id}/delete: delete record page, can go to record page (only visible to authenticated users)
  • /accounts/{account id}/transactions/{transaction id}: transaction page, can go to attach records, edit transaction, or delete transaction page (only visible to authenticated users)
  • /accounts/{account id}/transactions/{transaction id}/records: attach records page, can go to transaction page (only visible to authenticated users)
  • /accounts/{account id}/transactions/{transaction id}/edit: edit transaction page, can go to transaction page (only visible to authenticated users)
  • /accounts/{account id}/transactions/{transaction id}/delete: delete transaction page, can go to transaction page (only visible to authenticated users)

Resources Used

Spring Boot Basics

Images in Spring Boot

  • Thanks to Lokesh Gupta for a bit about how to upload images to a REST API.
  • Thanks to Spring for some assistance with uploading images, but not directly.
  • Thanks to bezdoker for describing how to upload images to a REST API. This is the one that is closest to my implementation, as well as Simpson Alfred's.

Lombok Annotations in IntelliJ

  • Thanks to Abhishek Sah's second workaround to fix the Lombok issue in IntelliJ. For some reason, applying it seemed to fix the Lombok compilation issue, yet undoing the fix has not caused it to come up again.

CORS

CORS (Spring Security)

Spring Data Stack Overflow

Fonts

HTTP Status Codes

File Uploading

Docker

Spring Security

IntelliJ

Spring Testing

  • Thanks to Abderrahim Azhrioun for noting that the H2 issue could be due to a reserved word. According to H2 Documentation, these keywords are YEAR, MONTH, and DAY.
  • Thanks to W3Schools for explaining how to use Java sorting
  • Thanks to Ali Bouali for explaining Spring testing

Pinia

  • Thanks to Mikalai Parakhnevich for noting that my getter and state variable having the same name would cause an issue

Downloading Images

Local Storage

JWT Parsing

  • Thanks to Peheje's answer for parsing JWT tokens.

Verifying Date Amounts

  • According to Subset sum problem, trying to figure out whether a subset of some numbers equals a number is NP-complete.

MySQL

  • Thanks to Bro Code for explaining how to install MySQL.

HTML/CSS

  • Thanks to W3Schools for explaining HTML and CSS.

Random Value

  • Random.org was used to generate the root password for the MySQL Database and the JWT secret

Images Used

The following images are used to test the file UI.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published