Back to Projects
September 2018 - February 2020 • Full Stack

Oil Retail Analytics Platform

Full-stack engineer building a business intelligence platform for mystery shopping data collection, OCR processing, and sales analytics in the oil and gas industry.

A digital product agency specializing in mobile and web application development for startups and enterprises

Project Overview

Built a comprehensive business intelligence platform for the oil and gas retail industry, automating the collection and analysis of mystery shopping data from thousands of gas station locations. The system processes PDF reports using OCR technology, extracts performance metrics, and provides actionable analytics through web and mobile dashboards.

The Product

Carry Oil is a B2B SaaS platform serving oil and gas franchise operators and corporate management teams who need visibility into retail location performance. Mystery shopping programs send evaluators to gas stations to assess cleanliness, customer service, and compliance—generating PDF reports that historically required manual data entry.

PDF Parser Service

Automated document processing engine that:

  • Accepts PDF uploads via REST API
  • Performs OCR using Google Cloud Vision
  • Extracts structured data with brand-specific parsers
  • Queues results for async processing

Sales Dashboard

React-based analytics platform featuring:

  • Sales opportunity tracking and pipeline visualization
  • Performance metrics and close ratio analytics
  • Admin tools for account and team management

Multi-Platform App

Shared codebase supporting:

  • Web application for desktop users
  • Mobile application for field access
  • Real-time data synchronization

Technical Architecture

PDF Parser Service (Node.js)

The core data ingestion engine built with Express.js:

  • OCR Pipeline: Google Cloud Vision API for text extraction from uploaded PDFs
  • Cloud Storage: Google Cloud Storage for document persistence
  • Job Queue: RabbitMQ (via CloudAMQP) for async processing at scale
  • Notifications: SendGrid for email alerts and report delivery
  • Logging: Winston for structured application logging

Brand-Specific Parsers

Developed specialized parsers for 10 major oil brands, each handling unique PDF formats:

  • 76 (Phillips 66)
  • BP Amoco
  • Chevron Texaco
  • Citgo
  • Exxon Mobil
  • Marathon
  • Shell
  • Sunoco
  • Valero

Each parser extracts:

  • Facility ID (unique store identifier)
  • Mystery shop date
  • Performance score (percentage)
  • Store name and address

Sales Dashboard (React)

Modern React application with comprehensive state management:

  • State Management: Redux with Redux Form for complex data flows
  • UI Framework: Semantic UI React for consistent components
  • Styling: SASS for maintainable stylesheets
  • Analytics: Mixpanel integration for usage tracking

Key features:

  • Opportunity cards and grid views
  • Sales pipeline stage tracking
  • Sales representative filtering
  • Close ratio analytics
  • Admin account management

Multi-Platform Architecture

Shared codebase strategy for web and mobile:

  • Web: React application in /web directory
  • Mobile: React Native application in /app directory
  • Shared: Redux store and API layer in /shared directory

This architecture enabled feature parity across platforms while minimizing code duplication.

Key Contributions

OCR-Based PDF Parser

Built the automated document processing engine using Google Cloud Vision API:

  • Developed brand-specific parsers for 10 major oil brands (BP, Shell, Chevron, Exxon, Marathon, Citgo, Sunoco, Valero, 76, and more)
  • Implemented OCR text extraction pipeline with Google Cloud Vision
  • Created reliable extraction logic for varied PDF formats across brands
  • Built async job queuing with RabbitMQ for scalable document processing

Sales Analytics Dashboard

Developed the React sales dashboard with comprehensive analytics:

  • Built pipeline visualization with stage tracking and opportunity cards
  • Implemented sales representative filtering and close ratio analytics
  • Created admin tools for account and team management
  • Integrated Redux state management for complex data flows

Multi-Platform Architecture

Created shared codebase architecture for web and mobile applications:

  • Developed /shared directory with Redux store and API layer used by both platforms
  • Built React web application in /web directory
  • Set up React Native mobile application in /app directory
  • Ensured feature parity across platforms while minimizing code duplication

Cloud Infrastructure

Set up cloud services for document processing:

  • Integrated Google Cloud Storage for document persistence
  • Configured CloudAMQP managed RabbitMQ for job queuing
  • Set up SendGrid for email notifications and report delivery

Key Features

Automated Document Processing

The PDF parser transformed a manual data entry process into an automated pipeline:

  1. PDFs uploaded via API endpoint
  2. Documents stored in Google Cloud Storage
  3. Google Vision API performs OCR text extraction
  4. Brand detection identifies document type
  5. Specialized parser extracts structured data
  6. Results queued for downstream processing
  7. Email notifications sent via SendGrid

Sales Pipeline Analytics

Comprehensive visibility into sales performance:

  • Multi-stage opportunity tracking
  • Pipeline visualization with stage transitions
  • Sales rep performance metrics
  • Conversion rate and close ratio tracking
  • Historical trend analysis

Real-Time Data Access

Multi-platform support for stakeholders:

  • Desktop dashboards for corporate users
  • Mobile access for field representatives
  • Synchronized data across all platforms
  • Responsive design for various screen sizes

Infrastructure

Cloud Services

  • Google Cloud Vision: OCR and text extraction
  • Google Cloud Storage: Document persistence
  • CloudAMQP: Managed RabbitMQ for job queuing
  • SendGrid: Transactional email delivery

Deployment

  • Heroku for application hosting
  • Bitbucket Pipelines for CI/CD
  • Codeship for production builds
  • Environment-based configuration

Technologies Deep Dive

The technology choices balanced rapid development with production reliability:

  • Google Cloud Vision provided enterprise-grade OCR without building ML models from scratch
  • RabbitMQ enabled reliable async processing, preventing API timeouts on large documents
  • Redux managed complex state across analytics dashboards with predictable updates
  • Shared codebase architecture maximized code reuse between web and mobile platforms
  • Brand-specific parsers allowed targeted extraction logic while maintaining a common interface

Technologies

React React Native Node.js Express.js Redux Google Cloud Vision Google Cloud Storage RabbitMQ SendGrid Semantic UI SASS

Key Highlights

  • Built OCR-based PDF parser supporting 10 major oil brands using Google Cloud Vision API
  • Developed React sales dashboard with pipeline analytics and opportunity tracking
  • Created shared codebase architecture for web and mobile applications
  • Implemented async job processing with RabbitMQ for scalable document processing
  • Automated mystery shopping report extraction for retail performance monitoring