CarDaddy - In Development

Find out how to maintain your car throughout its life span. Get the checkup information and solution for your specific make and model.

TECH

Swift
Spring
NodeJS
Docker
MySQL
Kubernetes

Details

CarDaddy is a vehicle maintenance app for iOS that helps inform you about the current and upcoming needs for your vehicle. It's the project my team and I decided to make for our year-long 2020 graduate capstone at Sheridan College. The role I took responsibility for on the team was the backend architecture and development.

For our backend, we use microservices to process client requests. We try to aggregate the data provided in our app from a variety of third party API's and manipulate it for our use cases. The core of our backend is built in Java using the Spring framework to aid in rapid development. Other key services and our gateway is written in NodeJS, which offers non-blocking processing with a huge pool of open source code to get this up and running quickly.

Using A Microservices Architecture

There are two reasons why using this architecture made sense. First was work distribution being an issue with multiple team members. Instead of having 2 or 3 people building all in the same codebase and having to communicate, we can divide work and just give people requirements only. With everyone dealing with different work hours and time constraints it just made sense to let people work on their own to put together the whole product.

The second issue was the scalability of the whole application. The App Store takes care of frontend distribution but the backend needs to ability to potentially service thousands of active users across North America. With the volume of requests, we need to distribute the logic into services that manage certain portions of the application. Once the logic is decoupled we can load balance the requests across Kubernetes pods.