Skip to content

Artiom-Karimov/bloggers-api-nest

Repository files navigation

Description

REST API using Nest.

It is a fully-functional blog app (backend only).

The project covers following techniques:

  • registration through email confirmation
  • password recovery using email
  • user session management: jwt, access/refresh tokens
  • admin functionality (admin can ban users or blogs)
  • blog management (users can create/update/delete their own blogs and posts)
  • user ban by blogger
  • comments: users can leave comments under posts
  • likes/dislikes: users can leave likes, remove their own likes

Environment variables:

PORT - tcp port to listen on
USER_NAME - admin username
PASSWORD - admin password

sqlHost - ip or hostname of postgreSQL server
sqlPort - port to connect to postgeSQL
sqlUser - username for postgeSQL
sqlPass - password postgeSQL
sqlDatabase - db name

emailUser - email for sending (gmail only)
emailPassword - app password generated by gmail
mailSenderName - name to be displayed in email
emailConfirmLink - URL that should be sent as a link to confirm email ([link]?code=[confirmationCode])
passwordRecoverLink - URL that should be sent as a link to recover password ([link]?recoveryCode=[confirmationCode])

enableTesting - if set to 'true', enables DELETE /testing/all-data endpoint
ddosGuardDisable - if set to 'true', throttling filter shall be disabled
ddosMaxRequests - requests amount to block ip
ddosTimeoutSeconds - time range to accumulate requests amount

jwtSecret - secret to encode jwt tokens

emailConfirmationMinutes - minutes for user to confirm email
passwordRecoveryExpireMinutes - minutes for user to set password after requesting
refreshTokenExpireMinutes - minutes before refresh gets expired
refreshTokenExpireSeconds - seconds added to previous parameter
accessTokenExpireMinutes - minutes before access gets expired
accessTokenExpireSeconds - seconds added to previous parameter


About

rest api using nestjs and postgres

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages