Skip to content

Explore exclusive trailers, create personalized lists, and more with Marshmallow Watch. Transform your entertainment discovery experience today!

Notifications You must be signed in to change notification settings

raiane-oliveira/marshmallow-watch-API

Repository files navigation

🚧 Marshmallo Watch API 🗃️ Building... 🚧

AboutRun LocallyTech StackLearningsFeedbacks

💻 About

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.

The ER diagram of the database

👩‍💻 Run Locally

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

📒 Learnings

  • Postgres JSON_AGG and JSON_BUILD_OBJECT functions
  • Internationalization in the Backend
  • Sending e-mails with nodemailer
  • Set private routes by default with fastify
  • BiomeJS

🛠 Tech Stack

  • TypeScript
  • DrizzleORM
  • Fastify
  • Docker
    • Docker compose
  • Vitest
  • BiomeJS (alternative to Eslint)

🤝 Feedbacks

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! ;)

About

Explore exclusive trailers, create personalized lists, and more with Marshmallow Watch. Transform your entertainment discovery experience today!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published