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.