{"id":22640814,"url":"https://github.com/alexandredev3/nodejs-clean-architeture","last_synced_at":"2025-04-11T22:13:37.467Z","repository":{"id":106059447,"uuid":"311690932","full_name":"alexandredev3/nodejs-clean-architeture","owner":"alexandredev3","description":"Typescript \u0026 Node.js Clean Architecture.","archived":false,"fork":false,"pushed_at":"2021-03-21T11:47:06.000Z","size":1314,"stargazers_count":39,"open_issues_count":0,"forks_count":8,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-11T22:13:31.245Z","etag":null,"topics":["api","backend","express","injection-container","layered-architecture","nodejs","oop","oriented-object-programming","postgresql","redis","solid-principles","typeorm","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/alexandredev3.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":"2020-11-10T14:53:05.000Z","updated_at":"2025-02-20T21:20:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"26c8a048-27ea-47e1-978c-dad5cd035ecf","html_url":"https://github.com/alexandredev3/nodejs-clean-architeture","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandredev3%2Fnodejs-clean-architeture","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandredev3%2Fnodejs-clean-architeture/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandredev3%2Fnodejs-clean-architeture/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexandredev3%2Fnodejs-clean-architeture/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexandredev3","download_url":"https://codeload.github.com/alexandredev3/nodejs-clean-architeture/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248487685,"owners_count":21112190,"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":["api","backend","express","injection-container","layered-architecture","nodejs","oop","oriented-object-programming","postgresql","redis","solid-principles","typeorm","typescript"],"created_at":"2024-12-09T04:14:09.428Z","updated_at":"2025-04-11T22:13:37.459Z","avatar_url":"https://github.com/alexandredev3.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cimg width=\"300px\" src=\"./.github/assets/nodejs-icon.svg\" /\u003e\n  \u003cbr /\u003e\n  \u003ca href=\"https://www.linkedin.com/in/alexandre-costa-401699199\"\u003e\n    \u003cimg alt=\"Linkedin\" src=\"https://img.shields.io/badge/-Alexandre%20Costa-29B6D1?label=Linkedin\u0026logo=linkedin\u0026style=flat-square\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/alexandredev3/Node.js-API-solid-principles/issues\"\u003e\n    \u003cimg alt=\"GitHub issues\" src=\"https://img.shields.io/github/issues/alexandredev3/linkedin-clone?color=29B6D1\u0026style=flat-square\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/alexandredev3/linkedin-clone//network\"\u003e\n    \u003cimg alt=\"GitHub forks\" src=\"https://img.shields.io/github/forks/alexandredev3/Node.js-API-solid-principles?color=29B6D1\u0026style=flat-square\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/alexandredev3/linkedin-clone//stargazers\"\u003e\n    \u003cimg alt=\"GitHub stars\" src=\"https://img.shields.io/github/stars/alexandredev3/Node.js-API-solid-principles?color=29B6D1\u0026style=flat-square\"\u003e\n  \u003c/a\u003e\n\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#page_facing_up-descrição\"\u003eDescrição\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#-tecnologias\"\u003eTecnologias\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n    \u003ca href=\"#clipboard-Funcionalidades\"\u003eFuncionalidades\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#closed_book-instalação\"\u003eInstalação\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#man-Autor\"\u003eAutor\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n\u003c/p\u003e\n\n## :page_facing_up: Descrição\nAPI de Autenticação de usuário com arquitetura em camadas, seguindo os conceitos do SOLID e o Design Pattern de Dependency Injection em Node.js e Typescript.\n\n## 🛠 Tecnologias\nEste projeto foi desenvolvido com as seguintes tecnologias\n### App\n  - [Typescript](https://www.typescriptlang.org/)\n  - [Node.js](https://nodejs.org/)\n  - [Tsyringe](https://github.com/microsoft/tsyringe)\n  - [Express](https://expressjs.com/pt-br/)\n  - [Celebrate](https://github.com/arb/celebrate)\n \n### Banco de Dados\n  - [Typeorm](https://typeorm.io/#/)\n  - [Postgres](https://www.postgresql.org/)\n  - [Redis](https://redis.io/)\n  \n### Testes\n  - [Jest](https://jestjs.io/)\n  \n## :clipboard: Funcionalidades\n  - [x] Criar usuários.\n  - [x] Autenticar um usuário.\n  - [x] Lista todos os usuários salvos no banco de dados.\n  - [x] Salvar usuários listados em um sistema de Cache.\n  - [x] Carregar usuários que foram salvos no Cache.\n \n## :closed_book: Instalação\n\n### Pré-requisitos\nAntes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas:\n[Git](https://git-scm.com), [Node.js](https://nodejs.org/en/).\nAlém disto é bom ter um editor para trabalhar com o código como [VSCode](https://code.visualstudio.com/)\n\n#### Iniciando Back-End\n  ```bash\n  # Clone este repositório;\n  $ git clone https://github.com/alexandredev3/nodejs-clean-architeture.git\n\n  # Vá para a pasta onde esta o app;\n  $ cd nodejs-clean-architeture\n\n  # Instale as dependências;\n  $ yarn ou npm install\n\n  # Execute aplicação;\n  $ yarn dev ou npm run dev\n\n  # O app vai está rodando na porta 3333 - acesse \u003chttp://localhost:3333\u003e\n  ```\n  \n#### Rodando Testes\n  ```bash\n  # Executando os testes com o Jest;\n  $ yarn test ou npm run tests\n  ```\n## Clean Architecture\n\u003cimg src=\"./.github/assets/clean-architecture-image.jpg\" /\u003e\n\n## Estrutura de Pastas\n\u003cimg src=\"./.github/assets/tree-image.svg\" /\u003e\n\n## :man: Autor\n\n\u003ca href=\"https://github.com/alexandredev3/\"\u003e\n \u003cimg src=\"https://avatars0.githubusercontent.com/u/61118233?s=400\u0026u=37870397a9363ce5e768975c05e95a5f5d323ca1\u0026v=4\" width=\"70px;\" alt=\"\"/\u003e\n \u003cbr /\u003e\n \u003csub\u003e\u003cb\u003eAlexandre Costa\u003c/b\u003e\u003c/sub\u003e\n\u003c/a\u003e\n\n\nFeito com ❤️ por Alexandre Costa :wave::wave: Entre em contato!🚀\n\n\u003ca href=\"https://www.linkedin.com/in/alexandre-costa-401699199\"\u003e\n  \u003cimg alt=\"Linkedin\" src=\"https://img.shields.io/badge/-Alexandre%20Costa-9871F5?label=Linkedin\u0026logo=linkedin\u0026style=flat-square\"\u003e\n\u003c/a\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandredev3%2Fnodejs-clean-architeture","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexandredev3%2Fnodejs-clean-architeture","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexandredev3%2Fnodejs-clean-architeture/lists"}