EasyFleet

A powerful, intelligent monitoring platform for electric, autonomous vehicle fleets, boasting fast real-time data and intelligent performance insights, enhanced by AI.

Inspiration

The idea hit me when I ordered lunch from DoorDash, while working from home on a not-so-eventful weekday. I had used the idea generator, and liked the ideas, but I felt they lacked the personal touch. Then it hit me. Is it so far-fetched to think these delivery vehicles might one day be fully electric and autonomous? Would there be a business need for an application that could manage such a fleet?

At first I shifted my brainstorming to long-haul freight. I had heard about the Tesla Semi and chatter about all-electric, autonomous long-haul trucks completing deliveries, but realized later on that the application could satisfy the need for managing a wide variety of vehicle fleet types.

I also considered that I would want this project to be open-source so that it could not be simply monopolized and exploited by big players. I am very grateful to DoorDash for delivering me my epiphany-inducing burrito, but I would like this platform to empower any and all businesses who might benefit from such an application.

What it does

There are two types of users: administrators and drivers. From both end user perspectives, the application offers a complete experience for monitoring and managing all-electric, autonomous vehicle fleets.

How I built it

I started with an architecture that I am very familiar with: the simple Resource Server, Authorization Server, and Client. I used technologies that I am used to: Spring Boot for the resource server, PostgreSQL for the data layer, and Angular for the client. I mocked the behavior of the authorization server for time, but I have implemented this solution many times over with Red Hat SSO in enterprise solutions, and Auth0 with my own personal finance project that I have been working on for a year.

Next, I realized that Apache Kafka was the perfect technology to implement my idea of providing real-time data from many vehicles, and this worked out spectacularly. Finally, I needed to bring Python into the picture if I wanted to incorporate my AI Insights idea. That is where Flask came in.

Technologies Used

Challenges I ran into

With the roughly 35-day roadmap ahead of me, I quickly began the planning stage, using Jira to separate work. With such a small window, I prioritized technologies I was familiar with, and automatically scrapped ideas that might take too long, as great as they would be. I decided to mock some behaviors to give the user a more holistic experience, but I happy to say that the core business solutions are functioning end-to-end.

Accomplishments that I am proud of

End to End Solutions

The main business solutions, are fully functional end-to-end. In its current state, the Resource Server is prepared to consume messages produced by a number of OBD systems, and serve up data to the client in professional manner. Though some features are mocked to create a more substantive experience for the customer, the main business solutions are what drive the core mission of EasyFleet, and it is great to see it in action.

A Pleasant UI/UX

I placed a lot of emphasis on crafting a user experience that was seamless, responsive, and enjoyable. Using good material design practices and implementing unique features, I was able create the perfect user interface for such an experience. Stakeholders will be able to see the advantages of a Vercel-powered UI over an OpenShift-powered back-end.

Ease of Deployment

The application was designed to be easily deployable, and can be ready in under ten minutes. The services were tailored to complement the ease of deployment that the OpenShift Sandbox offers. Professional-grade README files for each repository allow the DevOps Engineer or Applications Architect to easily follow along and get the application up and running.

Maintainability

The services are all thoroughly documented, complete with appealing README files and class and method-level documentation, such as JavaDocs, JSDocs, DocStrings, code line commentary, and more. These give the application a comfortable level of readability and maintainability, allowing for a more holistic understanding of the architecture and business solutions. Code is more often read than written, and I kept this in mind when designing my services.

Modern Tech Stack

Every technology used was carefully handpicked to be the best possible implementation for their respective business functions. With an emphasis on balancing Cost Efficiency and Performance, serverless, performant, and modern technologies were selected to deliver the business solutions in a stellar manner.

What I learned

I learned a lot of new technologies. Coming off of experience with traditional messaging with ActiveMQ Artemis, Camel, etc., I was excited to get my feet wet with event streaming. Kafka streams was the perfect technology for the business solutions it provides, where one resource server pod may want to collect real-time data from many nodes, in the form of vehicles in a fleet. It was a lot of fun (except for running it locally on Windows).

I also learned about Flask. My 3+ years of experience are from working on enterprise projects exactly like this one, so technologies like node.js and Spring Boot are typically what I work with. From the business solution my Flask API achieves, I was able to mix my Python hobbyist experience with my industry knowledge of REST APIs, which was really cool.

What's next for EasyFleet

The EasyFleet suite of services remains an open-source, MIT/Apache 2.0 licensed software project, and will continue to be available for contribution.

RoadMap

With the success of EasyFleet's Proof of Concept, our new Project Managers got to work straight away on continuing development and delivery of business solutions. Here is the 2024 Roadmap:

Q1

  • Data Scientists and Engineers will continue to bolster the capabilities of the AI Insights business function.
    • More performance insights for more data sets.
    • More intelligent, trained models, for running predictions using the Intel AIToolkit.
      • The accuracy of the battery depletion prediction did not need to be perfect for the Proof of Concept, but better trained models will be a must.

Q2-Q3

  • Development and Production of Enhanced OBD Systems
    • We will begin to rollout the development and production of OBD systems that will allow our application to have access to accurate real-time data. This will be crucial for training our models and delivering a stellar experience to the customer.

Q4

  • More Real-time Data and GPS Tracking
    • More types of real-time data to work with
    • Developers will begin work on a GPS tracking system
      • Users will be able to see their vehicle(s) on a map.
Share this project:

Updates