Skip to content

netteNz/DoorDashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DoorDashboard

A full-stack web application for DoorDash drivers to track earnings, analyze performance metrics, and visualize delivery data.

Overview

Features

  • Earnings Dashboard with interactive charts and $50 challenge bonus tracking
  • Delivery Analytics by restaurant, merchant type, and location
  • Performance Metrics including hourly rates and time efficiency
  • Session Management for adding and managing delivery data

Tech Stack

  • Frontend: React, ApexCharts, TailwindCSS
  • Backend: Flask API with JWT authentication
  • Data: JSON-based storage with aggregation services

Quick Start

# Backend setup
cd server
pip install -r requirements.txt
python app.py  # Runs on http://localhost:5000

# Frontend setup
cd client
npm install
npm run dev    # Runs on http://localhost:5173

Authentication

Login

The application implements JWT (JSON Web Tokens) for secure authentication:

  • Protected routes require a valid access token
  • Automatic token refresh mechanism
  • Session persistence across page reloads

TODO

  • Database Implementation

    • Replace JSON file storage with MongoDB or PostgreSQL
    • Add data migration scripts from JSON to DB
    • Implement proper DB connection pooling and error handling
  • Deployment

    • Configure CI/CD pipeline with GitHub Actions
    • Deploy backend API to a cloud provider (Replit, Azure, AWS) replit for proof of concept; scale accordingly
    • Set up frontend hosting
    • Implement environment-specific configuration

API Endpoints

# Core data endpoints
GET /api/summary     # Earnings summary with metrics
GET /api/timeseries  # Time-series chart data
GET /api/restaurants # Restaurant statistics

# Authentication
POST /api/auth/login
POST /api/auth/register
POST /api/auth/refresh

Data Structure

Sessions are stored in doordash_sessions.json:

{
  "sessions": [
    {
      "date": "2025-05-15",
      "start_time": "18:00",
      "end_time": "20:00",
      "dash_time_minutes": 120,
      "active_time_minutes": 60,
      "deliveries": [
        {
          "restaurant": "McDonald's",
          "doordash_pay": 4.25,
          "tip": 1.75,
          "total": 6.0,
          "merchant_type": "Fast Food"
        }
      ],
      "earnings": 6.0
    },
    {
      "date": "2025-04-29",
      "challenge_bonus": 50.0,
      "note": "Weekly Challenge",
      "deliveries": []
    }
  ]
}

Note: Rename doordash_sessions.example.json to doordash_sessions.json to get started.

License

This project is licensed under the MIT License.

About

Earnings dashboard for DoorDash

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors