-
-
Poster presenting the characteristic of our project
-
Log in screen of the website
-
log in page (mobile app for agents)
-
Impound dashBorad
-
Add impouded cars location
-
Impound Statistics
-
Add Impound
-
Impound interface (mobile app for agents)
-
send sms notification (mobile app for agents)
-
send Impound Report (mobile app for agents)
-
CNN configuration
-
sign in / Sign Up page (mobile app for Citizens)
-
Main interface (mobile app for Citizens)
-
Send Report (mobile app for Citizens)
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
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.

Log in or sign up for Devpost to join the conversation.