Files
smartpark-app/README.md
T
smartpark-ci 68613f38df
smartpark-app-ci/pipeline/pr-main This commit looks good
Add simulated parking capacity and Jenkins CI (refs #9)
2026-10-08 11:24:57 -04:00

3.3 KiB

Stevens SmartPark

Stevens SmartPark is a proposed campus parking information system for Stevens Institute of Technology.

The goal of the project is to make it easier for students to view parking information for major campus parking locations before deciding where to park.

Intended Users

The initial system is intended for Stevens students who need parking information for campus parking areas.

Proposed Parking Locations

The project currently focuses on these five proposed locations:

  • Babbio Garage
  • River Lot
  • 8th Street Lot
  • Castle Point Hall Lot
  • Howe Center Lot

Planned Parking Information

For each parking location, the planned application may display information such as:

  • available parking spaces
  • total parking spaces
  • whether the location is open or closed
  • opening and closing times
  • overnight parking rules
  • handicapped parking availability
  • electric-vehicle charging availability and, when applicable, pricing

Simulated Parking Activity

Real-time Stevens parking data may not be available to the project, so the application is planned to support simulated parking activity.

For example, when a simulated vehicle enters a parking location, the available-space count can decrease by one. When a simulated vehicle leaves, the available-space count can increase by one.

Any parking capacity or availability values used during development are sample data and should not be interpreted as live Stevens parking information.

Example:

Parking Location: Babbio Garage
Total Spaces: 120        # sample data
Available Spaces: 42    # sample data
Open: Yes
Opening Time: 7:00 AM
Closing Time: 11:00 PM
Overnight Parking: No
EV Charging: Available

Current Project Status

The SmartPark application itself and live Stevens campus parking data are not currently deployed.

The team's currently deployed operational work hub is Gitea, which is being used for source control, issues, pull requests, reviews, and project history.

Simulated parking-capacity core

ParkingLot is a small, in-memory Java 21 component for the proposed SmartPark application. It records a lot name, total capacity, and available spaces. vehicleEnters() decreases availability; vehicleLeaves() increases it. The component rejects counts outside the range from zero to capacity and prevents arrivals at a full lot or departures from an empty lot. It does not fetch live campus data, save state, or expose a web interface.

The repository's Jenkinsfile compiles this component with all Java compiler warnings treated as errors, then runs automated boundary and transition tests. The only build dependency is JDK 21, already present in the selected Jenkins image. A clean local run from the repository root is:

mkdir -p build/classes
javac -Xlint:all -Werror -d build/classes \
  src/main/java/edu/stevens/smartpark/ParkingLot.java \
  src/test/java/edu/stevens/smartpark/ParkingLotTest.java
java -cp build/classes edu.stevens.smartpark.ParkingLotTest

Expected test output is ParkingLot tests passed. A nonzero exit status means the compile or test step failed. The generated build/ directory is ignored by Git. The Jenkins pipeline is intended for trusted team changes only; it runs on the Jenkins controller because this small assignment deployment has no separate build agent.