/donatio

A gameified non-profit donation app/extension built for Amazon RaiseUp 2020.

Primary LanguageJavaScript

                                     AWS Status ISC GitHub Code Style Twitter handle

Be the change you want to see, by buying the things you need.

Donatio is a gamefied platform designed to piggyback on top of current online shopping pages. A user can choose to donate a percentage of their online purchase (e.g. Amazon) to the Nonprofit of the Day. Our solution uses Amazon Pay for the donation, and the user recieves experience and medals for their donation. They can share their donations on Twitter, and compete with their friends on the Leaderboard.

You can play with our sandbox, hosted in AWS.

Check out our mobile app here, or our Chrome extension here. Check out our live website here, or our repo for our site here.

An AWSRaiseUp project by Abdul-Muiz Yusuff & Josh Malek

Features

  • Clean, accessible backend with our API running on Graphql. Graphql provides a browser sandbox for easy query testing, as well as autogenerates documentation.
  • Scheduled jobs change the NPO of the day every day at 5pm, summing Donatio users contributions and tracking it in our database.
  • Twitter integration, tweeting daily the sum donations for the day, and what the new NPO of the day will be.
  • Full user security, with usernames and passwords properly hashed and stored safely in the backend.
  • Extensible database design, built with MongoDB Atlas.
  • Full Amazon Pay integration, allowing users to use the accounts and payment options they already have.
  • Email confirmation for new accounts, increasing user security and reducing the number of fake accounts.

Installation

  1. Install Node.js. The install will come with NPM, which is required for package management for Node.
  2. Clone the repository to your computer. This can be done with git clone https://github.com/joshmalek/donatio.git.
  3. Run npm install in the console to retrieve all necessary NPM packages.
  4. Add a .env to the root folder with MongoDB Atlas database credentials. A .env can be provided on request.
  5. Run npm run start in the console, and the server will run.