Skip to content

joelwongjy/OpenJio

Repository files navigation

OpenJio

CI Badge Netlify Status

Site is deployed here!

NUS Orbital (CP2106 Independent Software Development Project)

Orbital Targeted Level of Achievement: Apollo 11

Team JoJo's Circus #2582
Joel Wong & Joseph Marcus

Table of contents

Features

List of core features

  • Create an OpenJio invite ✅
  • Generate 6-digit shareable code ✅
  • Share a link to join the food order to various Telegram groups
  • View joined, created and closed (but pending payment) OpenJios 🚧
  • Add order and items to an OpenJio ✅
  • View current orders in OpenJio ✅
  • Add cost of items after OpenJio is closed
  • Split delivery cost and discounts among each order
  • Mark order as paid
  • Access to PayLah! link for payment
  • View past orders and outstanding fees owed
  • View monthly statistics of orders and spendings 🚧

Motivations and Aims

Problem Identification & Motivation: You’re staying in Hall and craving some supper. You text the Level Telegram group to ask if anyone wants to combine orders. People start asking for the menu so you direct them to an external site. A whole bunch of orders comes in that flood the chat. After the food arrives, you hunt down each person for their payment and the chat is flooded with payment messages. Some people take ages to reply and the message gets drowned. Others do not know what number to pay to and delay payment until someone.

Sounds familiar? Why isn’t there a platform where everyone can consolidate their orders, payments are easy to track, and you can track your expenditure?

Aim: We hope to streamline the food ordering experience by consolidating orders and payments through a Progressive Web App (PWA).

Tech Stack

  • PostgreSQL
  • Express
  • React
  • NodeJS

Setup

Ensure that you have Node.js, npm and PostgreSQL installed.

If you do not have Node.js installed, it is recommended to install from their site here. This will install the latest version of Node.js along with npm.

If you do not have PostgreSQL installed, download it here.

Clone the repository

git clone git@github.com:joelwongjy/OpenJio.git

Install dependencies

  1. To install frontend dependencies, cd to the frontend directory and run

    npm install
  2. To run the Ionic app, install the Ionic CLI by running

    npm install -g @ionic/cli
  3. To install backend dependencies, cd to the backend directory and run

    npm install
  4. To create the PostgreSQL databases, in the backend directory, run

    ./setup_db.sh

    If your default Postgres account is not superuser postgres, switch to superuser by running

    sudo -u postgres psql

    Alternatively, rename the script to setup_db_local.sh and change postgres to the default account name. Then run

    ./setup_db_local.sh

Development

Start server in development

  1. Run Postgres app and start the server on Port 5432.

  2. Start the local backend server by running

    npm start

The server should now be running locally on localhost:3001, and the API can be reached via localhost:3001/v1.

The backend server must be running before starting the app.

Start app in development

  1. Start the app by running
ionic serve

The app should now be running locally on localhost:3000.

The website should be now be live and connected with the backend server and database.

About

A web application to OpenJio meals with your friends!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors