Skip to content

WalidAissa/Parking-Lot-Management-System

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

645 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PLMS

Description

This repository contains the code of a Parking Lot Management Software System which was developed by our team of 6 (see table below). This project was implemented in the context of our ECSE 321 course (Introduction to Software Engineering).

This software system aims to provide a fully functional Parking Lot Management System to a client, which would be the owner of the parking lot, so that it helps them coordinate tasks related to spot reservations, parking lot services, hiring of employees to name a few. The Parking Lot Management System allows monthly customers, employees and the owners to access their account and interact with the system in an appropriate way for their respective positions.

Most Importantly, the system was designed to be adaptable and scalable to accommodate for different types of parking lots (different numbers of spots on each floor, different fees for the spots, etc.).

The software system was designed to respond to a set of requirements specified by the client through a description which was translated into a set of 15 system requirements (10 functional and 5 functional) which can be seen through the GitHub issues.

Our software system's backend can be run by executing, inside the PLMS folder, the "./gradlew bootRun" command. The app is deployed to "http://localhost:8080".

The frontend can be run by executing, inside the PLMS-Frontend, the "npm run dev" command. The frontend is deployed to your default web browser.

To run our unit and integration tests, please cd into the PLMS folder and run ./gradlew clean test. To run our integration tests alone, please cd into the PLMS folder and run ./gradlew clean integrationTest.

If the backend is run for the first time on a new database (or if the database was reset) then the parking lot is reinitialized as follows.

  • The default email for the owner is admin@mail.com with password MyParking1ot$ .
  • The default parking lot has opening hours from 12:00a.m. to 11:59p.m. and rates of 20$ (large spot fees), 10$ (small spot fees), 100$ (large spot monthly flat fee), 50$ (small spot monthly flat fee).
  • There are 5 default floors to the parking lot: first floor contains 20 large spots and 50 small spots, the other four floors (floors 2, 3, 4 and 5) have 100 small spots. Only floors 2 and 3 are reserved to monthly customers, the other floors can be used by guest customers.
  • There are also three default services: Winter Tire Change, Car cleaning, and Oil Change.

All the mentioned default items can be updated (except for the email of the owner) and deleted (except for the parking lot and owner account).

Our Team

Team Member Programs GitHub
Evan Boyd Software Engineering evanboyd31
Samer Abdulkarim Computer Engineering samerrak
Emilien Taisne Software Engineering Emilien-T
Walid Aissa Computer Engineering WalidAissa
Karim Al Sabbagh Mechanical Engineering (minor in Software Engineering) karimosabbagh
Karl Bridi Software Engineering Kalamar136

Overview Table

Team Member Team Roles Individual efforts - Sprint 1 (in hours) Individual efforts - Sprint 2 (in hours) Individual efforts - Sprint 3 (in hours)
Evan Boyd Software Developer 20 60 20
Samer Abdulkarim Project Manager, Software Developer 16 60 30
Emilien Taisne Documentation Manager, Software Developer 16 60 17
Walid Aissa Software Developer 16 44 17
Karim Al Sabbagh Testing Lead, Software Developer 16 44 30
Karl Bridi Software Developer 16 44 17

Sprint 1 individual efforts:

Name Contributions Total Hours
Evan Boyd Domain model design & documentation, requirements specification, FRS-8 use case diagram, persistence layer 20
Samer Abdulkarim Domain model design, requirements specification, FRS-3 use case diagram, repository class creation, reviewing pull requests 16
Emilien Taisne Domain model design & documentation, requirements specification, FRS-7 use case diagram, tests for the repository classes 16
Walid Aissa Domain model design, requirements specification, FRS-10 use case diagram, repository classes creation 16
Karim Al Sabbagh Domain model design, requirements specification, FRS-6 use case diagrame, tests for the repository classes 16
Karl Bridi Domain model design & documentation, requirements specifications, FRS-1 use case diagram 16

Sprint 2 individual efforts:

Name Contributions Total Hours
Evan Boyd Floor and ServiceAppointment controller, DTO, and service classes. Unit and integration tests for Floor and ServiceAppointment classes. Domain model attribute edits and documentation. Help with unit tests for Service, GuestPass, and MonthlyPass, and integration tests for Service, GuestPass, and MonthlyPass. Documentation of unit tests and code reviews. 60
Samer Abdulkarim MonthlyCustomer, Employee, Owner and Parking Lot controller, DTO, and service classes. Unit and integration tests for the MonthlyCustomer, Employee, Owner and Parking Lot classes. 60
Emilien Taisne Floor and ServiceAppointment controller, DTO, and service classes. Unit and integration tests for Floor and ServiceAppointment classes. Restful API documentation. 60
Walid Aissa Service, Monthly Pass GuestPass controller, DTO, and service classes. Unit and integration tests for Service, Monthly Pass and GuestPass classes. 44
Karim Al Sabbagh Service, Monthly Pass GuestPass controller, DTO, and service classes. Unit and integration tests for Service, Monthly Pass and GuestPass classes. 44
Karl Bridi MonthlyCustomer, Employee, Owner and Parking Lot controller, DTO, and service classes. Unit and integration tests for the MonthlyCustomer, Employee, Owner and Parking Lot classes. 44

Sprint 3 individual efforts:

Name Contributions Total Hours
Evan Boyd Architecture Diagram. Owner pages. Backend fixes. In-class presentation 24
Samer Abdulkarim All Monthly Customer Pages. Create home page for all users. Sign up. Log in page. Backend checks for duplicate emails. Log in fuctionalities. Bug fixes 21
Emilien Taisne View monthly customers. Home page of owner. Major bug fixes with front end. Integration tests of log in controller. Documentation. In-class demo. 21
Walid Aissa Guest Pass booking page. Management of Services for owner. In-class presentation. 17
Karim Al Sabbagh Management of parking lot personnel. View passes. Internal booking of guest and monthly passes. Revamping of CSS styling. Monthly Pass/Guest Pass creation for customers. 25
Karl Bridi Architecture diagram, Key component description of the architecture diagram, parking lot frontend page, employee homepage 20

About

Software system that aims to provide a fully functional Parking Lot Management System to a client, which would be the owner of the parking lot, so that it helps them coordinate tasks.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 72.8%
  • Vue 24.6%
  • JavaScript 2.6%