Skip to content

This is the backend repository for the GreenVenture App, a mobile app that incentivizes users to recycle by rewarding them.

License

Notifications You must be signed in to change notification settings

xavierkoo/greenventure-main

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GreenVenture


GreenVenture is an innovative mobile application that incentivizes users to recycle non-contaminated materials by providing rewards for their efforts. Inspired by the successful Healthy 365 app from the Health Promotion Board (HPB), GreenVenture takes a similar approach, allowing users to scan a QR code to earn points for recycling. This not only motivates users to take action towards a more sustainable future but also provides instant feedback on whether their item is a valid recyclable. By making recycling a more rewarding and engaging experience, GreenVenture aims to encourage a wider community to participate in environmental efforts and make a positive impact on the planet.

GreenVenture consists of two parts:

  1. GreenVenture Backend (Microservices-Based Architecture)
  2. GreenVenture Frontend

Table of Contents

Tech Stack

  • Authentication: OAuth2 with Facebook SSO Login
  • Front-End: Vue.js & React.js
  • Back-End: Flask & Node.js + Express.js
  • Databases: MySQL & MongoDB
  • Tools: Docker, LavinMQ & nodemailer

Features

  • Participate and complete recycling themed missions and earn points
  • Redeem vouchers with points
  • Participate in the community and view the leaderboards
  • Microservices-based Architecture for scalability and flexibility.

Technical Overview Diagram

Click the image for the expanded view Technical Overview Diagram

Database Entity-Relationship Diagram

Click the image for the expanded view ESD_Project_ER_Diagram drawio

API Documentation

API Docs

Requirements

The frontend of the application can be run locally. The backend can be run in a Docker container. The setup requirements are listed below:

Frontend

Clone greenventure-frontend:

$ git clone git@github.com:xavierkoo/greenventure-frontend.git

Open your terminal in the local project root folder, and execute:

$ npm install

Run the application

$ npm run dev

Application will run by default on port 5173

Backend

Clone greenventure-main:

$ git clone git@github.com:xavierkoo/greenventure-main.git

Setup Databases

  • Run load.sql script to initialize the databases.
  • Configure MongoDB connection for Leaderboard Service. Refer to this README.

Run Docker

First build the image:

$ docker-compose build

When ready, run it:

$ docker-compose up

Secondary UIs:

  • recycling-bin-frontend - 8081
  • leaderboards - 3000

Screenshots

Screenshot Screenshot Screenshot Screenshot Screenshot

About

This is the backend repository for the GreenVenture App, a mobile app that incentivizes users to recycle by rewarding them.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published