Git Product home page Git Product logo

project-outcry-client's Introduction

๐Ÿ‘ท Project Outcry ๐Ÿ‘ท

app demo

What this app is about

Project Outcry is an app made for Hong Kong protestors ๐Ÿ‘ท to inform their lawyers the moment they get arrested. They only need to sign up on the website with a unique alias and tell that to Google Assistant at the moment of arrest. Outcry will immediately send an email to the user's lawyer.

Built for a 4-day Hackathon at Codaisseur, this app won the second-most-favorited app by popular vote ๐Ÿ† The app is made with JavaScript, React, Redux, Express, Sequelize, PostgreSQL and Google Dialogflow. This is a minimum viable product and a work in progress.

If you have knowledge about Google OAuth 2.0, please let me know! My contact is in the work in progress section below.

Table of contents

Technology used

๐Ÿ‘€๐Ÿ‘‡ Click links to see samples in this project ๐Ÿ‘‡๐Ÿ‘€

๐ŸŒŸ New technology learned during Hackathon

Goals for this project

In this Hackathon, participants were asked to produce a full-stack app using a new technology not taught in the academy. I mainly worked with Google Dialogflow alongside a couple more new ones (see above). I learned by reading the documentations and watching YouTube videos. In the end, the goal of this Hackathon is to:

  • practice learning new technology independently
  • apply what we learned in the academy
  • have fun! ๐ŸŽ‰

Technical details and server repo

This is how the app is meant to be used:

  • Imagine you're a protestor engaging in civil disobedience ๐Ÿ‘ท
  • Before taking to the streets, go to the client website and sign up
  • Input your personal details, lawyer's email, and a unique alias โœ๏ธ
  • The client will send a POST request to the Express server and create a new user
  • When you create an alias, the client sends a PUT request to the Google Dialogflow API, storing a new $name entity in the API server
  • When you get arrested, shout to Google Assistant: "I am < alias >!" ๐Ÿ“ฃ
  • Google Dialogflow will immediately match the $name entity in the API with your alias in the database
  • When there is a match, the Express server will send an email to your specified lawyer email address using nodemailer, along with the filled-in personal details
  • You may even add to your Google Assistant assertion the location and/or the police station you're being escorted to, and Google Dialogflow is smart enough to include those in the email to your lawyer
  • The lawyer is notified and looks for you in the police station (sooner if this is specified)

The app consists of a React client (this repo), an Express server connected to a Sequelize database (server repo), and a Google Dialogflow interface that links the user to Google Assistant (Dialogflow code exported from the API).

Work in progress

This mvp is still a work in progress. In order to build my ideal version, there are features which require technical knowledge currently beyond my capacity:

  • Google OAuth 2.0
  • Nodemailer alternative that better handles authorization issues with major email services
  • Turning this into a mobile app (React Native?)

If you wish to contribute to this project, hit me up at ๐Ÿ“ง [email protected]

Misc

These are the intended users of this app:

Hong Kong arrest ritual

project-outcry-client's People

Contributors

sssgordon avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.