{"id":18753174,"url":"https://github.com/vbetsch/tp-cloud","last_synced_at":"2025-11-28T07:30:13.491Z","repository":{"id":229524440,"uuid":"768611758","full_name":"vbetsch/tp-cloud","owner":"vbetsch","description":"🎬 Master 1 - Emerging streaming platform specializing in movie recommendations based on user preferences (Next)","archived":false,"fork":false,"pushed_at":"2024-04-11T12:51:42.000Z","size":737,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-29T00:52:03.828Z","etag":null,"topics":["circle-ci","circleci","eslint","jest","mongodb","mui","nextjs","prettier","react","swagger","typescript","vercel"],"latest_commit_sha":null,"homepage":"https://tp-cloud.vercel.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vbetsch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-03-07T12:06:51.000Z","updated_at":"2024-04-28T23:48:45.000Z","dependencies_parsed_at":"2024-04-10T19:35:48.948Z","dependency_job_id":"8de84614-9414-476e-b825-492b33218c19","html_url":"https://github.com/vbetsch/tp-cloud","commit_stats":null,"previous_names":["vbetsch/tp-cloud"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vbetsch%2Ftp-cloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vbetsch%2Ftp-cloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vbetsch%2Ftp-cloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vbetsch%2Ftp-cloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vbetsch","download_url":"https://codeload.github.com/vbetsch/tp-cloud/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239644163,"owners_count":19673578,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["circle-ci","circleci","eslint","jest","mongodb","mui","nextjs","prettier","react","swagger","typescript","vercel"],"created_at":"2024-11-07T17:24:36.568Z","updated_at":"2025-11-28T07:30:13.427Z","avatar_url":"https://github.com/vbetsch.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TP Cloud\n\nEmerging streaming platform specializing in movie recommendations based on user preferences\n\n### Stack\n\n![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge\u0026logo=node.js\u0026logoColor=white)\n![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge\u0026logo=typescript\u0026logoColor=white)\n![Next JS](https://img.shields.io/badge/Next-black?style=for-the-badge\u0026logo=next.js\u0026logoColor=white)\n![Swagger](https://img.shields.io/badge/-Swagger-%23Clojure?style=for-the-badge\u0026logo=swagger\u0026logoColor=white)\n![Jest](https://img.shields.io/badge/-jest-%23C21325?style=for-the-badge\u0026logo=jest\u0026logoColor=white)\n![MongoDB](https://img.shields.io/badge/MongoDB-%234ea94b.svg?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white)\n![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge\u0026logo=react\u0026logoColor=%2361DAFB)\n![MUI](https://img.shields.io/badge/MUI-%230081CB.svg?style=for-the-badge\u0026logo=mui\u0026logoColor=white)\n![ESLint](https://img.shields.io/badge/ESLint-4B3263?style=for-the-badge\u0026logo=eslint\u0026logoColor=white)\n![CircleCI](https://img.shields.io/badge/circle%20ci-%23161616.svg?style=for-the-badge\u0026logo=circleci\u0026logoColor=white)\n![Vercel](https://img.shields.io/badge/vercel-%23000000.svg?style=for-the-badge\u0026logo=vercel\u0026logoColor=white)\n\n## Links\n\n- [User Interface](https://tp-cloud.vercel.app) (UI)\n- [API Documentation](https://tp-cloud.vercel.app/docs) (Swagger)\n\n## Roadmap\n\n### API endpoints\n\n- [X]  /auth/signup\n- [X]  /auth/signin\n- [X]  /auth/user\n- [X]  /auth/logout\n- [X]  /movies\n- [X]  /movies/search\n- [X]  /movies/discover/recommended\n- [X]  /movies/discover/toprated\n- [X]  /movies/[idMovie]\n- [X]  /movies/[idMovie]/likes\n- [X]  /movies/[idMovie]/videos\n\n### Swagger\n\n- [X]  Swagger UI\n\n### UI\n\n- [X]  Navbar\n- [X]  Home page\n    - [ ]  search bar\n    - [ ]  like button\n- [X]  Authentication pages\n    - [X] Sign-up\n    - [X] Sign-in\n    - [X] Profile\n- [ ]  Movie details page\n- [ ]  Favorite movies page\n- [ ]  Discover page\n\n### Unit tests\n\n#### API\n\n- [X]  /auth/signup\n- [X]  /auth/signin\n- [X]  /auth/user\n- [X]  /auth/logout\n- [X]  /movies\n- [X]  /movies/search\n- [X]  /movies/discover/recommended\n- [X]  /movies/discover/toprated\n- [X]  /movies/[idMovie]\n- [X]  /movies/[idMovie]/likes\n- [X]  /movies/[idMovie]/videos\n\n#### Swagger\n\n- [ ]  Swagger UI\n\n#### UI\n\n- [ ]  Navbar\n- [ ]  Home Page\n    - [ ]  search bar\n    - [ ]  like button\n- [ ]  Authentication pages\n    - [ ] Sign-up\n    - [ ] Sign-in\n    - [ ] Profile\n- [ ]  Movie details page\n- [ ]  Favorite movies page\n- [ ]  Discover page\n\n## Windows \u0026 MacOS \u0026 Linux\n\n### Installation\n\n- Install Nodejs dependencies\n  ```bash\n  npm install\n  ```\n\n- Copy the `.env.local.example` file to create your own `.env` file\n    ```dotenv\n    MONGODB_URI=your_mongodb_uri\n    MONGO_DATABASE=your_mongodb_database\n    API_TOKEN=your_tmdb_api_token\n    REACT_EDITOR=your_favorite_ide\n    ```\n\n### Getting Started\n\n- Run Next app\n  ```bash\n  npm run dev\n  ```\n\n### Linter \u0026 Formatter\n\n- Run ESLint\n  ```bash\n  npm run eslint\n  ```\n- Run ESLint in quiet mode\n  ```bash\n  npm run eslint:quiet\n  ```\n- Check Prettier\n  ```bash\n  npm run prettier:c\n  ```\n- Run Prettier\n  ```bash\n  npm run prettier:w\n  ```\n\n### Test\n\n- Launch all Jest tests\n  ```bash\n  npm run test \n  ```\n- Launch API Jest tests\n  ```bash\n  npm run test:api\n  ```\n- Launch UI Jest tests\n  ```bash\n  npm run test:ui\n  ```\n- Run Jest coverage\n  ```bash\n  npm run test:coverage\n  ```\n\n### Build\n\n- Build Next app\n  ```bash\n  npm run build\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvbetsch%2Ftp-cloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvbetsch%2Ftp-cloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvbetsch%2Ftp-cloud/lists"}