A community-based iOS app that helps urban drivers quickly find on-street parking.
Parkaroo is a parking marketplace that connects drivers who are leaving parking spots with those who need them. The app uses GPS technology and real-time notifications to facilitate seamless parking spot transactions between users.
- Get Spot: Browse available parking spots on an interactive map and reserve them using credits
- Give Spot: Mark your current parking spot as available when you're about to leave
- Real-time GPS Tracking: Precise location services using MapKit and Core Location
- Credit System: In-app currency for reserving parking spots
- Instant Messaging: Built-in chat system for communication between buyers and sellers
- Push Notifications: Real-time alerts for new available spots and transaction updates
- Onboarding Flow: Guided first-time user experience
- User Authentication: Secure Firebase Authentication with email/password
- Profile Management: User accounts with ratings and transaction history
- Rating System: Mutual rating system for buyers and sellers
- Street Information: Detailed parking spot descriptions and instructions
- Offline Support: Graceful handling of network connectivity issues
- Location Services: Background location tracking and geofencing
- Payment Integration: Stripe payment processing for credit purchases
- Analytics: Comprehensive user behavior tracking and crash reporting
- Force Updates: Automatic app update enforcement for critical releases
- SwiftUI: Modern declarative UI framework
- MapKit: Apple's mapping and location services
- Core Location: GPS and location tracking
- UserNotifications: Push notification handling
- Firebase Firestore: NoSQL cloud database
- Firebase Authentication: User authentication and management
- Firebase Cloud Functions: Serverless backend logic
- Firebase Cloud Messaging: Push notification delivery
- Firebase Analytics: User behavior tracking
- Firebase Crashlytics: Error monitoring and crash reporting
- Stripe: Payment processing and credit system
- CocoaPods: Dependency management
The app follows the MVVM (Model-View-ViewModel) architecture pattern:
- Models: Data structures for users, parking spots, and transactions
- Views: SwiftUI views for all user interfaces
- ViewModels: Business logic and state management
- Services: Location, notification, and authentication services
Parkaroo/
├── Parkaroo/ # Main iOS app
│ ├── Auth/ # Authentication components
│ ├── GetSpot/ # Parking spot reservation features
│ ├── GiveSpot/ # Parking spot sharing features
│ ├── Messaging/ # Chat and communication
│ ├── Models/ # Data models
│ ├── Services/ # Core services
│ ├── ViewModels/ # Business logic
│ └── Utilities/ # Helper functions and constants
├── functions/ # Firebase Cloud Functions
└── Pods/ # CocoaPods dependencies
- iOS 14.0+
- Xcode 12.0+
- Swift 5.0+
- CocoaPods
- Clone the repository
git clone https://github.com/yourusername/parkaroo.git
cd parkaroo- Install dependencies
pod install- Open the workspace
open Parkaroo.xcworkspace-
Configure Firebase
- Add your
GoogleService-Info.plistto the project - Configure Firebase project settings
- Add your
-
Configure Stripe
- Update Stripe publishable key in
ParkarooApp.swift
- Update Stripe publishable key in
-
Build and run the project
- Create a Firebase project
- Enable Authentication, Firestore, Cloud Functions, and Cloud Messaging
- Download and add
GoogleService-Info.plistto the project - Deploy Cloud Functions:
cd functions
npm install
firebase deploy --only functions- Create a Stripe account
- Update the publishable key in
ParkarooApp.swift - Configure webhook endpoints for payment processing
- Open the app and navigate to "Get Spot"
- Browse available parking spots on the map
- Select a spot and review details
- Use credits to reserve the spot
- Navigate to the location and park
- Rate the seller after parking
- Navigate to "Give Spot" when ready to leave
- Set departure time and add street information
- Confirm spot availability
- Wait for a buyer to reserve your spot
- Rate the buyer after the transaction
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is proprietary software owned by Parkaroo, LLC.
For support and questions, please contact the development team or refer to the in-app FAQ section.