GitHub Repository: https://github.com/tamuhackers/TAMUhack-2019
We wanted to develop an application which would complement the utility of the Smartcar API to assist drivers of modern, "smart"-enabled vehicles with conveniences which would make a most stressful and unpleasant situation much more manageable; complete with after-the-fact safety guidances.
What it does
Report A Crash (reportacrash.net) is the goto application for drivers, of all experiences, who have been involved in a car accident. The application is used to collect the information of involved parties, for automated insurance reporting.
How we built it
We broke the application up into a client-server architecture. The client is responsible for taking in data from drivers and the server is responsible for reporting data to insurance companies, retrieving data from Smartcar's API and making requests to Twilio's API. Around this client-server architecture, we used Google Cloud Platform to host and deploy the code.
By using Source Repositories, we were able to mirror a GitHub repository so that we could easily build docker images using Cloud Build. After the images were built, they could be stored in Container Registry so that Kubernetes Engine can provision, manage, and run the containerized code in an application cluster. Using a domain.com domain that was remapped to use Cloud DNS, we are able to resolve requests to our application cluster using Cloud Load Balancer. Once requests make it to the front-end of the web application hosted in the application cluster, the backend may be triggered to read and write data to the NoSQL database Cloud Firestore. To get precise locations on where vehicles are, we also used Google's Geocoding and Maps API to retrieve accurate locations based on latitude and longitude.
Challenges we ran into
- Integrating Flask components across several development branches through git
- Application deployment
- DNS propagation
Accomplishments that we're proud of
Developed and deployed one of our first Flask web applications and got to use lots of cool APIs
What we learned
Developed on Python and full-stack development skills, learned about infrastructure and cloud integrations through GCP, have more experience using git, GitHub, and third-party APIs (Smartcar and Twilio).
What's next for Report A Crash
To truly bring this application to its full potential, it would be ideal to develop a native mobile application to complement it as well as clean out some of the issues and minimum proof-of-concept implementations.