Wonderville Parking Management System is a web application built using MySQL, PHP, and TailwindCSS as the final project for CSE 3241.
-
Basic User Functionality
A user can reserve a parking spot on any day there is an event in the city of Wonderville, look up their reservation, and delete their reservation within certain constraints.
-
Basic Admin Functionality
An admin user can create, edit, and remove zones within the city of Wonderville, and they can generate a revenue report or a summary of all their zones.
-
For the local installation (install PHP and MySQL directly on your computer): The Wonderville City Parking Manager can be used by following these steps:
- Make sure that mysqli is enabled by uncommenting the line
;extension=mysqli
in your php.ini file. - Download the
GroupProject.zip
and put this file underC:\
. - Unzip the
GroupProject.zip
. - Start your PHP server:
a. Open a terminal.
b. CD into theGroupProject
folder.
c. Run the following command with your port number of choice to run the PHP server:C:\PHP\php.exe -S localhost:8080
- Initialize MySQL schema and insert test data:
a. Open your browser.
b. Paste the following link in the URL bar to create and insert relevant schema and testing data.
http://localhost:8080/Install/install.php
c. Later, the page will let you know that the City Parking database was created and is ready to use. - Navigate to the following link:
http://localhost:8080/PHP/index.php
- From there the database is set up and ready to use.
- Make sure that mysqli is enabled by uncommenting the line
-
For the Docker version setting:
Please refer to the following video and documentation links
Docker documentation tutor
Docker video tutor
A user can enter their name, cellphone, and a date to reserve a parking spot. Note that reservations must be made at least one day in advance, and a lot must have spots available on the chosen date.
A user can select an available zone to reserve their spot in. Note that the zones that appear are ones with available spots and are offered by lots on the chosen date. Available zones are shown in the table consisting of:
- Zone Number
- Number of Available Spots
- Rate/hr
Once the user submits a zone, a confirmation page appears with their associated confirmation number.
A user can select an available zone that appears in the table, similar to Search Available Zones, but they can also select a venue to see the distance between the selected zone and venue.
A user can enter their phone number or confirmation number to see their past and present reservations. Reservations are shown in a table consisting of:
- Name
- Phone Number
- Confirmation Number
- User Number
- Zone Number
- Date
- Rate/hr
- Status
A user can also select a confirmation number from their reservations to cancel it. Once canceled, the status for the associated reservation will change to "Cancelled".
The admin of Wonderville Parking can log in with the username and password combination of "admin" & "admin123".
The admin dashboard consists of an input field where the admin may enter a date or range of dates (entering the same date twice results in a single date) to display a listing consisting of:
- Zone and Date
- Total number of designated spots remaining
- The rate
- Number of reservable spots taken in that zone
The admin can add a zone via the add zone page located in the header of the admin dashboard. To add a zone, the admin must enter the following:
- The date of the event
- The name of the zone (zone number will be found from name)
- The number of reservable spots for that date/event combination
- The rate for the reservable spaces
After entering this information, the zone is added and the admin is directed back to the admin dashboard.
The admin can remove a zone via the remove a zone page. To remove a zone, the admin must enter the following:
- The date
- The zone's number
After entering this information, checks are made to ensure that no reservations are made on the date entered by the admin in that zone. If the checks go through, the zone will be removed by setting the number of available reservation spaces to 0. This ensures that a user is able to check on their past reservations.
The admin can update a zone via the update zone page. To update a zone, the admin must enter the following:
- The date
- The zone number
- The new number of available spaces
- The new rate
After entering this information, checks are made to ensure that no reservations will be ruined via this update. If the checks go through, a new number of available spaces will be made available (or spaces taken away) and a new rate will be put into place.
The admin revenue report consists of an input field where the admin may enter a date to display a listing consisting of:
- Zone and Date
- Total number of designated spots remaining
- Number of reservations
- The rate
- The total revenue from that zone on the entered date
- HTML
- PHP on user pages
- Frontend user functionality
- MySQL review
- PHP review
- Backend coding
- Docker-related feature coding
- HTML
- Styling
- General PHP on admin pages
- Frontend admin functionality
- Design database schema
- Design SQL queries to retrieve data
- Initialization SQL file coding