{"id":31913587,"url":"https://github.com/zhibirc/nodejs-1","last_synced_at":"2026-05-06T04:32:25.978Z","repository":{"id":45914776,"uuid":"419780433","full_name":"zhibirc/nodejs-1","owner":"zhibirc","description":":books: Educational project.","archived":false,"fork":false,"pushed_at":"2021-11-28T20:05:12.000Z","size":191,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-22T03:44:01.408Z","etag":null,"topics":["education","fastify","learning","nodejs","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zhibirc.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-10-21T15:35:00.000Z","updated_at":"2021-11-28T20:05:15.000Z","dependencies_parsed_at":"2022-09-05T18:21:24.640Z","dependency_job_id":null,"html_url":"https://github.com/zhibirc/nodejs-1","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zhibirc/nodejs-1","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhibirc%2Fnodejs-1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhibirc%2Fnodejs-1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhibirc%2Fnodejs-1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhibirc%2Fnodejs-1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhibirc","download_url":"https://codeload.github.com/zhibirc/nodejs-1/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhibirc%2Fnodejs-1/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32678605,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T02:33:58.958Z","status":"ssl_error","status_checked_at":"2026-05-06T02:33:39.611Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["education","fastify","learning","nodejs","typescript"],"created_at":"2025-10-13T18:49:56.198Z","updated_at":"2026-05-06T04:32:25.950Z","avatar_url":"https://github.com/zhibirc.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Private movie collections\n\n## Usage\n\n```shell\n# development\nnpm run dev -- --key \u003cOMDb API Key\u003e\n\n# Docker\nOMDB_KEY=\u003cOMDb API Key\u003e docker compose up --build\n```\n\n\n## API\n\n| Method |                     Endpoint                       |         Description               |\n|--------|----------------------------------------------------|-----------------------------------|\n| GET    | `/`                                                | [link](#Homepage)                 |\n| GET    | `/movies?fields=Field_1,Field_2\u0026limit=2\u0026offset=10` | [link](#Get all movies)           |\n| GET    | `/movies/:id`                                      | [link](#Get movie by ID)          |\n| GET    | `/favorites`                                       | [link](#Get Favorites movie list) |\n| PATCH  | `/movies/:id`                                      | [link](#Update movie by ID)       |\n| DELETE | `/movies/:id`                                      | [link](#Delete movie by ID)       |\n| POST   | `/movies`                                          | [link](#Add new movie)            |\n| POST   | `/favorites`                                       | [link](#Set movie Favorites state)|\n| POST   | `/register`                                        | [link](#Register)                 |\n| POST   | `/login`                                           | [link](#Login)                    |\n\n###### Homepage\n\nJust load a static HTML homepage.\n\n###### Get all movies\n\nReturn list of all user's movies from the service's storage. It supports sorting by different fields as well as pagination.\n\n###### Get movie by ID\n\nReturn all information about movies associated with ID from the service's storage.\n\n###### Get Favorites movie list\n\nReturn Favorites movie list for registered user. Each user has his own Favorites list of movies.\nAll filters available for getting all movies are also supported.\n\n###### Update movie by ID\n\nUpdate user's information about the particular movie.\n\n**Body**:\n\n```json\n{\n    \"comment\": \"\",\n    \"personalScore\": 2.5\n}\n```\n\n###### Delete movie by ID\n\nDelete a movie from the service's storage.\n\n###### Add new movie\n\nAdd a new movie to the service's storage. Search for a movie by name in the OMDb database and if the movie exists - add this information to the storage.\nOtherwise - just store data provided in the request by the user. Also, the user can set his own movie's score,\nand some text comment which should be saved among other data in the service's storage.\n\n**Body**:\n\n```json\n{\n    \"id\": \"id-1\",\n    \"favorites\": true\n}\n```\n\n###### Set movie Favorites state\n\nInclude/exclude a movie to/from Favorites list for particular user.\n\n**Body**:\n\n```json\n{\n    \"id\": \"\",\n    \"comment\": \"\",\n    \"personalScore\": 2.5\n}\n```\n\n###### Register\n\nSign-up. Email and password are required.\n\n###### Login\n\nSign-in. JWT-based authentication strategy.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhibirc%2Fnodejs-1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhibirc%2Fnodejs-1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhibirc%2Fnodejs-1/lists"}