Skip to content

Latest commit

Β 

History

209 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Purus.Drive

A comprehensive iOS application for professional drivers, fleet operators, and vehicle owners to track vehicles, perform pre-trip inspections, and log drives with iCloud synchronization.

Platform Swift License

Features

  • πŸš— Multi-Vehicle Tracking - Manage cars, trucks, vans, trailers, boats, motorcycles, and more
  • βœ… Pre-Trip Checklists - Customizable inspection templates for vehicle safety
  • πŸ“ Drive Logging - Record trips with mileage, dates, and detailed notes
  • ☁️ iCloud Sync - Automatic synchronization across all your iOS devices
  • πŸ”„ Conflict Resolution - Smart handling of sync conflicts with user control
  • πŸ“· License Plate Scanner - Built-in OCR for quick plate recognition
  • πŸ’Ύ Import/Export - Backup and restore data in JSON format
  • πŸ”’ Privacy First - All data stored locally or in your private iCloud

Screenshots

Coming soon - Add screenshots of the app in action

Requirements

  • iOS 17.0+ / iPadOS 17.0+
  • Xcode 15.0+ (for development)
  • Swift 5.9+
  • iCloud account (optional, for sync)

Installation

From Source

  1. Clone the repository:

    git clone https://github.com/furfarch/Purus.Drive.git
    cd Purus.Drive
  2. Open the project in Xcode:

    open PurusDrive.xcodeproj
  3. Select your target device and run (⌘R)

From App Store

Coming soon

Quick Start

  1. Launch the app and choose storage mode (Local or iCloud)
  2. Add your first vehicle - Tap + and fill in details
  3. Create a checklist template - Set up pre-trip inspections
  4. Log a drive - Record your first trip with mileage

For detailed instructions, see the Getting Started Guide.

Documentation

Comprehensive documentation is available in the Wiki:

For Users

For Developers

Technology Stack

  • SwiftUI - Modern declarative UI framework
  • SwiftData - Apple's latest persistence framework
  • CloudKit - iCloud synchronization and storage
  • Vision - License plate recognition
  • Combine - Reactive state management

Architecture

Purus.Drive follows MVVM architecture with these key components:

  • Models: SwiftData entities (Vehicle, Trailer, DriveLog, Checklist)
  • Views: SwiftUI views with declarative UI
  • Services: Business logic layer (CloudKitSyncService, ExportService, etc.)
  • Sync: Manual CloudKit sync with conflict detection

For detailed architecture information, see Architecture Documentation.

Key Features Explained

Vehicle Management

Track unlimited vehicles with photos, details, and maintenance notes. Support for multiple vehicle types with custom icons.

Pre-Trip Inspections

Create reusable checklist templates for different vehicle types. Complete inspections before each drive to ensure safety and compliance.

Drive Logging

Record trips with start/end mileage, dates, and reasons. Attach pre-trip inspection checklists for complete documentation.

iCloud Sync

Automatic synchronization across all your devices. Smart conflict resolution when the same item is edited on multiple devices.

Conflict Resolution

When sync conflicts occur, users can choose which version to keep (local or remote) with clear timestamps and information.

Development

Building from Source

# Clone repository
git clone https://github.com/furfarch/Purus.Drive.git
cd Purus.Drive

# Open in Xcode
open PurusDrive.xcodeproj

# Build and run
# Press ⌘R in Xcode

Running Tests

# Run all tests
xcodebuild test \
    -project PurusDrive.xcodeproj \
    -scheme PurusDrive \
    -destination 'platform=iOS Simulator,name=iPhone 15'

Or press ⌘U in Xcode.

Using fastlane

# Install fastlane
gem install fastlane

# Run tests
fastlane test

# Build for release
fastlane build

Contributing

We welcome contributions! Please see the Developer Guide for details.

Quick Contribution Guide

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes and add tests
  4. Commit your changes (git commit -m 'feat: Add amazing feature')
  5. Push to the branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

Code Style

  • Follow Apple's Swift API Design Guidelines
  • Use SwiftUI best practices
  • Keep views small and focused
  • Add tests for new features
  • Update documentation as needed

Project Structure

Purus.Drive/
β”œβ”€β”€ PurusDrive/              # Main app target
β”‚   β”œβ”€β”€ Models.swift         # Data models
β”‚   β”œβ”€β”€ Views/               # SwiftUI views
β”‚   β”œβ”€β”€ Services/            # Business logic
β”‚   └── Assets.xcassets/     # Images and icons
β”œβ”€β”€ PurusDriveTests/         # Unit tests
β”œβ”€β”€ PurusDriveUITests/       # UI tests
β”œβ”€β”€ wiki/                    # Documentation
β”œβ”€β”€ fastlane/                # Automation
└── .github/                 # CI/CD workflows

CI/CD

The project uses GitHub Actions for continuous integration:

  • Automated testing on pull requests
  • Build verification
  • Code quality checks
  • Security scanning

Roadmap

  • Fuel tracking and economy calculations
  • Maintenance scheduling and reminders
  • Expense tracking
  • Advanced reporting and analytics
  • Export to PDF
  • Multi-language support
  • Apple Watch companion app
  • Siri shortcuts integration

Known Issues

See Issues for a list of known issues and feature requests.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Credits

Developed by Chris Furfari and contributors.

Special thanks to:

  • Apple for SwiftUI, SwiftData, and CloudKit frameworks
  • The open-source community
  • All contributors and testers

Privacy

Purus.Drive respects your privacy:

  • All data stored locally on your device
  • iCloud sync uses your private CloudKit container
  • No data shared with third parties
  • No analytics or tracking
  • You control your data completely

Acknowledgments

  • Built with SwiftUI and SwiftData
  • Uses Vision framework for license plate recognition
  • Follows Apple's Human Interface Guidelines
  • Inspired by the needs of professional drivers

Made with ❀️ for the driving community

For more information, visit the Wiki or open an Issue.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages