Mythical coders project

Jabrane amami

Med amine ben afia

Akrem zrelli

Mariam zaouali

Inspiration

Illegal parking is an issue that we face everyday, plus the way that municipal authorities handles the problem is very unsettling for the citizen. First, he founds out that his car is missing , then he goes around trying to find where his car has been moved or even stolen !...

Our goal is too make this process easier for citizen and also for the city councils with modern apps using machine learning algorithms and other intelligent tools.

What it does

We have developed 3 main applications for this project :

  • A mobile app for citizens to report illegal Parking and other problems. Demo
  • A mobile app for the municipal agents responsible for impounding cars. Demo
  • A Website for the municipal agents to see the dashboard of reports and impounded cars. Demo

Presentation

Our proposed solution is the the next :

1-) Locate the illegal parked vehicle either by authority scouting or reports form normal citizens using the mobile App designed towards them.

2-) The municipal agent open our Mobile App designed for agents, Take a photo of the car, then the photo will be send sent to a server and load the machine learning algorithm for detecting and recognizing the license plate.

3-) We then get the phone number of the citizen using a database that is updated when a citizen sign Up to the Mobile app.

4-) When the agent press on the notify button, a notification will be sent to the citizen telling him that he only have 5 minutes to move his car, else an other notification will be saying that the car has been impounded along with all necessary information :

  • A google map link to the garage where the vehicle is stored.

  • A google map link where the car was previously parked

  • A link to pay the fine.

5-) Once the impound message has been sent , a notification will pop up in the website for municipal agents and the dashboard will be refreshed.

The dashboard has all the information needed for the agent such as:

  • date of impound

  • payed/not payed

  • image of the car

  • the name and id of the agent who picked the car

  • the locations of both the garage and where the car has illegally parked

6-) We can also view in the dashboard all the reports made by casual citizens and quickly send agents to fix the problems like illegal parking, road blocks , etc...

How we built it

Backend

For the back-end we used SpringBoot, We also used Heroku to load the services online. SpringBoot is a very strong framework that allows for a very clear and simple use of needed services.

Services:

  • citizen-data-service : casual citizens information (username, email ,....)

  • impound-data-service : for the impound information (id agent , nameAgent, license plate number ,image of the car, locations ,..)

  • notification-data-service : for sending notification

  • place-data-service : post and get locations

  • profile-data-service : detailed citizen information (id, cin, license plate number , phone number)

  • report-data-service : for reporting illegal acts by normal citizens

  • upload-photo-service : post and get images

Front-end

For the front-end we opted to go with react because it's very efficient when it comes to front-end developing. we also used multiple libraries within react to add certain features to the app :

  • Google Cloud Platform (GCP) : inclusion of google maps
  • Redux : Link to the springBoot services
  • Material UI: Basic CssBaseline component

Database

As for the database , we chose to go with MongoDB because it synergize well with spring boot ( the back-end framework)

Mobile developing

For mobile developing we used kotlin as a programming language and android studio as an IDE. Kotlin is actually an amazing tool for android developing, it is still fairly new but the tools that it offers are very useful.

Tools :

  • Retrofit : link android to Spring boot services
  • Location Manager : get the current location of the phone
  • Coroutines : for asynchronous programming when interacting with Back-end

Machine learning

For the machine learning algorithm that detect and recognize the license plate we used a number of different libraries and tools :

  • We chose python as programming language for this algorithm because it very recommended for
    image processing and machine learning applications.

  • As for the IDE , we opted for the free cloud service Collab hosted by Google because it encourage Machine Learning and Artificial Intelligence research by offering tremendous amount of computational power that operate on the cloud.

  • For the dataset we used 900 images of cars and their corresponding coordinates of the license plate available in the zindi website.

  • We also used the famous MNIST dataset for recognizing the digits of the plate (70000 hand written numbers and their labels)

  • We implemented maskRcnn as deep neural network for detecting the position of the license plate

  • For the segmentation of the digits in a single license plate, we used OpenCv as library for image processing.

  • For predicting the numbers of the plate we used a regular CNN (convolutional neural network)

  • We also used Flask-restful to build the API that will later be used when it's called in the server

Challenges we ran into

The beginning

  • At the start of the hackaton we faced some challenges with the initialization of work environment as it is the way with any new project.

Errors !

  • We faced some issues regarding some coding errors, and sometimes we had to spend a whole day just to fix one error but hopefully we always found a solution and those errors don't really come up that often anymore.

Accomplishments that we are proud of

  • Becoming comfortable in developing back-end applications

  • Developing 2 mobile applications in a very limited time

  • Implementing heroku for the back-end

  • Using slack to mange the project and communicate with the team

  • Coordination between team members

What We learned

  • Working under stress

  • Time management

  • Linking kotlin with the back-end services and many more skills regarding programming in general

What's next for ChengApp

  • We hope the municipalities consider this project as a great tool to minimize the problems that comes with illegal parking from the citizen stand point and also the municipalities stand point.

Built With

Share this project:

Updates