GoSmoove

Car Rental Platform

Java 11VertxSpringDockerPostgreSQLMavenJUnitMockitoRestAssuredAngularKarmaProtractorJenkinsNginxLiquibase
GoSmoove main

Description

GoSmoove is a car rental web application that connects customers to the car owners that want to rent them out. We carefully built this platform to make it easy for the end-users to browse through it and easily find the rental cars and make a choice based on their budget and car features. While building GoSmoove, one of the things that we gave our full attention to was the user experience and how to let users find cars to rent without so much hustle.

Client Goals

With this project, the client tasked us to build both the backend and the frontend of this car rental platform from scratch. This meant we had to develop and design the user interface (UI), code the backend, and also provide tests to ensure that all systems of the platform worked seamlessly without any bugs. It was also our responsibility to ensure the platform is user-friendly for all kinds of users.

Main roles

Guest

If one chooses to browse as a guest, they can search for a car they need and even create an account if they want their inputs to be saved. It is also possible to book a car for future dates.

Registered user

Has access to all the features that guests have, plus additional features that include access to their search history. Registered users also have a dashboard that allows the reviewing of reservations.

User with a business account

Has all the features of the registered users plus the option to include additional conditions of how they want their rental services. Users with a business account can filter searches using certain conditions to make it easy for them to get the exact kind of car they need.

GoSmoove Illustration 1

Implemented features

Importing data about the cities and car stations for the different cars that were to be available for rent on GoSmoove.

Using the city locations and car station data, the users of GoSmoove are now able to filter the rental cars they are searching by location and station, which makes the rental process much more seamless. This data is what the platform uses to connect the various users to cars that are closest to them in terms of the location and the car station.

The next thing we did was adding the first service provider on the platform, who, in this case, was Hertz. All the required data that included the location and details of the Hertz machines were integrated into the platform. At this point, the users could easily see the details of the machines they needed and their respective locations.

We then added a feature for booking the car of their choice. With this feature, we made it easy for the users to browse through different car options and then book one that meets their needs. The system would then automatically send a notification to the car provider informing them of the time and location of the user who has booked their car.

The next thing was adding the capability to automatically generate an invoice and booking information. The system would also send a pdf having all the information about your bookings like time and location. The invoice sent within this pdf also contained the payable taxes.

We added an option for the users to choose cars to rent based on some other extra features like; whether the car has an air conditioner, whether it has comfortable seats for the young children and many more. This feature boosts the user experience by making it possible for those in need of a car to rent one that has all the major features they need for that moment

The next step was adding two more enterprise providers to the platform.

The next thing was integrating maps into the platform so that users can get the detailed location information of all the cars on the platform.

When the system first launched, we only had the option of users browsing as guests, but we later had to add the creation of accounts to improve user experience. At this point, we added the option of creating an account using an email and a password. For those who didn't want the hustle of having to think of new login details, we gave the option of logging in using Facebook and Google Plus.

The next thing was adding the ability to create presets that were meant to make searching much more accurate and more personalized. This feature was only available for registered users.

We then added more setting options like users being able to change and also recover their login details in case they had forgotten them. We also added a page where users could see their booking status.

Details

Timeline

August 2017 - February 2019

Team

1 Front-end, 1 Back-end developers

Used Technologies

GoSmoove Java 11

Java 11

GoSmoove Vertx

Vertx

GoSmoove Spring

Spring

GoSmoove Docker

Docker

GoSmoove PostgreSQL

PostgreSQL

GoSmoove Maven

Maven

GoSmoove JUnit

JUnit

GoSmoove Mockito

Mockito

GoSmoove RestAssured

RestAssured

GoSmoove Angular

Angular

GoSmoove Karma

Karma

GoSmoove Protractor

Protractor

GoSmoove Jenkins

Jenkins

GoSmoove Nginx

Nginx

GoSmoove Liquibase

Liquibase