# htmx_contact ![build-status](https://drone.runcible.io/api/badges/androiddrew/htmx_contact/status.svg) Learning [HTMX](https://htmx.org/) by building a the htmx contact.app from https://hypermedia.systems/book/contents/ ## Local Development This project uses Pyinvoke for local development utilities. See: ``` inv --list ``` For a list of current utilities. ## Features - [x] Application factory - [x] View Blueprints - [x] Configuration with Pydantic - [x] dotenv support for local dev - [x] Sqlalchemy integration - [x] Model migrations using Alembic - [x] User accounts - [ ] Flask Login integration - [ ] Oauth Integration - [ ] Secure password hashing with [argon2](https://www.password-hashing.net/) - [ ] RBAC for contact sharing - [ ] Email integration - [ ] Admin portal - [ ] Hypermedia Application driven by HTMX under `/` - [ ] JSON API under `/api` route - [ ] Tilt local development environment - [ ] Helm Chart Deployment - [x] Continous Integration with Drone.io - [x] Lint Checks - [x] Unit Tests - [ ] Integration Tests - [ ] Continuous Delivery pipeline with Drone.io - [ ] CRSF Protection via [TBD](https://testdriven.io/blog/csrf-flask/) Looks like it will probably still be flask-wtf but only for the CSRF Protect.