Favoura is a tracking system for “IOU”s or “favours”. An “IOU” is an abbreviation of "I owe you", and it is an informal acknowledgement of a debt or favor owed. This system allows groups or teams to log in and record the favors that they owe to each other. In addition to recording favors, Favoura allows users to post public requests with an offer to provide a favor (the reward), as well as view a leaderboard to see who is fulfilling the most requests.
The following technologies were used to build this server:
- Node.JS.
- Express.
- MongoDB / Mongoose.
- AWS Cognito.
- GET-Handlers - A directory containing the GET handlers used in this server.
- POST-Handlers - A directory containing the POST handlers used in this server.
- RouteHandlers.js - Contains functions for handling each and every individual route trigger.
- DB\Connection.js - Provides a connection to our MongoDB Atlas cloud database.
- DB\Models - A directory containing the Mongoose models used by the server when interacting with the MongoDB database.
- Node-Modules - Generated when running 'npm install'. A directory containing the NPM package dependencies used by this server.
- server.js - The main server file that utilises Express to start the web server.
- package.json - Package.json file used with NPM.
- package-lock.json - Package-lock.json file used with NPM.
- Node.JS
- NPM
npm install npm@latest -g
- Clone this repository.
- In the newly cloned repository, open your command line and run the 'npm install' command to download the required packages.
- Run the 'npm run server' command to run the server.
- The server is now ready. Try out the following unauthenticated REST requests below.
- To test out the authenticated routes, run the server alongside the Favoura front-end web application and then generate an access token by logging in.
Here are the HTTP REST routes you may use to interact with this server.
POST /newRequest (Use HTTP body to send the neccessary request data)
POST /newFavour (Use HTTP body to send the neccessary favour data)
POST /userData
POST /signup (Use HTTP body to send the neccessary signup data)
GET /requests?keywords=keyword
GET /leaderboard
See the open issues for a list of proposed features (and known issues).
AIP-A2-IOU-Tracker-Server is copyright (c) 2020, Aryan Nateghnia [email protected].