{"repo":"tgmarinho/gobarber-api-gostack11","free":true,"listed":false,"github":"https://github.com/tgmarinho/gobarber-api-gostack11","clone":"git clone https://github.com/tgmarinho/gobarber-api-gostack11.git","description":"API GoBarber / NodeJS / Express / Typescript / SOLID","language":"TypeScript","stars":44,"topics":["typescript","nodejs","express","jsonwebtoken","jwt","multer","postgres","typeorm","orm","eslint"],"license":null,"category":"databases-storage","readme_excerpt":"GoBarber API A backend API for a barbershop scheduling app. It was built as the capstone of Rocketseat's GoStack 11 bootcamp, with a focus on SOLID principles, DDD-style layering, and tests. What it does - Books appointments between clients and service providers. - Lists registered providers. - Handles user sign up and authentication with JWT. - Recovers passwords by sending an email with a reset link. - Lets users update their profile. - Accepts avatar uploads. - Applies rate limiting to protect the API. Architecture The codebase follows SOLID principles and a DDD-style layout. The goal is clear separation of concerns and easy testing. - Domain modules. Code is split by business domain under src/modules (users, appointments, notifications). Shared infrastructure lives under src/shared . - Repositories. Each module exposes repository interfaces. Data access details stay behind those interfaces, so the business logic does not depend on the database. - Services. Each use case is a small service with a single responsibility. - Dependency injection. Dependencies are wired with tsyringe. Services receive their collaborators through their constructors, which keeps them decoupled and testable. Stack - Node.js as the runtime. - TypeScript as the language. - Express as the web framework. - TypeORM as the ORM. - PostgreSQL as the main database. - MongoDB for notifications. - Redis for caching and rate limiting. - Jest for tests. - Other libraries: jsonwebtoken for auth, bcryptjs for pa","default_branch":null,"files":null,"tree":[],"storefront":"/r/tgmarinho","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/tgmarinho/gobarber-api-gostack11/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}