Skip to content

🎬 Master 1 - Emerging streaming platform specializing in movie recommendations based on user preferences (Next)

Notifications You must be signed in to change notification settings

vbetsch/tp-cloud

Repository files navigation

TP Cloud

Emerging streaming platform specializing in movie recommendations based on user preferences

Stack

NodeJS TypeScript Next JS Swagger Jest MongoDB React MUI ESLint CircleCI Vercel

Links

Roadmap

API endpoints

  • /auth/signup
  • /auth/signin
  • /auth/user
  • /auth/logout
  • /movies
  • /movies/search
  • /movies/discover/recommended
  • /movies/discover/toprated
  • /movies/[idMovie]
  • /movies/[idMovie]/likes
  • /movies/[idMovie]/videos

Swagger

  • Swagger UI

UI

  • Navbar
  • Home page
    • search bar
    • like button
  • Authentication pages
    • Sign-up
    • Sign-in
    • Profile
  • Movie details page
  • Favorite movies page
  • Discover page

Unit tests

API

  • /auth/signup
  • /auth/signin
  • /auth/user
  • /auth/logout
  • /movies
  • /movies/search
  • /movies/discover/recommended
  • /movies/discover/toprated
  • /movies/[idMovie]
  • /movies/[idMovie]/likes
  • /movies/[idMovie]/videos

Swagger

  • Swagger UI

UI

  • Navbar
  • Home Page
    • search bar
    • like button
  • Authentication pages
    • Sign-up
    • Sign-in
    • Profile
  • Movie details page
  • Favorite movies page
  • Discover page

Windows & MacOS & Linux

Installation

  • Install Nodejs dependencies

    npm install
  • Copy the .env.local.example file to create your own .env file

    MONGODB_URI=your_mongodb_uri
    MONGO_DATABASE=your_mongodb_database
    API_TOKEN=your_tmdb_api_token
    REACT_EDITOR=your_favorite_ide

Getting Started

  • Run Next app
    npm run dev

Linter & Formatter

  • Run ESLint
    npm run eslint
  • Run ESLint in quiet mode
    npm run eslint:quiet
  • Check Prettier
    npm run prettier:c
  • Run Prettier
    npm run prettier:w

Test

  • Launch all Jest tests
    npm run test 
  • Launch API Jest tests
    npm run test:api
  • Launch UI Jest tests
    npm run test:ui
  • Run Jest coverage
    npm run test:coverage

Build

  • Build Next app
    npm run build