{"id":24427438,"url":"https://github.com/shubhamv108/stage","last_synced_at":"2026-02-25T20:00:58.642Z","repository":{"id":270085490,"uuid":"909290180","full_name":"shubhamv108/stage","owner":"shubhamv108","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-17T04:43:32.000Z","size":636,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-24T04:34:31.516Z","etag":null,"topics":["docker","jwt-authentication","login-logout","nestjs","nestjs-backend","pagination","rest-api"],"latest_commit_sha":null,"homepage":"","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/shubhamv108.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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-28T08:58:23.000Z","updated_at":"2025-01-09T05:07:03.000Z","dependencies_parsed_at":"2024-12-28T10:23:40.153Z","dependency_job_id":"987086a2-16ba-4f7d-97dc-0871ba341ab3","html_url":"https://github.com/shubhamv108/stage","commit_stats":null,"previous_names":["shubhamv108/stage"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shubhamv108/stage","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shubhamv108%2Fstage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shubhamv108%2Fstage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shubhamv108%2Fstage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shubhamv108%2Fstage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shubhamv108","download_url":"https://codeload.github.com/shubhamv108/stage/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shubhamv108%2Fstage/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29837414,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T19:08:47.527Z","status":"ssl_error","status_checked_at":"2026-02-25T18:59:04.705Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["docker","jwt-authentication","login-logout","nestjs","nestjs-backend","pagination","rest-api"],"created_at":"2025-01-20T12:10:39.076Z","updated_at":"2026-02-25T20:00:58.624Z","avatar_url":"https://github.com/shubhamv108.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OTT Platform \"My List\" Feature - Developer Evaluation Project\n\nWelcome to the OTT Platform \"My List\" feature evaluation project. This project is designed to assess your problem-solving skills, debugging abilities, and overall proficiency in improving an existing codebase. The project is built using [NestJS](https://nestjs.com/), and your task will involve refining the current implementation and adding new features.\n\n## Project Overview\n\nThis project simulates a basic OTT (Over-the-Top) platform where users can add content (movies, series, etc.) to their \"My List\" feature. The backend is implemented with NestJS, and we have already seeded the database with some initial data and models.\n\nYour job will be to address existing issues, optimize the current code, and extend it by adding the required functionalities.\n\n### What you will be working on:\n- **Fix existing bugs** in the project.\n- **Improve and optimize** the current implementation.\n- **Add new features** to enhance the functionality of the \"My List\" feature.\n\n## Getting Started\n\n### Prerequisites\n\nBefore running the application, ensure you have the following prerequisites installed on your machine:\n\n- Node.js v18 or above\n- Docker\n- Docker Compose\n\n### Setting Up the Project\n\n1. **Clone the repository** to your local machine:\n   ```bash\n   git clone \u003crepository-url\u003e\n\n\n### Getting Started\n\nTo start the project locally, use the following command:\n\n```bash\ndocker-compose up --build\n```\n\n\n\n### Swagger Documentation for existing apis\nSwagger Documentation: http://127.0.0.1:3000/api\n\n\n### API Endpoints to Be Developed\nThe application needs to expose the following API endpoints by the completion of this assignment:\n\n- GET /list: Lists all items added to the user's list with pagination.\n- POST /list: Adds items to the user's list.\n- DELETE /list: Removes an item from the user's list.\n\n### Detailed Requirements for the API:\n- GET /list should include pagination support (e.g., limit and offset).\n- POST /list must validate incoming data and ensure no duplicate items are added.\n- DELETE /list should ensure proper validation of the item being removed and return meaningful responses.\n\n### Existing Endpoints in the Application\nYou can use the following existing endpoints to interact with movies and TV shows:\n\n- GET /movies: Lists all movies.\n- POST /movies: Adds a new movie.\n- GET /tvshows: Lists all TV shows.\n- POST /tvshows: Adds a TV show.\nNote: These endpoints are already implemented and should function correctly. Feel free to review and improve them where necessary.\n\n## Evaluation Criteria\nYou will be evaluated based on the following aspects:\n\n### 1. Code Quality\nReadability: Code should be easy to read and understand. Use meaningful variable and function names, appropriate abstractions, and comments where necessary.\nStructure: Follow NestJS best practices in terms of module and service organization. Adhere to SOLID principles and ensure that each class, function, and file has a clear responsibility.\nDRY (Don't Repeat Yourself): Avoid code duplication. Look for ways to reuse existing logic where applicable.\n### 2. Error Handling and Validation\nProper error handling should be in place for both synchronous and asynchronous operations. Use appropriate HTTP status codes for different error scenarios (e.g., 404 for not found, 400 for bad requests).\nData validation should be comprehensive, with clear error messages returned for invalid inputs (e.g., missing required fields or incorrect data types).\n### 3. Testing\nImplement unit tests for critical components, especially the \"My List\" feature.\nAdd integration tests for the new API endpoints.\nTest coverage should be meaningful, and the test suite should be easy to run (npm run test).\n### 4. Performance Optimization\nEnsure that database queries are optimized and do not introduce performance bottlenecks, especially in the \"My List\" feature, where users may have large lists.\nLook for opportunities to optimize code where applicable (e.g., using indexes for database queries).\n### 5. Best Practices\nFollow NestJS conventions for dependency injection, services, and controllers.\nUse environment variables and proper configuration management (e.g., database credentials, environment-specific settings).\nAdhere to RESTful API best practices in your implementation (e.g., using appropriate HTTP methods, status codes, and resource naming conventions).\n### 6. Code Formatting and Linting\nEnsure that the code is consistently formatted and follows a coding style guide. Prettier and ESLint are included in the project setup, and you should ensure there are no linting errors:\n\n```bash\nnpm run lint\nnpm run format\n```\n\nFollow naming conventions for files, variables, and classes in the project.\n### 7. Git Usage\nUse meaningful commit messages that clearly describe the changes you've made.\nKeep your commit history clean and logical. Avoid including unnecessary or temporary files in your commits.\nCreate a branch for your changes and submit a pull request for review.\n### 8. Documentation\nUpdate the Swagger documentation to reflect any new endpoints or changes.\nEnsure your code is well-documented with appropriate inline comments where necessary, especially for complex logic.\nBriefly explain your approach in the pull request description or commit messages.\n### 9. Additional Improvements\nFeel free to make suggestions or implement additional improvements that you believe will add value to the project. For example, caching frequently requested data, optimizing database indexing, or refactoring existing code.\n\n## Submission\nOnce you have completed your work, push your changes to a new branch and submit a pull request. In your pull request description, include:\n\nA brief overview of the changes you made.\nAny challenges you faced and how you overcame them.\nA description of any additional improvements or optimizations you made.\n\nGood Luck!\n\nFeel free to reach out if you have any questions or need clarification on the requirements. We're looking forward to reviewing your submission and evaluating how you tackle this task!\n\nLogin/Logout with JWT\n![Screenshot from 2024-12-28 14-43-33](https://github.com/user-attachments/assets/40be08d9-51c7-47f5-a2bb-77036a6541e7)\n\nPost iser list item and get\n![Screenshot from 2024-12-28 15-08-47](https://github.com/user-attachments/assets/006ea1a4-1e9a-4d4f-964f-2c7116b76e87)\n\nitem removed\n![Screenshot from 2024-12-28 15-11-12](https://github.com/user-attachments/assets/641199f8-8e07-4257-9615-5a211e15831a)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshubhamv108%2Fstage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshubhamv108%2Fstage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshubhamv108%2Fstage/lists"}