# DelphiCG Minimal Database App — TODO Refer to `del.plan.md` for context. Check off items as they’re completed. - [x] Create project directories and empty files per structure - [x] Create requirements.txt with minimal deps - [x] Copy delphi-logo.webp into static/logo/ - [x] Set up SQLAlchemy Base and engine/session helpers - [x] Add User model with username and password_hash - [x] Add Client model (rolodex_id and core fields) - [x] Add Phone model with FK to Client - [x] Add Case model (file_no unique, FK to Client) - [x] Add Transaction model with FK to Case - [x] Add Document model with FK to Case - [x] Add Payment model with FK to Case - [x] Create tables and seed default admin user - [x] Create FastAPI app with DB session dependency - [x] Add SessionMiddleware with SECRET_KEY from env - [x] Configure Jinja2 templates and mount static files - [x] Create base.html with Bootstrap 5 CDN and nav - [x] Implement login form, POST handler, and logout - [x] Create login.html form - [x] Implement dashboard route listing cases - [x] Add simple search by file_no/name/keyword - [x] Create dashboard.html with table and search box - [x] Implement case view and edit POST - [x] Create case.html with form and tabs - [x] Implement admin page with file upload - [x] Create admin.html with upload form and results - [x] Build CSV import core with dispatch by filename - [x] Importer for ROLODEX → Client - [x] Importer for PHONE → Phone - [x] Importer for FILES → Case - [x] Importer for LEDGER → Transaction - [x] Importer for QDROS → Document - [x] Importer for PAYMENTS → Payment - [x] Wire admin POST to run selected importers - [ ] Run app and test login/import/list/case-edit - [x] Add minimal Dockerfile and compose for local run