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
/webdirectory - Mobile: React Native application in
/appdirectory - Shared: Redux store and API layer in
/shareddirectory
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
/shareddirectory with Redux store and API layer used by both platforms - Built React web application in
/webdirectory - Set up React Native mobile application in
/appdirectory - 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:
- PDFs uploaded via API endpoint
- Documents stored in Google Cloud Storage
- Google Vision API performs OCR text extraction
- Brand detection identifies document type
- Specialized parser extracts structured data
- Results queued for downstream processing
- 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
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