SOTA
Repository of the Final Degree Project of Mathias Brunkow Moser, this repo has the main code for the Parking Time Optimization System. This project has received the best note and Honors for the 2022 UFV Promotion.
Install / Use
/learn @matbmoser/SOTAREADME
[![Contributors][contributors-shield]][contributors-url] [![Forks][forks-shield]][forks-url] [![Tags][tags-shield]][tags-url] [![Issues][issues-shield]][issues-url] [![MIT License][license-shield]][license-url] [![LinkedIn][linkedin-shield]][linkedin-url]
<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/matbmoser/SOTA"> <img src="media/img/logo.jpg" alt="Logo" width="300" height="300"> </a> <h1 align="center">Sistema de Optimización de Tiempo de Aparcamiento (SOTA)</h1> <a href="https://github.com/matbmoser/SOTA"><strong>Explore the docs »</strong></a> <br > <br > <a href="https://github.com/matbmoser/SOTA">View Demo</a> · <a href="https://github.com/matbmoser/SOTA/issues">Report Bug</a> · <a href="https://github.com/matbmoser/SOTA/issues">Request Feature</a> </div> <br> <div align="justify">Description
<h2 align="Left">Parking Time Optimization System (PTOS)</h2> <p> PTOS or SOTA (in Spanish) is a Smart Parking integrated system that offers a safe live view to managers and users of a Smart Campus Parking Lot. The system is capable of handling the detection of a licence plate by a IP Camera at the entrance of a parking lot and asign to registered users a parking place with a unique ticket. <br><br> Users are able to interact with the system in a Web Aplication called UFV MyParking. There can to add vehicles that will be detected by the cameras in the parking lot entrance and exits. They are also able to visualize the parking lot capacity and status <br><br> Once a user enterers a ticket will be generated indicating the asigned parking place. This asigned place is the one that best suits the type of vehicle configured in the WebApp. <br > </p> </div> <!-- TABLE OF CONTENTS --> <summary>Table of Contents</summary>NOTE: The system default lenguage is Spanish, because the project is for a University in Spain (Interfaces are in
Spanish, system intern communication messages are inEnglish. The docs are inEnglishfor easing the universal undertanding of the PTOS System, all over the world)
- Description
- Important
- Getting Started
- Deploying the App
- User Manual
- Access To Digital Twin
- Digital Twin Interface
- Header
- Map
- Action Buttons
- Device Manager Server Admin
- Connect Camera
- Add Vehicle Button
- Delete Vehicle Button
- See Places Button
- Barrers Button
- Refresh and AutoRefresh Button
- Access To WebApp UFV MyParking
- Register
- Dashboard
- Profile
- Vehicles
- Tickets
- Responsive Views
- Open TCP/IP Camera Simulator
- License
- Contact
Integrated Systems:
<br> <div style="font-size:1.5em">-
<strong>Digital Twin</strong> (Parking Administration Platform and Simulator)
-
<strong>DeviceManager</strong> (Simulated IP Cameras Manager Server)
-
<strong>UFV MyParking WebApp</strong> (Vehicle and User Platform)
<br> <img align="center" src="media/img/screenshotDigitalTwin.jpg" alt="Logo" width="100%" height="100%"> <br> <br>Digital Twin ScreenShot
<br> <img align="center" src="media/img/parking webapp.jpg" alt="Logo" width="100%" height="100%"> <br> <br>UFV MyParking WebApp ScreenShot
<br> <img align="center" src="media/img/Tickets Virtuales.jpg" alt="Logo" width="100%" height="100%"> <br> <br> <br>Virtual Tickets
Important
If you want to deploy the system in your local machine, you must have a linux (unix) enviroment, we recommend the use of Git Bash to be able to execute the buildDocker.sh script and deploy the system into container using docker-compose
Built With
<br> <img align="center" src="media/img/tecnology arquitecture.jpg" alt="Logo" width="100%" height="100%"> <br> <p align="right">(<a href="#top">back to top</a>)</p> <!-- GETTING STARTED -->Technology arquitecture
Getting Started
You need to install Git or GitBash to be able to handle the scripts used by the system. Despite of that you will need to install Docker in your local machine. The system has the docker files configured and waiting for being mounted.
Prerequisites
For Windows
For the installation of the system you will need:
Install Git with Gitbash
https://gitforwindows.org/
NOTE: If you already have a virtualizated linux bash shell, like cygwin, please make sure you can execute .sh scripts.
Install Docker:
NOTE: Please check the system requirements to successfullu install docker
-
Link for Windows https://docs.docker.com/desktop/windows/install/
-
Link for Mac: https://docs.docker.com/desktop/mac/install/
-
Link for Linux: https://docs.docker.com/desktop/linux/install/
Use a Web Browser
Both Digital Twin and UFV MyParking systems make use of the browser to interact with the users. So make sure that you have a updated browser like Google Chrome, Firefox, Edge or Any Chromium Browser.
Deploying the App
1 - Start Docker Daemon
Here you will find more information about it:
https://docs.docker.com/desktop/windows/
NOTE:: In windows you just need to open the Docker Desktop App
2 - Clone this Repository
git clone https://github.com/matbmoser/SOTA.git
3 - Configure Credentials (Optional):
Configure the database credentials, default settings and default of the enviroment.
NOTE: The system is already configurated with default values, so is optional the configuration of credentials. If you are willing to modify parameters like the connection to the Database, here there is a description.
Digital Twin Global Configurations:
Go to:
cd digital-twin/src/assets/mod/configs
NOTE: If you are unsafe about editing the configurations you can let them in their default values.
The directory contains two configuration files.
├───configs
├───config.php ## Global configurations
└───db.config.php ## Database configurations
Device Manager Global Configurations
Go to:
cd digital-twin/deviceManager/assets/mod/configs
Device Manager Scructure:
├───camera ## Camera Connection Files
│ └───socket ## Socket Camera Client Files
├───db ## Database files
│ ├───controllers ## Data Access Controllers
│ └───dbConfig.py #<HERE you can edit the DB Connection Settings>
├───docs ## Useful docs like SJMP protocol description
├───operators ## Encription Tools and Operators
├───protocols ## Comunication Protocols Handlers
├───server ## Server Files
└───globalConfig.py ##<HERE you can edit the global configurations>
