Overview

A Flask + MySQL web app for managing a small museum’s collection: ingest metadata and images, apply basic image pipelines (resize/thumbnail), and publish a searchable public gallery. Admins can bulk-import from CSV, edit records inline, and moderate visibility.


Architecture at a Glance

  • Frontend: Jinja templates + vanilla JS (lightweight, fast)
  • Backend: Flask REST endpoints (Flask-Login, WTForms)
  • Database: MySQL (InnoDB) with indexes on artist, period, medium, year
  • Storage: Images on disk with hashed paths; thumbnails generated on upload
  • Auth: Role-based (admin, curator, viewer)

Updated: