Skip to content

carsonmulligan/Quote-Fast-Automated-Rate-Requests

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Trucker Email System v1

A Ruby on Rails application that manages freight logistics and automated email communications between carriers and shippers.

🌟 Features

  • Automated email parsing and processing
  • Quote management system
  • Carrier profile management
  • Shipment tracking
  • Real-time notifications
  • User authentication and authorization
  • API integrations for logistics

πŸ“Š System Architecture

graph TD
    A[Email Receiver] -->|Parse| B[Email Parser]
    B --> C{Message Type}
    C -->|Quote Request| D[Quote Processor]
    C -->|Status Update| E[Status Handler]
    C -->|Document| F[Document Handler]
    D --> G[Carrier Matching]
    G --> H[Quote Distribution]
    H --> I[Response Collection]
    E --> J[Shipment Tracker]
    F --> K[Document Storage]
Loading

πŸ’Ύ Database Schema

erDiagram
    User ||--o{ Shipment : manages
    Carrier ||--o{ CarrierQuote : provides
    Carrier ||--|| CarrierProfile : has
    Shipment ||--o{ QuoteResponse : receives
    CarrierQuote ||--|| QuoteResponse : generates
    
    User {
        string email
        string encrypted_password
        string role
        datetime timestamps
    }
    
    Carrier {
        string name
        string email
        string status
        datetime timestamps
    }
    
    Shipment {
        string status
        string origin
        string destination
        float weight
        datetime pickup_date
        datetime delivery_date
    }
    
    CarrierQuote {
        float price
        string terms
        string status
        datetime expiry
    }
Loading

πŸ”„ Email Processing Flow

sequenceDiagram
    participant E as External Email
    participant S as System
    participant P as Parser
    participant D as Database
    participant C as Carrier
    
    E->>S: Send Email
    S->>P: Parse Content
    P->>D: Store Data
    alt is quote request
        D->>C: Send to Matched Carriers
        C->>S: Submit Quote
        S->>D: Store Quote
    else is status update
        P->>D: Update Shipment Status
    end
Loading

πŸš€ Getting Started

Prerequisites

  • Ruby 3.1.2
  • Rails 7.2.2
  • PostgreSQL
  • Node.js & Yarn
  • Redis (for background jobs)

Installation

  1. Clone the repository:
git clone [repository-url]
  1. Install dependencies:
bundle install
yarn install
  1. Setup database:
rails db:create db:migrate
  1. Set up environment variables:
cp .env.example .env
# Edit .env with your credentials
  1. Start the servers:
./bin/dev

πŸ”§ Configuration

The application requires several environment variables to be set:

  • DATABASE_URL: PostgreSQL connection string
  • REDIS_URL: Redis connection string
  • MAILGUN_API_KEY: For email processing
  • AWS_ACCESS_KEY_ID: For document storage
  • AWS_SECRET_ACCESS_KEY: For document storage
  • AWS_REGION: For AWS services

πŸ§ͺ Testing

The application uses RSpec for testing. Run the test suite with:

bundle exec rspec

πŸ“¦ Deployment

The application is configured for deployment on Heroku:

  1. Create a new Heroku application
  2. Set up required buildpacks
  3. Configure environment variables
  4. Deploy using Git
git push heroku main

πŸ” Monitoring

graph LR
    A[Application] --> B[Logging]
    A --> C[Error Tracking]
    A --> D[Performance Monitoring]
    B --> E[Log Aggregation]
    C --> F[Exception Notification]
    D --> G[APM Dashboard]
Loading

πŸ›  Tech Stack

  • Framework: Ruby on Rails 7.2.2
  • Database: PostgreSQL
  • Background Jobs: Sidekiq
  • Frontend: Hotwire (Turbo + Stimulus)
  • Styling: Tailwind CSS
  • Testing: RSpec
  • Email Processing: Mailgun
  • Storage: AWS S3
  • Caching: Redis
  • Deployment: Heroku

πŸ” Security

  • Authentication using Devise
  • Authorization using Pundit
  • CSRF protection
  • SQL injection prevention
  • XSS protection
  • Rate limiting
  • Input sanitization

πŸ“ˆ Future Improvements

  1. Enhanced carrier matching algorithm
  2. Real-time tracking integration
  3. Machine learning for price optimization
  4. Mobile application
  5. Blockchain integration for document verification

πŸ“„ License

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

πŸ‘₯ Contributing

Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

About

πŸ“ƒ Automated Rate Requests for Freight Brokers - using OpenAI structured outputs, Mailgun, and Heroku

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published