SlotParking
SwiftUI-based parking management app for iOS
Project Overview
SlotParking is an iOS app built with SwiftUI to help drivers and parking lot managers efficiently track and manage parking slots. Unlike my other projects, SlotParking requires direct engagement with private lot owners in Detroit. The project will begin as an MVP, and I will personally visit lots to pitch participation, gather feedback, and test the app in real-world conditions. This hands-on approach is essential for validating the product and building partnerships for future expansion.
SlotParking is designed so that drivers looking for a parking spot can use the app to see the remaining spots and cost of lots in the area—information that is currently unavailable. The app also shows how close each parking lot is to major entertainment venues in downtown Detroit, making it easier for drivers to find convenient and affordable parking.
Key Screens
Detroit Context & Brand Positioning
SlotParking is designed for Detroit: Industrial, efficient, and honest. The UI uses safety orange, concrete gray, and matte black for high visibility and a native Detroit feel. Giant buttons and workman fonts ensure speed and usability for attendants. Slogan: "Built for the Detroit grind." Target: high-traffic areas, with a focus on real-world utility and local branding.
Unique MVP Launch Approach
SlotParking will start as a pilot in Detroit, focusing on private lots managed by individuals. The app gives attendants a digital "Full" sign visible to drivers citywide. The MVP will be tested in the field, and lot owners will be invited to join the pilot program. Flyers, demo videos, and direct outreach will be used to build partnerships and validate the product.
How SlotParking works for privately owned lots:- Attendant App: The attendant uses a simple interface—one tap for every car that enters, one tap for every car that leaves.
- Live Broadcast: Parking data is instantly broadcast to Detroit drivers searching for a spot. Drivers see the lot name and available spots, and can head directly to the lot.
- Scam Prevention: Verified SlotParking lots protect their reputation against parking scams. Drivers trust lots with live, digital inventory updates.
- Zero Hardware: No expensive sensors or gates. It’s all handled on the attendant’s smartphone.
- Reduced Congestion: Stop the "is it full?" conversations that block your entrance. If the app says 0, they don't turn in.
- Data for 2027: Get a report showing your peak occupancy times and turnover rates, helping you optimize pricing for Detroit Grand Prix and Auto Show.
Key Features
- Real-time slot reservation and availability tracking
- Parking history and analytics for users
- Admin dashboard for lot managers
- SwiftUI interface with accessibility support
- Push notifications for reservation reminders
- Integration with Apple Maps for navigation
Technical Approach
- MVVM architecture for scalable codebase
- SwiftUI for UI and user interaction
- CoreData for local storage
- Firebase for real-time updates and syncing spot counts across devices
- Custom animations for slot selection and feedback
Challenges & Solutions
- Challenge: Convincing private lot owners to adopt a new digital system.
Solution: I plan to conduct in-person demos, provide easy onboarding materials, and offer direct support during pilot rollout. - Challenge: Preventing inaccurate spot counts due to manual entry errors.
Solution: I will design a simple, error-resistant UI with confirmation prompts and real-time sync to minimize mistakes. - Challenge: Handling unreliable cellular connectivity in downtown Detroit.
Solution: I intend to implement offline mode with local caching and automatic sync when connection is restored. - Challenge: Building trust with drivers and preventing parking scams.
Solution: I will add “Verified Lot” badges and live inventory updates to ensure transparency and reliability.
Outcome
SlotParking is not yet built. Soon, I will begin outreach to Detroit lot owners to gauge interest and gather feedback for the app's pilot launch.
Code Highlights
Selected snippets from SlotParking showing real-time spot tracking, Firebase sync, and attendant UI logic.
class SpotCountManager: ObservableObject {
@Published var availableSpots: Int = 0
func increment() {
availableSpots += 1
syncWithFirebase()
}
func decrement() {
if availableSpots > 0 {
availableSpots -= 1
syncWithFirebase()
}
}
private func syncWithFirebase() {
// Firebase update logic here
}
}
FIREBASE REAL-TIME SYNC
Swift function for listening to spot count changes in Firebase.
func listenForSpotUpdates() {
let ref = Database.database().reference(withPath: "lots/detroitLot1/spots")
ref.observe(.value) { snapshot in
if let count = snapshot.value as? Int {
self.availableSpots = count
}
}
}
ATTENDANT UI BUTTONS
SwiftUI view for attendant controls with large, high-contrast buttons.
struct AttendantControls: View {
@ObservedObject var manager: SpotCountManager
var body: some View {
HStack(spacing: 32) {
Button(action: { manager.increment() }) {
Text("+")
.font(.system(size: 48, weight: .bold, design: .monospaced))
.frame(width: 80, height: 80)
.background(Color.orange)
.foregroundColor(.white)
.cornerRadius(16)
}
Button(action: { manager.decrement() }) {
Text("-")
.font(.system(size: 48, weight: .bold, design: .monospaced))
.frame(width: 80, height: 80)
.background(Color.gray)
.foregroundColor(.white)
.cornerRadius(16)
}
}
.padding()
}
}