The main goal of this application is to help users to manage finances while traveling. Once created an account, they will be able to set budgets for future trips. They can also track their expenses by submitting and categorising transactions, while they check the status of their budgets. The web has been built with MERN full stack and it has been deployed with Heroku.
https://black-codher-hawa.herokuapp.com/
see more in the user interface section
- Register and Login. The system validates the inputs. Some of the pages are only accessible for users who have registered and logged in.
- Plan ahead of a trip and create a card to set budgets for a specific trip. Cards can be edited and deleted.
- Submit transactions while traveling to track expenses specifying parameters such as category spent and date spent.
- Check the status of budgets by viewing information such as amount spent, the amount left, and the number of transactions classified on a particular budget.
- View a list of transactions. Filter and sort them too.
Technologies used: MongoDB, HTML, CSS, Reactjs, JavaScript, Nodejs, Redux
This is the structure of the repository:
-
client/src
- assets : images used in the project
- components : React components for the user interface
- pages
- Redux : related to state management
- services
- stylesheets : css files
-
server
- index.js : point of entry
- routes : includes the API end points definition
- models : Mongoose database Schemas
- auth : related to registration and login system
GET /api/expense/:ref
- Get all the transactions for a specific userGET /api/expenses/:tripName/:ref
- Get all the transactions of a trip for a specific userGET /api/balance/:trip/:ref
-DELETE /api/expenses/transactions/:id
- Delete a transactionPOST /api/expense
- Submit a transactionPUT /api/edit/transactions/:tripName/:user
- Edit the name of the trip corresponding to a specific transaction for a specific user
GET /api/budget/:ref
- Get all the infoCards of a userGET /api/budget/category/:tripName/:ref
- Get all the information of a trip for a specific userPOST /api/budget
- Create a infoCard with budgets for a tripPUT /api/edit/card/:id
- Edit budgets of a tripDELETE /api/delete/Info/card/:id
- Delete infoCard storing budgets for a trip
POST /api/register
- Register a user. Check that email has not been registrated yet, and both passwords coincide.POST /api/login
- Login a user. Check that the user has registrated and inputs are correct.
As the application stores all the data in a mongoDB database, it will be important that you have created a mongo clustard to run the project locally. You can choose to create an account here. Get more information reading the docs.
Once cloned you can start the application and run it locally, both (front-end) and (back-end) with the following commands:
-
Go to the root folder
cd black-codher-my-personal-project
-
Create your environment variables. You will need to run the following commands:
export SECRET_KEY=<YOUR_SECRET_KEY>
export MONGO_URI=<YOUR_MONGODB_URI_TO_CONNECT_YOUR_APPLICATION>
- Run the application.
Your application will be running in
npm run start
localhost:3000