HotSwapp 216adcc1f6 feat: Implement comprehensive admin panel with CSV import system
- Add ImportLog model for tracking import history and results
- Create admin.html template with file upload form and progress display
- Implement POST /admin/upload route for CSV file handling with validation
- Build CSV import engine with dispatcher routing by filename patterns:
  * ROLODEX*.csv → Client model import
  * PHONE*.csv → Phone model import with client linking
  * FILES*.csv → Case model import
  * LEDGER*.csv → Transaction model import
  * QDROS*.csv → Document model import
  * PAYMENTS*.csv → Payment model import
- Add POST /admin/import/{data_type} route for triggering imports
- Implement comprehensive validation, error handling, and progress tracking
- Support for CSV header validation, data type conversions, and duplicate handling
- Real-time progress tracking with ImportLog database model
- Responsive UI with Bootstrap components for upload and results display
- Enhanced navigation with admin panel link already in place
- Tested import functionality with validation and error handling

The admin panel enables bulk importing of legacy CSV data from the old-csv/ directory, making the system fully functional with real data.
2025-10-06 19:52:31 -05:00

Delphi Database

A legal case management database application built with FastAPI, SQLAlchemy, and modern Python practices.

Database Configuration

The application uses SQLAlchemy ORM with support for multiple database backends.

Environment Variables

Configure your database connection using environment variables:

# SQLite (default for development)
DATABASE_URL=sqlite:///./delphi.db

# PostgreSQL (production example)
DATABASE_URL=postgresql://username:password@localhost:5432/delphi_db

# MySQL (alternative)
DATABASE_URL=mysql://username:password@localhost:3306/delphi_db

Database Models

The application includes the following models:

  • User: Authentication and user management
  • Client: Client/contact information
  • Phone: Phone numbers linked to clients
  • Case: Legal cases with unique file numbers
  • Transaction: Financial transactions for cases
  • Document: Case-related documents
  • Payment: Payment records for cases

Database Connection Management

The app/database.py module provides:

  • Database engine configuration with connection pooling and error handling
  • Session management with automatic cleanup via FastAPI dependency injection
  • Table creation utilities for application startup
  • Connection health monitoring via the /health endpoint

Usage Examples

Basic Application Startup

from fastapi import FastAPI, Depends
from sqlalchemy.orm import Session
from app.database import get_db

@app.get("/clients/")
async def get_clients(db: Session = Depends(get_db)):
    # Use the database session
    return db.query(Client).all()

Health Check

The /health endpoint verifies database connectivity:

curl http://localhost:8000/health
# {"status": "healthy", "database": "connected", "users": 0}

Getting Started

  1. Install dependencies:

    pip install -r requirements.txt
    
  2. Configure your database in environment variables (see .env file)

  3. Run the application:

    uvicorn app.main:app --reload
    
  4. Access the API at http://localhost:8000

Project Structure

app/
├── main.py          # FastAPI application entry point
├── database.py      # Database configuration and session management
├── models.py        # SQLAlchemy models
└── templates/       # HTML templates

Development

  • Database tables are automatically created on application startup
  • Use the health check endpoint to verify database connectivity
  • Environment variables control database configuration (never hardcode credentials)
  • SQLAlchemy provides type-safe database operations with relationship management
Description
No description provided
Readme 26 MiB
Languages
Python 69.4%
HTML 28.4%
JavaScript 1.2%
CSS 0.6%
Dockerfile 0.2%
Other 0.2%