This project is a Spring Boot-based parking management system designed to streamline vehicle entry and exit tracking, manage parking spaces, and automate fee calculations. The system includes user authentication, email notifications, and an intuitive admin dashboard for real-time monitoring.
- Secure authentication and role-based access control for admins and operators.
- Vehicle entry and exit management with timestamp tracking.
- Real-time availability monitoring for parking spaces.
- Automated fee calculation based on parking duration.
- Email notifications for vehicle arrivals and departures.
- Admin dashboard for managing users, spaces, entries and exits.
- Java
- Spring Boot (JPA, Web, Security)
- Thymeleaf
- HTML
- CSS
- JavaScript
- Bootstrap
- MySQL
Before installing, ensure you have:
- Java 17+
- Maven 3+
- MySQL 8+
- Gmail SMTP credentials for email notifications
Follow these steps to set up the project in your environment:
-
Clone the repository:
git clone https://github.com/cawtoz/parking-management.git cd parking-management
-
Configure environment variables:
cp .env.example .env
-
Set up the database and email notifications in the .env file:
# Database Config DB_HOST=localhost DB_PORT=3306 DB_NAME=autopark DB_USERNAME=root DB_PASSWORD=yourpassword # Email Notifications (Gmail SMTP) MAIL_USERNAME=your-email@gmail.com MAIL_PASSWORD=your-app-password
-
Build and run the application:
mvn clean install mvn spring-boot:run
The application will be available at http://localhost:8080
src/
├── main/
│ ├── java/com/github/cawtoz/parking/
│ │ ├── controllers/ # Handles HTTP requests
│ │ ├── models/ # Database entities
│ │ ├── repositories/ # JPA Repositories for data access
│ │ ├── security/ # Spring Security configuration
│ │ ├── services/ # Business logic and notifications
│ ├── resources/
│ │ ├── templates/ # Thymeleaf HTML templates
│ │ ├── static/css/ # CSS files for UI
│ │ ├── static/js/ # JavaScript files for frontend logic
│ │ ├── application.properties # Configuration settings