Skip to content

The back-end server for an IOU ('I-Owe-You') favor tracking web app called Favoura. Makes use of ExpressJS, AWS Cognito, and MongoDB.

Notifications You must be signed in to change notification settings

arytek/AIP-A2-IOU-Tracker-Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Favoura | IOU Favour Tracker Server

Table Of Contents

About The Project

Screen Shot

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.

Built With

The following technologies were used to build this server:

  • Node.JS.
  • Express.
  • MongoDB / Mongoose.
  • AWS Cognito.

Application Contents

HTTPReqHandlers Directory

  • GET-Handlers - A directory containing the GET handlers used in this server.
  • POST-Handlers - A directory containing the POST handlers used in this server.

Utility Directory

  • 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.

App Working Directory

  • 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.

Installation and Usage

Prerequisites

  • Node.JS
  • NPM
npm install npm@latest -g

Installation

  1. Clone this repository.
  2. In the newly cloned repository, open your command line and run the 'npm install' command to download the required packages.
  3. Run the 'npm run server' command to run the server.
  4. The server is now ready. Try out the following unauthenticated REST requests below.
  5. 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.

Usage

Here are the HTTP REST routes you may use to interact with this server.

HTTP REST Routes (authenticated)

POST  /newRequest    (Use HTTP body to send the neccessary request data)

POST  /newFavour    (Use HTTP body to send the neccessary favour data)

POST /userData

HTTP REST Routes (unauthenticated)

POST  /signup    (Use HTTP body to send the neccessary signup data)

GET  /requests?keywords=keyword

GET /leaderboard

Roadmap

See the open issues for a list of proposed features (and known issues).

License

AIP-A2-IOU-Tracker-Server is copyright (c) 2020, Aryan Nateghnia [email protected].

Acknowledgements

About

The back-end server for an IOU ('I-Owe-You') favor tracking web app called Favoura. Makes use of ExpressJS, AWS Cognito, and MongoDB.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published