Overview
A server-rendered message board exploring authentication and membership. Visitors can browse messages, registered users can log in and join the club, and administrators can remove messages.
Main features
- Local sign-in and sign-out through Passport.
- Argon2 password hashing.
- Users, messages, and sessions stored in PostgreSQL.
- A membership flow and member-only message posting.
- Administrator-only message deletion.
Implementation
TypeScript and Express provide the server, with EJS templates for the interface.
The code separates routes, controllers, database queries, middleware, and form
validation. Validation uses express-validator and Zod.
The repository documents local database setup, required configuration, development watch mode, and a production build that compiles TypeScript and copies the views and static assets.