Skip to content

A opinionated starter template for building REST APIs with Express, Drizzle ORM and PostgreSQL.

License

Notifications You must be signed in to change notification settings

jatindotdev/express-drizzle-postgres-starter

Repository files navigation

Express-Drizzle-PostgreSQL-Starter

A opinionated starter template for building REST APIs with Express, Drizzle ORM and PostgreSQL.

Features

  • User registration
  • User verification via email
  • User deletion
  • Admin routes

API Documentation

GET /user

Returns the user. Requires AUTH_TOKEN in the request header.

PUT /user/update

Updates the user. Requires AUTH_TOKEN in the request header.

User can only update themselves. Properties that can be updated are name, email and password.

if email is updated, the user will be unverified and a new verification email will be sent.

POST /user/create

Creates a new user. Requires name, email and password in the request body.

GET /user/verify

Verifies the user. Requires token and email in the query string.

DELETE /user/remove

Removes the user. Requires AUTH_TOKEN in the request header.

A user can only remove themselves. A admin can remove any user.

POST /user/login

Logs in the user. Requires email and password in the request body.

GET /admin/all-users

Returns all users. It is an admin route, requires AUTH_TOKEN.

GET /admin/all-verfied-users

Returns all verified users. It is an admin route, requires AUTH_TOKEN.

DELETE /admin/remove-unverified-users

Removes all unverified users. It is an admin route, requires AUTH_TOKEN.

Running the app

Install the dependencies

pnpm install

Run the development server:

pnpm dev

Built with