baic_dashboard/README.md

2.4 KiB

Oliver Agency Reporting Module

A web-based reporting module to display usage analytics for conversations and messages with various filtering options and CSV export functionality.

Project Structure

  • /backend: Python Flask backend API
  • /frontend: React + Vite frontend application

Environment Setup

Before running the application, you need to configure environment variables:

  1. Copy the example environment file:

    cp .env.example .env
    
  2. Edit .env with your configuration:

    • DOMAIN: Your deployment domain (e.g., yourdomain.com)
    • BASE_PATH: Application base path (default: /dashboard/)
    • AZURE_TENANT_ID: Azure AD tenant identifier
    • AZURE_CLIENT_ID: Azure AD application (client) identifier
    • BACKEND_PORT: Backend server port (default: 5001)
    • MAKE_WEBHOOK_URL: Make.com webhook endpoint
    • VITE_* variables: Duplicate the above values with VITE_ prefix for frontend
  3. Azure AD Setup:

    • Create an app registration in Azure Portal
    • Add redirect URIs for your deployment domain
    • Copy the Tenant ID and Client ID to your .env file

Getting Started

Run both backend and frontend together:

./run.sh

This script automatically loads environment variables from .env and starts both servers.

Backend

  1. Navigate to the backend directory:

    cd backend
    
  2. Activate the virtual environment:

    source venv/bin/activate
    
  3. Install dependencies:

    pip install -r requirements.txt
    
  4. Load environment variables and start the development server:

    # Load environment variables
    set -a && source ../.env && set +a
    # Start server
    python app.py
    

The API will be available at http://localhost:{BACKEND_PORT} (default: 5001).

Frontend

  1. Navigate to the frontend directory:

    cd frontend
    
  2. Install dependencies:

    npm install
    
  3. Start the development server:

    npm run dev
    

The application will be available at http://localhost:5173.

Features

  • Dashboard displaying conversation and message volume over time
  • Filter data by user, assistant, brand/TOV, and date range
  • Export filtered data to CSV
  • Interactive graph with assistant-specific coloring

API Endpoints

  • GET /api/data: Returns all conversations and messages data