# Based Based is a micro framework providing web dev primitives. ## Features - User Auth - PostgresDB Connection - Logging - Request Contexts - Templates (Shell) ## User Auth To use the user auth feature, make sure a migration has added the following to your PostgresDB: ```sql CREATE TYPE user_role AS ENUM ('regular', 'admin'); CREATE TABLE IF NOT EXISTS users ( username VARCHAR(255) NOT NULL PRIMARY KEY, "password" text NOT NULL, user_role user_role NOT NULL DEFAULT 'regular' ); CREATE TABLE IF NOT EXISTS user_session ( id UUID NOT NULL PRIMARY KEY DEFAULT gen_random_uuid(), token text NOT NULL, "user" varchar(255) NOT NULL, FOREIGN KEY("user") REFERENCES users(username) ); ``` ## HTMX Based has a route for serving HTMX at `based::htmx::htmx_script_route` which you can include in your rocket `routes!`. The HTMX script will be available at `/assets/htmx.min.js`. Additionally you can check if a requests originates from HTMX: ```rs #[get("/")] pub async fn index(ctx: RequestContext) -> StringRespopnse { if ctx.is_htmx { ... } else { ... } } ```