Architecture — DAM Pro Components

This document outlines the main components of Digital Asset Manager Pro and how they connect.

Core components:

  1. Frontend (UI): Static HTML/CSS/JS (the welcome_screen_*, asset_library_dashboard, etc. pages). Served by the web server and consumes backend APIs.
  2. Backend API: Flask app (server.py) providing authentication (/api/login), data endpoints, and serving the protected wiki. Recommended to run behind Gunicorn + Nginx in production.
  3. Database: Persistent store for users, metadata, and configuration. Currently SQLite for local development (users.db), but production should use PostgreSQL or MySQL.
  4. Storage Layer: Local filesystem plus connectors to external sources (Google Drive, LAN shares). Handles file storage, retrieval, and sync.
  5. Search/Indexing: Optional service (e.g., Elasticsearch) to index assets and provide fast search and filters.
  6. Workers & Sync Services: Background jobs for scanning folders, pulling from remote sources, generating thumbnails, and transcoding.
  7. Authentication & Sessions: User management, password hashing, session or token issuance (current simple session-based flow in server.py).
  8. Documentation (Wiki): MkDocs-built site stored in site/ and served behind protected /wiki/ route.

Integration points

  • Frontend calls Backend API for asset lists, searches, and actions.
  • Backend communicates with Storage Layer and Worker services to update state and metadata.
  • Authentication protects both the app and the wiki; sessions or tokens should be used consistently.