Skip to content

This project is a API using Node.js, TypeScript, and SOLID principles, based on Rocketseat's Code/Drops #44.

Notifications You must be signed in to change notification settings

HarukaYamamoto0/solid-typescript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

RESTful API with Node.js, TypeScript, and SOLID Principles

This project is a basic implementation of a RESTful API using Node.js and TypeScript, following the SOLID principles, as taught in the SOLID Principles in a REST API with Node.js and TypeScript | Code/Drops #44 video by Rocketseat.

🧾 Description

This API was developed to demonstrate the application of SOLID principles in the development of a REST API. The goal is to create more modular, maintainable, and extensible code, respecting good software architecture practices.

πŸ“‹ Features

  • User registration

πŸš€ Technologies Used

  • Node.js: A platform for running JavaScript on the server-side.
  • TypeScript: A superset of JavaScript that adds static typing.
  • Express: A minimalist web framework for Node.js.
  • SOLID Principles: A set of principles for creating robust and maintainable software.

πŸ“‚ Folder Structure

Below is a summary of the folder structure used in the project, organized to reflect SOLID principles:

.
β”œβ”€β”€ biome.json
β”œβ”€β”€ package.json
β”œβ”€β”€ src
β”‚   β”œβ”€β”€ app.ts
β”‚   β”œβ”€β”€ entities
β”‚   β”‚   └── User.ts
β”‚   β”œβ”€β”€ providers
β”‚   β”‚   β”œβ”€β”€ IEmailProvider.ts
β”‚   β”‚   └── implementations
β”‚   β”‚       └── MailTrapMailProvider.ts
β”‚   β”œβ”€β”€ repositories
β”‚   β”‚   β”œβ”€β”€ implementations
β”‚   β”‚   β”‚   └── PostgresUserRepository.ts
β”‚   β”‚   └── IUserRepository.ts
β”‚   β”œβ”€β”€ routers.ts
β”‚   β”œβ”€β”€ server.ts
β”‚   └── useCases
β”‚       └── CreateUser
β”‚           β”œβ”€β”€ CreateUserController.ts
β”‚           β”œβ”€β”€ CreateUserUseCase.spec.ts
β”‚           β”œβ”€β”€ CreateUserUseCase.ts
β”‚           β”œβ”€β”€ ICreateUserDTO.ts
β”‚           └── index.ts
β”œβ”€β”€ tsconfig.json
└── yarn.lock

About

This project is a API using Node.js, TypeScript, and SOLID principles, based on Rocketseat's Code/Drops #44.

Topics

Resources

Stars

Watchers

Forks