Skip to content

java-heroes/ParkingControlSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

🎉 Parking Control System 🚗

Ekran görüntüsü 2021-08-06 141619-04-01 ⭐ This repository includes the backend of the parking control system.

CodeFactor GitHub issues GitHub closed issues GitHub pull requests GitHub closed pull requests GitHub commit activity GitHub last commit GitHub top language GitHub code size in bytes GitHub repo size Lines of code

🎉 Getting Started

The project was developed in Java with Spring Boot in accordance with multi-layer architecture and SOLID principles. PostgreSQL was used for database in the project. The project includes CRUD operations for car park, owner, park layout, user, park rental, rental detail.

There are two types of users in the parking control system. Parking lot owners can define their businesses to the system. Users can rent parking spaces for their vehicles by registering with the system. The system, performs all operations related to the "user, the owner of the parking lot, the parking lot, the arrangement of the parking lot and the rental". Parking lot identification is done according to certain business rules. The owner of the car park must provide a valid capacity information when registering his car park in the system. According to the given capacity information, the system automatically creates the parking lot as A1, A2, ... , A10, B1, B2, ... , B10, ... and saves it to the parking layout table in the database. Parking lot rental is also carried out according to certain business rules. The system allows renting after checking whether the desired parking lot is occupied or not. When exiting the parking lot after the rental ends, the end date for the rental is updated. The system calculates the total amount according to the end date of the lease and records it in the rental detail table.

drawing

✨ Our Goals

Features such as authentication authorization, payment service, reporting of an owner's car parks, rental reporting for businesses will be included in the project.

Technologies

  • Java
  • Spring Framework
  • PostgreSql

Techniques

  • Layered Architecture Design Pattern
  • AOP
  • JWT
  • IOC

📚 Layers

Ekran görüntüsü 2021-08-06 133321

N-tier application architecture provides a flexible and reusable application model. For this reason, Layered Architecture Design Pattern was used in the parking control system.

In this layer, the main classes to be used in the project are specified, that is, it is where the real objects are specified.
📂 Concrete folder: Each of the classes in the concrete folder corresponds to a table in the database.
📂 DTOs folder: Each of the classes in the DTOs folder contains DTO (Data Transfer Object) classes into which data from different tables are combined.
Ekran görüntüsü 2021-08-06 134203

In this layer, database operations are performed. The task of this layer is to perform database CRUD operations.
📂 Abstract folder: Abstract objects are found
Ekran görüntüsü 2021-08-06 134549

It is the layer where business rules are defined and controlled, that will take the data taken into the project by Data Access and process it. When a command comes to the program, what actions it should perform and which set of rules it should pass through are defined here. The data from the user first goes to the Business layer, and then processed and transferred to the Data Access layer. Business layer also specifies who will access these data.
📂 Abstract folder: Services have abstract objects
📂 Concrete folder: There are concrete service objects
Ekran görüntüsü 2021-08-06 134901

It is a universal layer with common codes. The core layer does not reference other layers, it is independent of the project. Items to be used in the core layer are classified according to other layers and their intended use.
📂 Utilities folder:
Ekran görüntüsü 2021-08-06 135244

📖 Web API

It is the part where the services that enable the Front-End part and other platforms to communicate with the program and perform operations are written.

Ekran görüntüsü 2021-08-06 135408

💾 Database

db43ff1b-73e0-4935-91ea-974fd4be135f

💾 Entity Relationship Diagram (ERD)

git_parking_ERD

📦 Prerequisites

Java 11
Springframework 2.5.2
Spring Boot DevTools
Lombok
Spring Web 
Spring Data JPA
PostgreSQL Driver
Swagger 3.0.0

👩‍💻 Team Leader

Seda Nur Gülocak

👩‍💻 Team Members

Eda Dener
Kübra Daşkın
Merve Erkuş

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •  

Languages