- Problem
- Proposed Solution
- Objective
- Technologies Used
- Contribution
- Functionality
- System Operation
- Key Components
- Potential Problems
- Queries and Graphs
- Development
- Conclusions
- Running the Project
Managing parking spaces in university campuses is chaotic and inefficient, leading to congestion and security issues.
An intelligent garage system utilizing ultrasonic sensors, keypad authentication, and a mobile app for real-time management and monitoring.
Optimize and automate real-time parking space management to enhance efficiency and security for users while providing statistical data for the university.
- Vehicle Detection at Entry
- Vehicle Authentication
- Space Assignment
- Garage Access
- Continuous Monitoring
- User Interface
- Complete and Automated Integration
- Use of Modern Technologies (Raspberry Pi Pico W, Flutter, Spring Boot)
- Flexible Authentication Methods (Code and License Plate Recognition)
- Intuitive Mobile Application
- Advanced Security Measures
- Spring Boot (Java Backend)
- Flutter (Frontend)
- PostgreSQL (Database)
- Python (IoT Nodes and Dashboard)
- Login
- Registration for the user and their car
- Parkings - Available Spaces: Parking Central
- Space Reservation Choose a car and the time for your reservation
- Vehicle Registration Add a vehicle
- User Activity:
- Reservations that have been made
- Entry and exit time graph for a reservation
- Reservation Details:
- User, vehicle, entry and exit programmed, exact (real) entry and exit, status of the reservation
- Vehicle Activity Graph:
- Usage tendency for a vehicle
-
Admin Dashboard on Flutter App:
- Relevant information directly on your phone
- Statistics per use by spot
- Reservations by spot
- Total hours occupied by parking and spot
- Python Dashboard for ADMIN:
- KPIs from the parking usage and the most relevant information for an ADMIN user
- Improved Efficiency
- Enhanced Security
- Automation and Convenience
- Real-Time Monitoring
- Resource Optimization
- Detection of Available Spaces
- Access Control
- Automatic Space Assignment
- Physical Access Control
- Monitoring and Notifications
- Raspberry Pi Pico W
- Presence Sensors
- Keypad
- Servo Motor
- Motion Sensors
- WiFi Modules
- Supabase Cloud Database
- Accuracy of Space Detection
- System Security
- Response Time
- Connectivity and Synchronization
- Comparison of Entry and Exit Times
- Reservation Usage
- Parking Occupancy
- Space Demand
- Flutter: 3.19.6
- Spring Boot: 3.0
- Python + MicroPython
- PostgreSQL: 15.3
- Java SDK: 20
To initialize the Docker image for the PostgreSQL database:
docker run -d --name smartpark_c -e POSTGRES_PASSWORD=12345 -e POSTGRES_USER=admin -e POSTGRES_DB=smartpark_db -p 5432:5432 postgres:15.3
- Entity:
UserEntity.java
- Repository:
UserRepository.java
- Controller:
UserController.java
- DTO:
UserDTO.java
- BL:
OrderLogic.java
- DB:
MySQLDatabase.java
- Services:
AuthService.java
- Config:
routes.dart
- Models:
user_model.dart
- Providers:
user_provider.dart
- Styles:
theme.dart
- Services:
api_service.dart
- Utils:
constants.dart
- Views:
home_screen.dart
- Widgets:
custom_button.dart
The system optimizes the parking experience in university campuses using advanced technologies and secure authentication, improving efficiency and security for users and providing useful data for decision-making.
- To run the database in a Docker container, use the following command:
docker run -d --name smartpark_c -e POSTGRES_PASSWORD=12345 -e POSTGRES_USER=admin -e POSTGRES_DB=smartpark_db -p 5433:5432 postgres:15.3
-
Navigate to "backend\bd\smartpark.sql" and execute the database along with the test data (INSERTS).
-
In the "backend" directory, run Spring Boot:
mvn clean install spring-boot:run
-
The URLs in the Python scripts for entry_node and space_nodes should point to the backend IP address and the default port 8080 currently running on the backend.
-
Ensure firewall ports have rules to allow external connections, such as IoT nodes via WiFi to port 8080 from the backend server. The network needs a router or mobile device as a router to function correctly and serve the IoT nodes.
-
Configure secrets.py with the necessary credentials to connect to the router for proper functionality.
-
Once the IoT network connection is established, proceed with the project.