Skip to content

Full-stack React-Redux app connecting protestors to lawyers using Google Dialogflow // Individual hackathon project

Notifications You must be signed in to change notification settings

sssgordon/project-outcry-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

👷 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

About

Full-stack React-Redux app connecting protestors to lawyers using Google Dialogflow // Individual hackathon project

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published