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 👇👀
🌟 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 📧 gordondashso@gmail.com
These are the intended users of this app: