# Progress Status ## v2 — Current (deployed May 27, 2026) ### Completed - **MongoDB backend** — All data (board, events, gallery, minutes, sponsors, members) moved from hardcoded arrays to MongoDB 7.0; Mongoose 8.x models with full CRUD API - **`/manage` dashboard** — Board member login, all content tabs, drag-and-drop reorder for Minutes and Board tabs, image preview before upload - **Board member auth** — Email-based login, argon2 hashing, JWT sessions, forced password change on first login, forgot/reset password via Google Workspace email, auto welcome email on new member creation - **Rate limiting** — 5 login attempts per 5 minutes on `/api/auth/login` - **File uploads** — multer with persistent Docker volume (`mcdi-uploads-data`); images and PDFs uploadable via dashboard - **Docker** — Two-container setup: app + MongoDB; named volumes for data persistence; `caddy_network` external network so Caddy can route by container name - **v1 rollback tag** — `git tag v1` in Gitea points to last hardcoded version ### Existing Features (carried over from v1) - Responsive frontend — React 19, Tailwind CSS, Framer Motion - Calendar with upcoming events - Photo gallery (17 photos: 0001–0010 + 1–6 + IMG_1615) - Video gallery with thumbnails (5 community videos + board intro archive) - Board member profiles with headshots and bios - Meeting minutes table with sortable columns and PDF viewer - Bylaws PDFs - Sponsors page with logos and social links - Resources directory (Montana + National Deaf organizations) - Contact form (Google Workspace SMTP) - Mobile donation button ## What's Next - [ ] Onboard board members to dashboard (starting with Rita Brandborg) - [ ] Change default passwords in `stack.env` - [ ] Future: Additional gallery photos can be added directly via dashboard (no deploy needed) - [ ] Future: New meeting minutes can be uploaded via dashboard PDF upload (no deploy needed) - [ ] Future: Consider pagination on minutes table if list grows large ## Git History Reference | Tag/Commit | Description | |-----------|-------------| | `v1` | Last hardcoded version (no database) | | `main` | Current v2 production branch | | `development` | Merged into main May 27, 2026 — v2 development branch |