Skip to content

Latest commit

 

History

History
92 lines (72 loc) · 2.13 KB

ARCHITECTURE.md

File metadata and controls

92 lines (72 loc) · 2.13 KB

Vine App Architecture Analysis

Core Components

1. Web Interface

  • Main entry point: __web__.py
  • Startup configuration in web/startup.py
  • Component-based UI structure in web/components/
  • Page-based routing in web/pages/

2. Console Interface

  • Main entry point: __cli__.py
  • Commands:
    • about
    • products
    • cli (main group)

3. Fibery Integration

  • GraphQL client for Fibery API (fibery/graphql.py)
  • Rich model system for Fibery entities (fibery/models.py)
  • Features:
    • Entity management
    • Schema handling
    • Database operations

4. Dremio Integration

  • Custom Dremio dialect for database operations
  • Product repository pattern for data access
  • SQLModel-based ORM integration

Shared Infrastructure

1. Docker Environment

  • Main Dockerfile for application
  • Docker Compose for development
  • Dremio-specific Docker setup

2. Python Setup

  • Python 3.11 base
  • SQLModel for ORM
  • Pydantic for data validation
  • FastAPI/Reflex for web
  • Typer for CLI
  • pytest for testing

Component Dependencies

  1. Web Interface

    • Depends on: Dremio (for data), Fibery (for integration)
    • Optional: Can run without Fibery
  2. Console Interface

    • Depends on: Dremio (for data)
    • Optional: Can run basic commands without Dremio
  3. Fibery Integration

    • Independent module
    • Required by: Web Interface (optional)
  4. Dremio Integration

    • Independent module
    • Required by: Web Interface, Console Interface

Modularization Strategy

Base Components (Always Included)

  • Project structure
  • Python setup
  • Docker configuration
  • Testing infrastructure

Optional Components

  1. Web Interface

    • All web-related code
    • Web-specific dependencies
    • Web templates and static files
  2. Console Interface

    • CLI commands
    • Console-specific dependencies
  3. Fibery Integration

    • GraphQL client
    • Fibery models
    • Fibery-specific configuration
  4. Dremio Integration

    • Custom dialect
    • Repository implementations
    • Dremio-specific configuration

This modular structure allows the cookiecutter template to generate projects with only the required components based on user selection.