Architecture — DAM Pro Components
This document outlines the main components of Digital Asset Manager Pro and how they connect.
Core components:
- Frontend (UI): Static HTML/CSS/JS (the
welcome_screen_*,asset_library_dashboard, etc. pages). Served by the web server and consumes backend APIs. - 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. - Database: Persistent store for users, metadata, and configuration. Currently SQLite for local development (
users.db), but production should use PostgreSQL or MySQL. - Storage Layer: Local filesystem plus connectors to external sources (Google Drive, LAN shares). Handles file storage, retrieval, and sync.
- Search/Indexing: Optional service (e.g., Elasticsearch) to index assets and provide fast search and filters.
- Workers & Sync Services: Background jobs for scanning folders, pulling from remote sources, generating thumbnails, and transcoding.
- Authentication & Sessions: User management, password hashing, session or token issuance (current simple session-based flow in
server.py). - 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.