{"id":30606962,"url":"https://github.com/luizfelipem/service-template","last_synced_at":"2026-04-11T12:34:08.588Z","repository":{"id":264688568,"uuid":"893980287","full_name":"LuizFelipeM/service-template","owner":"LuizFelipeM","description":"NodeJS template that cover all the key aspects needed for the development of a end-to-end microservice: Frontend, Backend, Database, Messaging.","archived":false,"fork":false,"pushed_at":"2024-12-05T13:05:16.000Z","size":189,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-05T14:18:43.921Z","etag":null,"topics":["event-driven","microservice","nodejs","postgresql","rabbitmq","react","ssr","template-project"],"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/LuizFelipeM.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-25T14:42:29.000Z","updated_at":"2024-12-02T14:07:29.000Z","dependencies_parsed_at":"2024-12-01T23:00:22.169Z","dependency_job_id":null,"html_url":"https://github.com/LuizFelipeM/service-template","commit_stats":null,"previous_names":["luizfelipem/service-template"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/LuizFelipeM/service-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuizFelipeM%2Fservice-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuizFelipeM%2Fservice-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuizFelipeM%2Fservice-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuizFelipeM%2Fservice-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LuizFelipeM","download_url":"https://codeload.github.com/LuizFelipeM/service-template/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LuizFelipeM%2Fservice-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272798257,"owners_count":24994747,"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","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["event-driven","microservice","nodejs","postgresql","rabbitmq","react","ssr","template-project"],"created_at":"2025-08-30T03:19:21.111Z","updated_at":"2026-04-11T12:34:03.566Z","avatar_url":"https://github.com/LuizFelipeM.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Service Template\n\nThis template cover all the key aspects needed for the development of a end-to-end microservice: Frontend, Backend, Database, Messaging.\n\n## Architecture\n\nThe hexagonal architecture was choosen due to their flexibility. The idea of coding for adapters, decoupling the internal domain from the external world, makes the hexagonal architecture well suited for the flexibility required among different microservices.\n\nOther good benefit of defining a unique architecture and other tools/technologies among all microservices using this template is setting a standard and facilitating the projects maintenance. If all projects use the same stack and architecture, is easier to understand and locate things inside different projects contributing to an easy maintainability.\n\nDocker was also added to the project as the primary way of development so no need to set up external databases or message brokers.\n\n## Technologies\n\nThe technologies also were choosen based on their flexibility, simplicity and previous knowledge. Also, worth mentioning, that this technologies are selected so they can be easily updated/replaced independently if necessary, this is the reason behind why I decided not to go with NestJS, everything would be thighted to it.\n\n- Typescript + NodeJS\n- Express - API\n- TSyringe - DI Container\n- TypeORM - Database ORM\n- PostgreSQL - DBMS\n- RabbitMQ - Message broker\n\n## To Do\n\n- Add RabbitMQ to docker-compose.yml\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluizfelipem%2Fservice-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluizfelipem%2Fservice-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluizfelipem%2Fservice-template/lists"}