{"id":16211632,"url":"https://github.com/laurabeatris/projects_store","last_synced_at":"2026-02-16T15:35:23.836Z","repository":{"id":35803097,"uuid":"215529972","full_name":"LauraBeatris/projects_store","owner":"LauraBeatris","description":"an api for the storage of projects and their tasks. applied all the main concepts of nodejs and express.","archived":false,"fork":false,"pushed_at":"2022-12-11T09:42:29.000Z","size":117,"stargazers_count":4,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-13T02:26:42.566Z","etag":null,"topics":["api","backend","express","javascript","nodejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/LauraBeatris.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-16T11:19:28.000Z","updated_at":"2023-03-07T16:51:22.000Z","dependencies_parsed_at":"2023-01-16T06:45:32.933Z","dependency_job_id":null,"html_url":"https://github.com/LauraBeatris/projects_store","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/LauraBeatris/projects_store","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LauraBeatris%2Fprojects_store","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LauraBeatris%2Fprojects_store/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LauraBeatris%2Fprojects_store/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LauraBeatris%2Fprojects_store/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LauraBeatris","download_url":"https://codeload.github.com/LauraBeatris/projects_store/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LauraBeatris%2Fprojects_store/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29511662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T09:05:14.864Z","status":"ssl_error","status_checked_at":"2026-02-16T08:55:59.364Z","response_time":115,"last_error":"SSL_read: 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":["api","backend","express","javascript","nodejs"],"created_at":"2024-10-10T10:48:50.877Z","updated_at":"2026-02-16T15:35:23.821Z","avatar_url":"https://github.com/LauraBeatris.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n    \u003cimg alt=\"GoStack\" src=\"https://rocketseat-cdn.s3-sa-east-1.amazonaws.com/bootcamp-header.png\" width=\"200px\" /\u003e\n\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003e\n  Challenge from GoStack Bootcamp. Goals: Apply the main concepts of NodeJS\n\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"GitHub language count\" src=\"https://img.shields.io/github/languages/count/laurabeatris/projects_store?color=brightgreen\u0026logoColor=black\"\u003e\n\n  \u003ca href=\"https://www.linkedin.com/in/laurabeatris/\"\u003e\n    \u003cimg alt=\"Made by Laura Beatris\" src=\"https://img.shields.io/badge/made%20by-laurabeatris-brightgreen\"\u003e\n  \u003c/a\u003e\n\n  \u003cimg alt=\"License\" src=\"https://img.shields.io/badge/license-MIT-%2304D361\"\u003e\n\n  \u003ca href=\"https://github.com/LauraBeatris/projects_store/stargazers\"\u003e\n    \u003cimg alt=\"Stargazers\" src=\"https://img.shields.io/github/stars/LauraBeatris/projects_store?color=brightgreen\u0026style=social\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#rocket-about-the-project\"\u003eAbout the project\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#ballot_box_with_check-goals\"\u003eGoals\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#memo-licence\"\u003eLicence\u003c/a\u003e\n\u003c/p\u003e\n\n## :rocket: About the project\n\nA application to storage projects and their tasks using [Express](https://expressjs.com/pt-br/).\n\n## :ballot_box_with_check: Goals\n\nApply all the main concepts of NodeJS and Express. How to use global/local middlewares, how to do a CRUD (Create, Read, Update, Delete) and learn the behavior of the requests and responses.\n\n### Routes\n\n- `POST /projects`: This route receives the id and title in the body of the request. Creating a project like this format: `{ id: \"1\", title: 'NewProject', tasks: [] }`;\n\n- `GET /projects`: This route list all the projects storaged\n\n- `PUT /projects/:id`: This route update a project, receiving the `id` as a route param and the `title` in the request body.\n\n- `DELETE /projects/:id`: This route delete a project, receiving the `id` of the specific project as a route param.\n\n- `POST /projects/:id/tasks`: This route add a task in the project. For this, the `id` of the project is passed as a route param and the `title` of the task is passed in the request body.\n\n### Examples\n\nIf i call the route `POST /projects` passing `{ id: 1, title: 'AirHealth' }` e a rota `POST /projects/1/tasks` com `{ title: 'Fix errors' }`, the array of projects should be like this:\n\n```js\n[\n  {\n    id: \"1\",\n    title: \"AirHealth\",\n    tasks: [\"Fix errors\"]\n  }\n];\n```\n\n### Middlewares\n\n- `projectsQuantity`: This's a global middleware responsable for (`console.log`) the current count of storaged projects.\n\n- `requestsQuantity`: This's a global middleware responsable for (`console.log`) the current\n  count of requests made to the api.\n\n- `verifyId`: This's a local middleware responsable for the verification if the id passed as a param has a project related to it. If not, will return a error with `status 404 (Bad Request)`, but if the project exists, the middleware will permit the request to continue normally.\n\n- Crie um middleware global chamado em todas requisições que imprime (`console.log`) uma contagem de quantas requisições foram feitas na aplicação até então;\n\n## :memo: Licence\n\nMIT Licence. See the file [LICENSE](LICENSE.md) for more details.\n\n---\n\nMade with ♥ by Laura :wave: [See my linkedin!](https://www.linkedin.com/in/laurabeatris/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaurabeatris%2Fprojects_store","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaurabeatris%2Fprojects_store","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaurabeatris%2Fprojects_store/lists"}