You are on page 1of 4

Welcome to the future!

We are in 2030. The government of Madagascar has made great efforts


in improving the quality of life of the malagasy citizens. Amongst other
things, all the broken roads have been repaired and new ones were built,
enabling better circulation within the territory.

Their next mission is now to reduce our carbon footprint by prioritizing


public transports over personal vehicles, thus reducing the
environmental damages. There are three steps into achieving it:

● The first step is equipping all the buses, taxis, trains and any other
public transport vehicles with GPS tracking devices. This is already
complete.
● The second step is creating a GPS service provider that exposes
the real time positions of the buses/taxis/trains through an API that
any client application can consume. This is yet to be developed by
other engineers.
● The third step is creating a mobile application that uses the
aforementioned GPS service provider, in order to display the real
time vehicles positions to the users, allowing their usage of the
public transport to be as efficient as possible. This is what your
team will be developing.

The expected functionalities to be implemented in the app

The main functionalities (aka MVPs) that must be implemented on this


application are detailed below, in the form of “User stories”:

1. As a user, I want to know when my bus will arrive at the station, In


order to be able to catch it on time, not too early nor too late.
2. As a user, I want to know how long my bus ride would take, In
order to better schedule my departure times from home to work
and conversely.
a. The shorter the bus ride time, the better.
3. As a user, I want to know how many buses I should take from one
place to another, In order to better manage and prepare my bus
fees accordingly.
4. As a user, I want to see some alternatives to my suggested bus
ride, In order to have the freedom of choosing which ride is better
suited depending on my current situation.
a. I want at most 3 alternatives.

Following are some “nice to have” functionalities, ordered by the most


important to least important:

● Routes highlights (with their alternatives) on Google Map


● Bus highlights on Google Map
● Bus details (Bus ID, departure time, frequency) on the bus
highlight
● Scheduling a bus ride in advance (adding a departure time in the
future)
○ Getting notified when the departure time is soon
● Allowing detours/stops at multiple places between the start and
destination
● Travel history management
● Bus fees calculation

The above image is for reference only, and doesn’t necessarily represent what needs to be implemented
Following are some functionalities to be implemented in the future (aka
APP Scaling)

● Real time bus position on the map


● Real time traffic data representation
● Real time bus schedule updates (bus may be late or early)
● Real time travel time updates

In addition to the above, you can add any functionalities that you think
should be included, and make your app stand out against others’

The expected technical details and documentations from your team

As you should already be aware of, you project will be judged on the
following criteria:
● Algorithm performance and correctness (on Hackerrank)
● Clean Code Checklist
● Clean Architecture and S.O.L.I.D principles
● System Design and modelisation
● Test Driven Development
● UX/UI
● Innovation/Creativity

Your project must be either:


● A mobile first designed web app
● An hybrid mobile app
● A native mobile app

You can use any programming languages/frameworks as long as they


can be used with respect to the aforementioned constraints. OOP
Languages are suggested.

We expect you to reuse the Algorithm you created and tested on


hackerrank in the project for implementing the main functionalities.
We expect you to find out all the test cases that are relevant to the
project, including edge cases.

We expect you to share the documentation of your project in a google


drive directory.

We expect you to share the GitHub repository of your project with the
members of the jury assigned to scoring your project on the technical
aspects (please see the list in the previously sent PDF)

Now, get to your IDEs, let the code speak and deliver the best your team
can do!

Good luck,

Credit: Luco Ramaromanana (AlgoMada), for DevFest Antananarivo 2023

You might also like