{"id":18419516,"url":"https://github.com/tutods/nlw-expert-node","last_synced_at":"2026-04-29T21:32:05.844Z","repository":{"id":221657176,"uuid":"754985708","full_name":"tutods/nlw-expert-node","owner":"tutods","description":"Project created during the NLW Expert (Node.js) from Rocketseat","archived":false,"fork":false,"pushed_at":"2024-06-18T22:37:17.000Z","size":241,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T11:50:34.779Z","etag":null,"topics":["fastify","nlw","node","rocketseat","typescript"],"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/tutods.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}},"created_at":"2024-02-09T07:16:44.000Z","updated_at":"2024-02-09T07:18:43.000Z","dependencies_parsed_at":"2024-02-09T09:47:03.970Z","dependency_job_id":"16077ecd-1548-4363-b992-ce133e6bf838","html_url":"https://github.com/tutods/nlw-expert-node","commit_stats":null,"previous_names":["tutods/nlw-expert-node"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tutods/nlw-expert-node","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tutods%2Fnlw-expert-node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tutods%2Fnlw-expert-node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tutods%2Fnlw-expert-node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tutods%2Fnlw-expert-node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tutods","download_url":"https://codeload.github.com/tutods/nlw-expert-node/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tutods%2Fnlw-expert-node/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32444998,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T20:22:27.477Z","status":"ssl_error","status_checked_at":"2026-04-29T20:22:26.507Z","response_time":110,"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":["fastify","nlw","node","rocketseat","typescript"],"created_at":"2024-11-06T04:17:17.496Z","updated_at":"2026-04-29T21:32:05.827Z","avatar_url":"https://github.com/tutods.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003csvg width=\"431\" height=\"82\" viewBox=\"0 0 431 82\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\n\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M274.806 59.583C255.57 45.5794 252.567 46.6974 214.575 82C250.261 44.4162 251.392 41.4574 237.236 22.417C256.472 36.4206 259.474 35.3026 297.467 0C261.78 37.5838 260.65 40.5426 274.806 59.583ZM418.842 59.3685C416.719 59.3685 415.086 58.7926 413.945 57.6407C412.803 56.4888 412.232 54.9077 412.232 52.9088V27.8266H401.068V22.643H412.232V9.57679H418.226V22.643H430.372V27.8266H418.226V52.0166C418.226 53.5186 418.956 54.2753 420.429 54.2753H428.706V59.3798H418.831L418.842 59.3685ZM71.1558 13.8231V55.6532H78.9758V13.8231H71.1558ZM152.369 54.8058V46.7764L163.865 42.4624L152.369 38.1484V30.1189L174.767 38.3742H174.824V46.6296H174.767L152.369 54.8397V54.8171V54.8058ZM142.745 18.7579L129.571 60.588H137.391L150.565 18.7579H142.745ZM22.4667 38.1147V30.0852L0.045665 38.3293H0V46.5733H0.045665L22.4667 54.8287V46.7879L10.9708 42.4513L22.4667 38.126V38.1147ZM62.9027 37.8322C63.0283 34.5685 61.8638 31.3725 59.6377 28.9558L59.6491 28.9671C57.4116 26.6632 54.295 25.4097 51.0643 25.5452C47.6053 25.3984 44.249 26.6633 41.7603 29.0574V26.4148H33.9403V55.6642H41.7603V42.7109C41.7603 35.9801 44.2033 32.6261 49.1008 32.6261C50.7675 32.5583 52.3657 33.2472 53.4503 34.5008C54.5919 35.9011 55.1741 37.6854 55.0827 39.481V55.6529H62.9027V37.8322ZM114.115 55.6529H120.622L131.593 26.347H123.237L117.083 43.9305L110.736 26.347H104.64L98.2927 43.8741L92.1395 26.347H83.783L94.7424 55.6529H101.261L107.722 38.4307L114.115 55.6529ZM211.939 60.4188C208.194 60.4188 204.907 59.6283 202.064 58.0472C199.233 56.4662 197.03 54.2527 195.454 51.3956C193.89 48.5384 193.103 45.2408 193.103 41.4801V40.5766C193.103 36.7708 193.89 33.4394 195.454 30.5822C197.018 27.725 199.199 25.5115 201.984 23.9305C204.77 22.3494 207.955 21.5589 211.551 21.5589C215.147 21.5589 218.126 22.293 220.809 23.7724C223.492 25.2518 225.592 27.3636 227.111 30.1192C228.629 32.8747 229.394 36.1045 229.394 39.8087V42.5078H199.096C199.244 46.4604 200.534 49.5548 202.966 51.7795C205.398 54.0043 208.434 55.1223 212.076 55.1223C215.261 55.1223 217.715 54.3996 219.439 52.9427C221.163 51.4859 222.476 49.758 223.389 47.7591L228.549 50.2324C227.784 51.7795 226.734 53.338 225.398 54.8852C224.051 56.4323 222.316 57.7423 220.158 58.7926C218.001 59.8429 215.261 60.3736 211.916 60.3736L211.939 60.4188ZM199.187 37.663H223.332C223.127 34.2638 221.951 31.6099 219.805 29.7013C217.647 27.8041 214.907 26.8441 211.562 26.8441C208.217 26.8441 205.386 27.7928 203.206 29.7013C201.025 31.6099 199.69 34.2638 199.176 37.663H199.187ZM285.286 22.6434V74.3889L285.298 74.4001H291.291V53.598H292.353C292.958 54.7048 293.814 55.7776 294.933 56.8279C296.052 57.8782 297.501 58.7365 299.305 59.4141C301.097 60.0917 303.289 60.4305 305.869 60.4305C309.112 60.4305 312.068 59.6738 314.717 58.1718C317.365 56.6698 319.489 54.4902 321.053 51.633C322.617 48.7758 323.404 45.3992 323.404 41.4917V40.5205C323.404 36.5679 322.605 33.1799 321.007 30.3792C319.409 27.5785 317.285 25.4102 314.625 23.8856C311.965 22.361 309.043 21.5931 305.858 21.5931C302.011 21.5931 299.008 22.3159 296.862 23.7727C294.704 25.2295 293.152 26.8783 292.193 28.7304H291.131V22.6434H285.286ZM313.644 51.5088C311.246 53.9482 308.118 55.1565 304.271 55.1565C300.481 55.1565 297.353 53.9369 294.899 51.5088C292.444 49.0808 291.211 45.6928 291.211 41.3336V40.656C291.211 36.2969 292.444 32.9089 294.899 30.4808C297.353 28.0528 300.424 26.8332 304.271 26.8332C308.118 26.8332 311.235 28.0528 313.644 30.4808C316.052 32.9089 317.251 36.2969 317.251 40.656V41.3336C317.251 45.6928 316.041 49.0808 313.644 51.5088ZM349.434 60.4188C345.689 60.4188 342.402 59.6283 339.559 58.0472C336.728 56.4662 334.525 54.2527 332.949 51.3956C331.385 48.5384 330.597 45.2408 330.597 41.4801V40.5766C330.597 36.7708 331.385 33.4394 332.949 30.5822C334.513 27.725 336.694 25.5115 339.479 23.9305C342.265 22.3494 345.45 21.5589 349.046 21.5589C352.642 21.5589 355.621 22.293 358.304 23.7724C360.987 25.2518 363.087 27.3636 364.606 30.1192C366.124 32.8747 366.889 36.1045 366.889 39.8087V42.5078H336.591C336.739 46.4604 338.029 49.5548 340.461 51.7795C342.892 54.0043 345.929 55.1223 349.571 55.1223C352.756 55.1223 355.21 54.3996 356.934 52.9427C358.658 51.4859 359.971 49.758 360.884 47.7591L366.044 50.2324C365.279 51.7795 364.229 53.338 362.893 54.8852C361.546 56.4323 359.811 57.7423 357.653 58.7926C355.496 59.8429 352.756 60.3736 349.411 60.3736L349.434 60.4188ZM336.682 37.663H360.827C360.621 34.2638 359.446 31.6099 357.299 29.7013C355.142 27.8041 352.402 26.8441 349.057 26.8441C345.712 26.8441 342.881 27.7928 340.701 29.7013C338.52 31.6099 337.184 34.2638 336.671 37.663H336.682ZM375.724 22.6433V59.3688H381.717V36.9857C381.717 33.8801 382.539 31.5875 384.183 30.1081C385.827 28.6287 387.996 27.8947 390.679 27.8947H395.462V22.4852H391.056C388.829 22.4852 387.037 22.8579 385.667 23.6145C384.297 24.3712 383.293 25.5457 382.63 27.1493H381.569V22.6433H375.724Z\" fill=\"url(#paint0_linear_116_285)\"/\u003e\n\u003cdefs\u003e\n\u003clinearGradient id=\"paint0_linear_116_285\" x1=\"419.639\" y1=\"38.4082\" x2=\"-3.02057\" y2=\"39.2116\" gradientUnits=\"userSpaceOnUse\"\u003e\n\u003cstop stop-color=\"#859398\"/\u003e\n\u003cstop offset=\"0.39918\" stop-color=\"#D1F593\"/\u003e\n\u003cstop offset=\"1\" stop-color=\"#859398\"/\u003e\n\u003c/linearGradient\u003e\n\u003c/defs\u003e\n\u003c/svg\u003e\n\n[![Stargazers][stars-shield]][stars-url] [![Forks][forks-shield]][forks-url]\n\n---\n\n## 📄 Goal\n\nThis project is created during the **NLW Expert**, specifically the **Node.js** course, implementing an API for polls.\n\n## 🛠 Skills\n\n![nodejs][nodejs] ![fastify][fastify] ![typescript][typescript] ![eslint][eslint] ![comintlint][commitlint] ![prettier][prettier]\n\n## 📄 Changes\n\nThis are some changes I have made during this 3 days course:\n\n- [x] **ESLint** configuration;\n  - Using my package [![npm package](https://img.myrandomwebs.com/npm/v/@tutods/eslint-config.svg?label=@tutods/eslint-config\u0026icon=npm)](https://www.npmjs.com/package/@tutods/eslint-config)\n- [x] **Prettier** configuration;\n  - Using my package [![npm package](https://img.myrandomwebs.com/npm/v/@tutods/prettier-config.svg?label=@tutods/prettier-config\u0026icon=npm)](https://www.npmjs.com/package/@tutods/prettier-config)\n- [x] Add **Husky** and **Lint Staged** to run on each commit;\n- [x] Add **Commit Lint** to follow the guidelines on commit messages;\n- [x] Split routes, adding the `fastify.register()` to an `index.ts` on `src/http/routes`.\n\n## 🔗 More About Me\n\n[\n![linkedin](https://img.shields.io/badge/linkedin-0A66C2?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white)\n](https://linkedin.com/in/daniel-sousa-tutods)\n[![twitter](https://img.shields.io/badge/twitter-1DA1F2?style=for-the-badge\u0026logo=twitter\u0026logoColor=white)](https://twitter.com/dsousa_12)\n[![instagram](https://img.shields.io/badge/instagram-E4405F?style=for-the-badge\u0026logo=instagram\u0026logoColor=white)](https://twitter.com/dsousa_12)\n\n[nodejs]: https://img.shields.io/badge/node.js-1E4174?style=for-the-badge\u0026logo=node.js\u0026logoColor=white\n[fastify]: https://img.shields.io/badge/fastify-1E4174?style=for-the-badge\u0026logo=fastify\u0026logoColor=white\n[typescript]: https://img.shields.io/badge/typescript-1E4174?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\n[eslint]: https://img.shields.io/badge/eslint-1E4174?style=for-the-badge\u0026logo=eslint\u0026logoColor=white\n[commitlint]: https://img.shields.io/badge/commitlint-1E4174?style=for-the-badge\u0026logo=commitlint\u0026logoColor=white\n[prettier]: https://img.shields.io/badge/prettier-1E4174?style=for-the-badge\u0026logo=prettier\u0026logoColor=white\n[forks-shield]: https://img.shields.io/github/forks/tutods/nlw-expert-node?style=for-the-badge\n[forks-url]: https://github.com/tutods/nlw-expert-node/network/members\n[stars-shield]: https://img.shields.io/github/stars/tutods/nlw-expert-node?style=for-the-badge\n[stars-url]: https://github.com/tutods/nlw-expert-node/stargazers\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftutods%2Fnlw-expert-node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftutods%2Fnlw-expert-node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftutods%2Fnlw-expert-node/lists"}