Skip to content

mbocelli/matey

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

232 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Matey

Desc.

A full-stack, easy-to-use, web app for managing shared household tasks with a group of mates (roommates).

API

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.

Technologies Used

  • 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

Running the project locally

  1. Clone the repository.
     git clone <repository_url>
  2. CD into the project directory. If you cloned into your root directory, simply:
    cd budgeteers
  3. CD into client.
    cd client
  4. Install dependencies using npm.
    npm i
  5. Run the client.
    npm run dev
  6. Run the server.
    1. Open another terminal window and navigate back to the project, this time cd'ing into server.
    2. Install dependencies again, but in server.
    3. Obtain the ServiceAccount.json file from firebase. Ensure that it is located under server and not under its child directories.
    4. Run the server:
       npm run serve
  7. Open the localhost port on your browser with both client and server running, and begin logging into the application using your google account.

Pages

The following are short descriptions of the utility of each page and their purpose in the greater context of our app.

Dashboard

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.

Manage House

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.

Tasks

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.

Fish Market

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.

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.

About

A full-stack, easy-to-use, web app for managing shared household tasks with a group of mates (roommates). Collaborative project with Jillian Camp, Chris Bennett, and Ethan Sipes.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors