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.
๐๐ Click links to see samples in this project ๐๐
- React
- Redux
- Express
- Sequelize
- Google Dialogflow ๐
- Google Login ๐
- Nodemailer ๐
- React-Bootstrap ๐
๐ New technology learned during Hackathon
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! ๐
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).
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]
These are the intended users of this app: