HaulPass

HaulPass - Grain Hauling Logistics Application

[![Flutter](https://img.shields.io/badge/Flutter-3.24-blue.svg)](https://flutter.dev/) [![Supabase](https://img.shields.io/badge/Supabase-2.3-green.svg)](https://supabase.com/) [![PWA](https://img.shields.io/badge/PWA-Enabled-blue.svg)](https://web.dev/progressive-web-apps/) [![GitHub Pages](https://img.shields.io/badge/GitHub%20Pages-Deploy-black.svg)](https://pages.github.com/) **Professional grain hauling logistics and tracking solution** [πŸš€ Live Demo](https://bushels.github.io/HaulPass) β€’ [πŸ“– Documentation](docs/) β€’ [πŸ”§ Setup Guide](/HaulPass/SETUP.html)

🎯 Overview

HaulPass is a farmer-first grain hauling efficiency application that reduces wait times at grain elevators through real-time queue intelligence and comprehensive haul tracking. By collecting GPS data, timing information, and farmer observations, HaulPass enables data-driven decisions about when to haul grain, ultimately saving farmers hours every week.

The Problem: Farmers waste 2-4 hours daily waiting in grain elevator lines without knowing queue lengths or wait times ahead of time.

The Solution: HaulPass collects farmer-side data (locations, routes, queue positions, timing) to provide real-time queue intelligence and predictive wait times. Unlike traditional elevator scheduling software, we start from the farmer’s perspective to build trust and demonstrate value before enabling elevator-side features.

✨ Core Features

MVP (Version 1.0):

Future Features:

πŸš€ Quick Start

Live Demo

Visit: https://bushels.github.io/HaulPass

Local Development

# Clone the repository
git clone https://github.com/Bushels/HaulPass.git
cd HaulPass

# Install dependencies
flutter pub get

# Generate required code
flutter packages pub run build_runner build

# Run on web (recommended for development)
flutter run -d chrome

# Or run on mobile
flutter run -d android  # or ios

πŸ—οΈ Architecture

Technology Stack

Project Structure

lib/
β”œβ”€β”€ core/
β”‚   β”œβ”€β”€ services/         # Core services (Supabase, Environment)
β”‚   β”œβ”€β”€ config/           # Configuration (Web, App)
β”‚   └── theme/            # App theming
β”œβ”€β”€ data/
β”‚   β”œβ”€β”€ models/           # Data models with JSON serialization
β”‚   β”œβ”€β”€ repositories/     # Repository pattern implementation
β”‚   └── providers/        # Riverpod providers
β”œβ”€β”€ domain/
β”‚   β”œβ”€β”€ entities/         # Business logic entities
β”‚   β”œβ”€β”€ repositories/     # Repository interfaces
β”‚   └── use_cases/        # Business logic use cases
└── presentation/
    β”œβ”€β”€ screens/          # UI screens
    β”œβ”€β”€ widgets/          # Reusable UI components
    └── providers/        # State management

πŸ”§ Configuration

Environment Variables

Create a .env file (see .env.example):

SUPABASE_URL=your_supabase_url_here
SUPABASE_ANON_KEY=your_anon_key_here
GOOGLE_MAPS_API_KEY=your_google_maps_key_here

Supabase Setup

  1. Create a Supabase project at https://supabase.com
  2. Get your project URL and anon key from Settings > API
  3. Configure environment variables
  4. Set up database tables using the provided migration scripts

Google Maps API

  1. Enable Google Maps SDK for Web in Google Cloud Console
  2. Generate API key with required permissions
  3. Add to environment variables

πŸš€ Deployment

Automated GitHub Pages Deployment

Every push to main branch automatically:

  1. βœ… Triggers GitHub Actions workflow
  2. πŸ”¨ Builds optimized Flutter web app
  3. πŸ“¦ Packages PWA with offline support
  4. πŸš€ Deploys to GitHub Pages
  5. 🌐 Makes available at https://bushels.github.io/HaulPass

Required GitHub Secrets

Add these secrets in repository Settings > Secrets and variables > Actions:

Manual Deployment

# Build web version
flutter build web --release

# Deploy to gh-pages branch
flutter build web
cd build/web
git init
git add -A
git commit -m 'deploy'
git push -f <repo_url> master:gh-pages

πŸ“± PWA Features

πŸ§ͺ Testing

# Run all tests
flutter test

# Run tests with coverage
flutter test --coverage

# Run integration tests
flutter drive --target=test_driver/app.dart

# Test web version
flutter test -d chrome

πŸ“ˆ Performance

πŸ”’ Security

🀝 Contributing

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

πŸ“‹ Development Roadmap

Phase 1: Foundation & Core Workflow (Weeks 1-4)

Phase 2: Queue Intelligence (Weeks 5-8)

Phase 3: Analytics & Polish (Weeks 9-12)

See GAP_ANALYSIS_AND_ROADMAP.md for detailed implementation plan

πŸ› Bug Reports

Use GitHub Issues with:

πŸ“š Documentation

πŸ“„ License

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

πŸ™ Acknowledgments


**Built with ❀️ for the grain hauling industry** [🌐 Live Demo](https://bushels.github.io/HaulPass) | [πŸ“§ Contact](mailto:support@haulpass.com)