Repository to store projects of study.
Development of a survey application (with signIn and signup) using techniques like:
- TDD
- DDD
- SOLID
- Clean Architecture
- Conventional Commits
- Style guide (standard)
- and others
- Typescript
- Express
- Bcrypt
- MongoDb
- Jest
- Eslint
- git (add, commit, stash, log, status)
- @shef/jest-mongodb
- supertest
- sucrase
This is a project under construction. Updates on this project will be added in time.
- data: directory that represents application data layer
- protocols: directory containing protocol interfaces
- usecases: directory that holds the implementations of domain usecases
- domain: directory that represents the application domain, is composed by:
- models: directory containing the application
entities
- usecases: directory that holds the interface for manipulating the models
- models: directory containing the application
- presentation: directory that represents the applications's presentation layer through which the user will interact
- controllers: directory that holds the handlers and protocols of user interactions
- errors: directory that centralizes the application errors
- helpers: directory containing application helpers
- protocols: directory containing protocol interfaces
- utils: directory that holds general adapters
- infra: directory containing implementations that uses external libraries
- main: directory that represents the application main layer
- adapters: directory containing adapters wich will isolate application of framework dependency
- config: contains configuration files
- factories: directory containing the controllers factories files
- middlewares: contains middlewares of application routes
- routes: directory containing application routes
- server.ts: main application file that starts the server
Layer that instanciates all the other layers. This layer is highly coupled and knows all the others layers
Layer responsible to interface presentation and infra layers with the persistence mechanism
(such as databases)
Application core layer that holds all business rules
Layer responsible to handle
user interactios
Layer containing generic utility files
Layer responsible to communicate with the proper external world dependencies (such criptography library, database engine)