# 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.

« Previous Next »