A full-stack, easy-to-use, web app for managing shared household tasks with a group of mates (roommates).
Matey is powered by a rich RESTful API which communicates with its Firebase Realtime Database via a service worker. Most endpoints are validated via a user bearer token and cannot be accessed externally unless said token is provided.
Some example endpoints include:
- /users/:id
- /houses/:id
- /fish
- /tasks
Most endpoints also offer optional, query parameters to streamline the data extraction process.
- Front-end: - React
- Routing: - NextJS for better page routing
- Back-end: - NodeJS Server with ExpressJS Framework was used for server and middleware
- Server Hosting: Render to host our server, which connects to the database
- Front-end Hosting: Vercel to host the front-end pages of our site
- Database: - We used Firebase to store things like user accounts, different houses that can hold any amount of users, tasks, tons of fish from the marketplace, and an inventory for each user
- Clone the repository.
git clone <repository_url>
- CD into the project directory. If you cloned into your root directory, simply:
cd budgeteers - CD into client.
cd client - Install dependencies using npm.
npm i
- Run the client.
npm run dev
- Run the server.
- Open another terminal window and navigate back to the project, this time cd'ing into server.
- Install dependencies again, but in server.
- Obtain the ServiceAccount.json file from firebase. Ensure that it is located under server and not under its child directories.
- Run the server:
npm run serve
- Open the localhost port on your browser with both client and server running, and begin logging into the application using your google account.
The following are short descriptions of the utility of each page and their purpose in the greater context of our app.
Displays house name, housemates, and points leaderboard for your house if in you are in a house and displays a manage house button otherwise on this page.
You can create a house and set its name or join a house via house key if not in a house. This key will be emailed to you via the EmailJS API. If you are already in a house, you are able to leave your house or invite others to your house from this page.
You can create tasks, giving it a name, description, points its worth, and the day it's due. Once a task is created, it is displayed on a calendar and can be completed by clicking on the task, and clicking the complete button, giving you the points it is worth.
Shows all the fish available to buy and their associated costs. Fish you buy can only be bought once and will show up in your aquarium.
Shows all the fish you own swimming around in aquarium. You can hover over a fish to highlight its name on the left or hover over the name of a fish to highlight the fish swimming around in the aquariam.