Life gets in the way sometimes. I wanted to create a side project that made life a little easier. The idea came from an appointment I had and I found my health card expired, annoyed that I can never keep track of it.
Life is an application where users can sign up and log in and keep track of 3 different aspects of life:
- Bills
- Subscriptions
- Renewables
Bills are one-time payments
Subscriptions are recurring payments
Renewables are things that have an expiry date associated with them. No Cost.
The backend of this application combines these different languages and libraries:
- Express.js
- Sqlite3
- JavaScript
- JWT Tokens
- Cookies
- Bcrypt.js
The backend handles authentication and authorization, as well as different REST APIs the user calls when doing stuff on the UI
The frontend of this application combines these different languages and libraries:
- Angular
- Primeng
- TypeScript
- Clone the repo
- cd into the
Life-Backend/andLife-UI/folders, these are 2 different apps for the server and the UI - Run
npm installin both folders to install dependencies - In the backend application, create a
.envfile, and copy the.env.examplefile I have provided and edit it to add theJWT_SECRETandJWT_EXPIRESvariables - Run
npm run startin both terminals in the 2 different folders. The backend app should create the database automatically for you with the tables needed, aauth.dbfile should be created. Verify under theLife-Backend/folder. - You're good to go!
Each of the different aspects of the app in the UI have tables and create pages with edit and delete functionality. They all come together in the dashboard page. This pages shows summaries for months of the year, yearly summaries.
The Dashboard features a lot of cool breakdowns in addition to the spending and bills, subcriptions, and renewables:
- Events (Stuff upcoming and a dedicated page for seeing what is upcoming for both subscriptions and renewables)
- Alerts (Used for the most upcoming renewables, high priority for the user)
- Chart (This charts shows and predicts the monthly cost of everything the user is paying towards of the current year only)
In the future, I would like to add these:
- Better price accuracy (Leap years, shorter months, etc)
- Notifications (if possible add the function for email/text notifications for events upcoming)
- Events page supported recurring payments (right now only shows the upcoming but not ones in the future) (i.e. If users selects 90 day interval, should show 3 payments for a monthly subscription, etc).