About • Run Locally • Tech Stack • Learnings • Feedbacks
Explore exclusive trailers, create personalized lists, and more with Marshmallow Watch. Transform your entertainment discovery experience today! RESTful API built with SOLID, Clean Architecture, and DDD basic concepts to manage your watched movies and shows.
Clone the project
git clone https://github.com/raiane-oliveira/marshmallow-watch-API
Go to the project directory and install the dependencies
pnpm i
Create the .env
file and add it these variables:
PORT=3333
# Database
DATABASE_URL=""
# JWT Authentication
JWT_SECRET="marshmallow-watch"
# Cloudflare
CLOUDFLARE_ACCOUNT_ID=""
AWS_BUCKET_NAME=""
AWS_ACCESS_KEY_ID=""
AWS_SECRET_ACCESS_KEY=""
AWS_ENDPOINT_API_URL=""
# Mailer
MAILER_PORT="587"
MAILER_HOST="smtp.ethereal.email"
MAILER_SENDER_EMAIL=""
MAILER_SENDER_PASS=""
# Client
WEBSITE_URL="http://localhost:3000"
# TMDB API
TMDB_BASE_API_URL="https://api.themoviedb.org"
TMDB_API_KEY=""
Create the database server on Docker container
docker compose up
That command it will already start the container. If not, run this command:
docker compose start
Finally, start the server
pnpm dev
- Postgres
JSON_AGG
andJSON_BUILD_OBJECT
functions - Internationalization in the Backend
- Sending e-mails with
nodemailer
- Set private routes by default with
fastify
- BiomeJS
- TypeScript
- DrizzleORM
- Fastify
- Docker
- Docker compose
- Vitest
- BiomeJS (alternative to Eslint)
If you have opinions on how I can improve this application, please send me a message on Linkedin or an email. I will be happy to answer and learn more from you! ;)