Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Gastrô
  • Wiki
  • Wiki
  • Codigo

Codigo · Changes

Page history
Update Codigo: tags authored Apr 03, 2025 by Guilherme Melos Vieira's avatar Guilherme Melos Vieira
Show whitespace changes
Inline Side-by-side
Codigo.md
View page @ 27094f97
<table> <table>
<tr> <tr>
<th> [Home](home) </th> <th>
<th> [Escopo e Cronograma](escopo e cronograma) </th>
<th> [Processo](processo) </th> [Home](home)
<th> [Design/Mockups](design/mockups) </th> </th>
<th> [Configuração](configuracao) </th> <th>
<th> [Arquitetura](arquitetura) </th>
<th> [Infra](infraestrutura) </th> [Escopo e Cronograma](escopo%20e%20cronograma)
<th> [Código](codigo) </th> </th>
<th> [BD](banco de dados) </th> <th>
</tr>
[Processo](processo)
</th>
<th>
[Design/Mockups](design/mockups)
</th>
<th>
[Configuração](configuracao)
</th>
<th>
[Arquitetura](arquitetura)
</th>
<th>
[Infra](infraestrutura)
</th>
<th>
[Código](codigo)
</th>
<th>
[BD](banco%20de%20dados)
</th>
</tr>
</table> </table>
A divisão da documentação vai ser feita como é feito no projeto: Backend e Frontend A divisão da documentação vai ser feita como é feito no projeto: Backend e Frontend
...@@ -19,31 +46,32 @@ A divisão da documentação vai ser feita como é feito no projeto: Backend e F ...@@ -19,31 +46,32 @@ A divisão da documentação vai ser feita como é feito no projeto: Backend e F
## BACKEND ## BACKEND
## Estrutura de Pastas ## Estrutura de Pastas
Essa foi a estrutura de pastas que escolhemos utilizar: Essa foi a estrutura de pastas que escolhemos utilizar:
- 📂 bite-alegre-backend - :open_file_folder: bite-alegre-backend
- 📂 .husky - :open_file_folder: .husky
- 📂 node_modules - :open_file_folder: node_modules
- 📂 prisma - :open_file_folder: prisma
- 📂 src - :open_file_folder: src
- 📂 [controllers](#controllers) - :open_file_folder: [controllers](#controllers)
- 📂 [repositories](#repositories) - :open_file_folder: [repositories](#repositories)
- 📂 [routes](#routes) - :open_file_folder: [routes](#routes)
- 📂 [services](#services) - :open_file_folder: [services](#services)
- 📂 [utils](#utils) - :open_file_folder: [utils](#utils)
- 📄 [index.ts](#index-ts) - :page_facing_up: [index.ts](#index-ts)
- 📄 .dockerignore - :page_facing_up: .dockerignore
- 📄 .env - :page_facing_up: .env
- 📄 .gitignore - :page_facing_up: .gitignore
- 📄 .prettierignore - :page_facing_up: .prettierignore
- 📄 .prettierrc.json - :page_facing_up: .prettierrc.json
- 📄 docker-compose.yml - :page_facing_up: docker-compose.yml
- 📄 Dockerfile - :page_facing_up: Dockerfile
- 📄 eslint.config.js - :page_facing_up: eslint.config.js
- 📄 package-lock.json - :page_facing_up: package-lock.json
- 📄 package.json - :page_facing_up: package.json
- 📄 README.md - :page_facing_up: README.md
- 📄 tsconfig.json - :page_facing_up: tsconfig.json
--- ---
...@@ -51,59 +79,61 @@ Essa foi a estrutura de pastas que escolhemos utilizar: ...@@ -51,59 +79,61 @@ Essa foi a estrutura de pastas que escolhemos utilizar:
A estrutura do projeto segue o padrão MVC e uma abordagem modular, garantindo melhor organização, manutenção e escalabilidade da aplicação. A estrutura do projeto segue o padrão MVC e uma abordagem modular, garantindo melhor organização, manutenção e escalabilidade da aplicação.
Cada seção a seguir detalha os componentes principais de cada diretório e como eles se integram para formar a aplicação. 📌 Cada seção a seguir detalha os componentes principais de cada diretório e como eles se integram para formar a aplicação. :pushpin:
### :open_file_folder: Controllers
### 📂 Controllers
A pasta `controllers` contém os controladores da aplicação. Os controladores são responsáveis por receber as requisições dos clientes (frontend do App), processar os dados e chamar os serviços necessários para executar a lógica de negócio. Atuam como intermediários entre as rotas e os serviços. A pasta `controllers` contém os controladores da aplicação. Os controladores são responsáveis por receber as requisições dos clientes (frontend do App), processar os dados e chamar os serviços necessários para executar a lógica de negócio. Atuam como intermediários entre as rotas e os serviços.
Aqui estão os controllers e seus métodos: Aqui estão os controllers e seus métodos:
- [Restaurant Controller](#restaurant-controller) - [Restaurant Controller](#restaurant-controller)
- [Tag Controller](#tag-controller) - [Tag Controller](#tag-controller)
- [User Preferences Controller](#user-preferences-controller) - [User Preferences Controller](#user-preferences-controller)
- [User Controller](#user-controller) - [User Controller](#user-controller)
#### 📄 Restaurant Controller (`restaurant-controller.ts`) #### :page_facing_up: Restaurant Controller (`restaurant-controller.ts`)
##### :tools: Métodos
##### 🛠 Métodos - **`create(req: Request, res: Response)`** Cria o restaurante;
- **`create(req: Request, res: Response)`**
Cria o restaurante;
**Parâmetros:** **Parâmetros:**
- `req` (Request) Requisição http - `req` (Request) Requisição http
- `res` (Response) Resposta http - `res` (Response) Resposta http
- **`list(req:Request, res: Response)`** Retorna todos os restaurantes;
- **`list(req:Request, res: Response)`** **Parâmetros:**
Retorna todos os restaurantes;
**Parâmetros:**
- `req` (Request) Requisição http - `req` (Request) Requisição http
- `res` (Response) Resposta http - `res` (Response) Resposta http
- **`find(req:Request, res: Response)`** Procura um restaurante pelo seu id;
- **`find(req:Request, res: Response)`** **Parâmetros:**
Procura um restaurante pelo seu id;
**Parâmetros:**
- `req` (Request) Requisição http - `req` (Request) Requisição http
- `res` (Response) Resposta http - `res` (Response) Resposta http
---
#### :page_facing_up: Tag Controller (`tag-controller.ts`)
--- ##### :tools: Métodos
#### 📄 Tag Controller (`tag-controller.ts`) - **`list(req: Request, res: Response)`**\
Retorna as tags de acordo com o tipo informado;
##### 🛠 Métodos **Parâmetros:**
list: Retorna todas as tags. - `req` (Request) Requisição http contendo o parâmetro `type`, que define o tipo de tags a serem retornadas
- `res` (Response) Resposta http
--- ---
#### 📄 User Preferences Controller (`user-preferences-controller.ts`) #### :page_facing_up: User Preferences Controller (`user-preferences-controller.ts`)
Gerencia as requisições relacionadas às preferências dos usuários. Gerencia as requisições relacionadas às preferências dos usuários.
##### 🛠 Métodos ##### :tools: Métodos
- **`listByUserId(req: Request, res: Response)`** - **`listByUserId(req: Request, res: Response)`**\
Retorna as preferências de um usuário com base no seu ID. Retorna as preferências de um usuário com base no seu ID.
**Parâmetros:** **Parâmetros:**
...@@ -114,6 +144,7 @@ Gerencia as requisições relacionadas às preferências dos usuários. ...@@ -114,6 +144,7 @@ Gerencia as requisições relacionadas às preferências dos usuários.
- `500 Internal Server Error` – Falha ao recuperar as preferências do usuário. - `500 Internal Server Error` – Falha ao recuperar as preferências do usuário.
**Exemplo de resposta:** **Exemplo de resposta:**
```json ```json
{ {
"id": "123e4567-e89b-12d3-a456-426614174000", "id": "123e4567-e89b-12d3-a456-426614174000",
...@@ -130,15 +161,17 @@ Gerencia as requisições relacionadas às preferências dos usuários. ...@@ -130,15 +161,17 @@ Gerencia as requisições relacionadas às preferências dos usuários.
} }
] ]
} }
```
--- ---
#### 📄 User Controller (`user-controller.ts`) #### :page_facing_up: User Controller (`user-controller.ts`)
Gerencia as requisições relacionadas aos usuários. Gerencia as requisições relacionadas aos usuários.
##### 🛠 Métodos ##### :tools: Métodos
- **`create(req: Request, res: Response)`** - **`create(req: Request, res: Response)`**\
Cria um novo usuário com os dados fornecidos no corpo da requisição. Cria um novo usuário com os dados fornecidos no corpo da requisição.
**Parâmetros:** **Parâmetros:**
...@@ -180,193 +213,227 @@ Gerencia as requisições relacionadas aos usuários. ...@@ -180,193 +213,227 @@ Gerencia as requisições relacionadas aos usuários.
"profilePhoto": "https://example.com/photo.jpg", "profilePhoto": "https://example.com/photo.jpg",
"createdAt": "2025-03-30T20:00:00.000Z" "createdAt": "2025-03-30T20:00:00.000Z"
} }
```
--- ---
### 📂 Repositories ### :open_file_folder: Repositories
A pasta `repositories` armazena os repositórios da aplicação, que são responsáveis por interagir com o banco de dados. Aqui se definem métodos para buscar, salvar e modificar dados usando Prisma(ORM). A pasta `repositories` armazena os repositórios da aplicação, que são responsáveis por interagir com o banco de dados. Aqui se definem métodos para buscar, salvar e modificar dados usando Prisma(ORM).
Aqui estão os repositórios disponíveis e seus métodos: Aqui estão os repositórios disponíveis e seus métodos:
- [Restaurant Repository](#restaurant-repository) - [Restaurant Repository](#restaurant-repository)
- [Tag Repository](#tag-repository) - [Tag Repository](#tag-repository)
- [User Preferences Repository](#user-preferences-repository) - [User Preferences Repository](#user-preferences-repository)
- [User Repository](#user-repository) - [User Repository](#user-repository)
#### 📄 Restaurant Repository (`restaurant-repository.ts`) #### :page_facing_up: Restaurant Repository (`restaurant-repository.ts`)
Repositório responsável pelo gerenciamento dos dados dos restaurantes(criação, buscas, etc.).
##### 🛠 Métodos
- **`create( profilePhoto, bannerPhoto, name, description, address, email, password, averagePrice, phone)`**
Cria um novo restaurante e salva no banco de dados.
- **`findOne(id: string)`** Repositório responsável pelo gerenciamento dos dados dos restaurantes(criação, buscas, etc.).
Busca por um restaurante pelo seu id.
- **`findAll()`**
Busca todos os restaurantes existentes.
- **`findByEmail(email: string)`** ##### :tools: Métodos
Busca por um restaurante pelo seu email.
- **`findTagsByIds(tagIds: string[])`** - **`create( profilePhoto, bannerPhoto, name, description, address, email, password, averagePrice, phone)`** Cria um novo restaurante e salva no banco de dados.
Busca por todos os restaurantes com as tags informadas pelos seu ids. - **`findOne(id: string)`** Busca por um restaurante pelo seu id.
- **`findAll()`** Busca todos os restaurantes existentes.
- **`findByEmail(email: string)`** Busca por um restaurante pelo seu email.
- **`findTagsByIds(tagIds: string[])`** Busca por todos os restaurantes com as tags informadas pelos seu ids.
--- ---
#### 📄 Tag Repository (`tag-repository.ts`) #### :page_facing_up: Tag Repository (`tag-repository.ts`)
##### 🛠 Métodos ##### :tools: Métodos
- **`findAll(type?: string)`**\
Retorna todas as tags. Se o parâmetro `type` for informado, filtra as tags pelo tipo correspondente.\
**Parâmetros:**
- `type` (opcional) – _string_ representando o tipo de tag para filtragem.
- **`findByType(type: TagType)`**\
Retorna as tags que correspondem ao tipo especificado.\
**Parâmetros:**
- `type` – _TagType_ (enum) que define o tipo da tag a ser retornada.
- **`findById(id: string)`**\
Busca uma tag pelo seu id.\
**Parâmetros:**
- `id` – _string_ que representa o identificador único da tag.
- **`getAllowedTagTypes()`**\
Retorna um array com todos os tipos permitidos de tags, conforme definidos no enum `TagType`.
--- ---
#### 📄 User Preferences Repository (`user-preferences-repository.ts`) #### :page_facing_up: User Preferences Repository (`user-preferences-repository.ts`)
Gerencia as preferências dos usuários. Gerencia as preferências dos usuários.
##### 🛠 Métodos ##### :tools: Métodos
- **`getUserPreferencesById(id: string)`**
- **`getUserPreferencesById(id: string)`**\
Pega todas as preferências de um usuário. Pega todas as preferências de um usuário.
--- ---
#### 📄 User Repository (`user-repository.ts`) #### :page_facing_up: User Repository (`user-repository.ts`)
Repositório responsável pelo gerenciamento dos dados dos usuários(criação, buscas, etc.). Repositório responsável pelo gerenciamento dos dados dos usuários(criação, buscas, etc.).
##### 🛠 Métodos ##### :tools: Métodos
- **`createUser( profilePhoto: string, name: string, nickname: string, email: string, hashedPassword: string, phone: string, gender: Gender, birthDate: Date)`**
Cria um novo usuário e salva no banco com a senha criptografada.
- **`findByEmail(email: string)`** - **`createUser( profilePhoto: string, name: string, nickname: string, email: string, hashedPassword: string, phone: string, gender: Gender, birthDate: Date)`**\
Cria um novo usuário e salva no banco com a senha criptografada.
- **`findByEmail(email: string)`**\
Busca um usuário pelo e-mail. Busca um usuário pelo e-mail.
- **`findAll()`**\
- **`findAll()`**
Busca todos os usuários existentes. Busca todos os usuários existentes.
- **`findById(id: string)`**\
- **`findById(id: string)`**
Busca um usuário pelo seu Id. Busca um usuário pelo seu Id.
--- ---
### 📂 Routes ### :open_file_folder: Routes
A pasta `routes` contém as definições de rotas da API. Essas rotas direcionam as requisições para os respectivos controladores. Para cada entidade cria-se um arquivo de rota separado para organizar melhor o código. Toda as rotas da aplicação se iniciam por `/api` A pasta `routes` contém as definições de rotas da API. Essas rotas direcionam as requisições para os respectivos controladores. Para cada entidade cria-se um arquivo de rota separado para organizar melhor o código. Toda as rotas da aplicação se iniciam por `/api`
Aqui estão as routes disponíveis e seus métodos: Aqui estão as routes disponíveis e seus métodos:
- [Restaurant Route](#restaurant-route) - [Restaurant Route](#restaurant-route)
- [Tag Route](#tag-route) - [Tag Route](#tag-route)
- [User Preferences Route](#user-preferences-route) - [User Preferences Route](#user-preferences-route)
- [User Route](#user-route) - [User Route](#user-route)
#### 📄 Restaurant Route (`restaurant-route.ts`) #### :page_facing_up: Restaurant Route (`restaurant-route.ts`)
##### 🛤️ Rotas ##### :railway_track:️ Rotas
- **`GET`** `/restaurants`
Retorna todos os restaurantes existentes.
- **`POST`** `/restaurants` - **`GET`** `/restaurants`\
Retorna todos os restaurantes existentes.
- **`POST`** `/restaurants`\
Cria um novo restaurante. Cria um novo restaurante.
- **`GET`** `/restaurants/:id`\
- **`GET`** `/restaurants/:id`
Retorna um restaurante com o id especificado. Retorna um restaurante com o id especificado.
--- ---
#### 📄 Tag Route (`tag-route.ts`) #### :page_facing_up: Tag Route (`tag-route.ts`)
##### :railway_track:️ Rotas
##### 🛤️ Rotas - **GET `/tags/:type?`**\
Rota responsável por retornar as tags, utilizando o método `list` do `TagController`.\
**Detalhes:**
- Se o parâmetro `type` for fornecido, a rota repassa esse valor para o controlador filtrar as tags conforme o tipo informado.
- Se o parâmetro não for especificado, o controlador retorna todas as tags disponíveis.
--- ---
#### 📄 User Preferences Route (`user-preferences-route.ts`) #### :page_facing_up: User Preferences Route (`user-preferences-route.ts`)
##### 🛤️ Rotas
- **`GET`** `/user_preferences/:user_id`
Descrição: Retorna todas as preferências de um usuário pelo seu ID.
Parâmetros: `user_id` (string) – Obrigatório
##### :railway_track:️ Rotas
- **`GET`** `/user_preferences/:user_id`\
Descrição: Retorna todas as preferências de um usuário pelo seu ID.\
Parâmetros: `user_id` (string) – Obrigatório
--- ---
#### 📄 User Route (`user-route.ts`) #### :page_facing_up: User Route (`user-route.ts`)
##### 🛤️ Rotas
- **`POST`** `/users` ##### :railway_track:️ Rotas
Descrição: cria um novo usuário.
- **`POST`** `/users`\
Descrição: cria um novo usuário.
--- ---
### 📂 Services ### :open_file_folder: Services
A pasta `services` contém a lógica(regra de negócio) da aplicação. Os serviços são responsáveis por processar os dados antes de serem armazenados ou retornados ao usuário. Servem para manter os controladores mais enxutos e organizados. A pasta `services` contém a lógica(regra de negócio) da aplicação. Os serviços são responsáveis por processar os dados antes de serem armazenados ou retornados ao usuário. Servem para manter os controladores mais enxutos e organizados.
Aqui estão os services disponíveis e seus métodos: Aqui estão os services disponíveis e seus métodos:
- [Restaurant Service](#restaurant-service) - [Restaurant Service](#restaurant-service)
- [Tag Service](#tag-service) - [Tag Service](#tag-service)
- [User Preferences Service](#user-preferences-service) - [User Preferences Service](#user-preferences-service)
- [User Service](#user-service) - [User Service](#user-service)
#### 📄 Restaurant Service (`restaurant-service.ts`) #### :page_facing_up: Restaurant Service (`restaurant-service.ts`)
Contém métodos para gerenciar restaurantes Contém métodos para gerenciar restaurantes
##### 🛠 Métodos ##### :tools: Métodos
- **`createRestaurant(input: CreateRestaurantDto)`**
Cria um novo restaurante no sistema. O método realiza as seguintes etapas: - **`createRestaurant(input: CreateRestaurantDto)`** Cria um novo restaurante no sistema. O método realiza as seguintes etapas:
1. Verifica se os campos name, address, email, password e tagsIds foram preenchidos 1. Verifica se os campos name, address, email, password e tagsIds foram preenchidos
2. Se o e-mail já estiver em uso, lança um erro indicando que o e-mail já está sendo utilizado. 2. Se o e-mail já estiver em uso, lança um erro indicando que o e-mail já está sendo utilizado.
3. Se uma das tags não for encrontrada lança um erro indicando que uma das tags não foi encontrada 3. Se uma das tags não for encrontrada lança um erro indicando que uma das tags não foi encontrada
4. O novo restaurante é criado no banco de dados com as informações fornecidas. 4. O novo restaurante é criado no banco de dados com as informações fornecidas.
- **`getRestaurants()`** Retorna todos os restaurantes com os campos: id, description, profilePhoto, bannerPhoto, name, address, averagePrice e phone.
- **`getRestaurantById(id: string)`** Retorna os campos: id, description, profilePhoto, bannerPhoto, name, address, averagePrice e phone de um restaurante com o id especificado.
- **`getRestaurants()`** ---
Retorna todos os restaurantes com os campos: id, description, profilePhoto, bannerPhoto, name, address, averagePrice e phone.
- **`getRestaurantById(id: string)`** #### :page_facing_up: Tag Service (`tag-service.ts`)
Retorna os campos: id, description, profilePhoto, bannerPhoto, name, address, averagePrice e phone de um restaurante com o id especificado.
--- ##### :tools: Métodos
#### 📄 Tag Service (`tag-service.ts`) - **`getTags(type?: string)`**\
Método assíncrono responsável por retornar as tags.\
**Parâmetros:**
- `type` (opcional) – _string_ que representa o tipo de tag desejado.
##### 🛠 Métodos **Funcionamento:**
- **Com filtro:** Se o parâmetro `type` for informado, o método:
1. Converte o valor para letras maiúsculas (`formattedType`);
2. Obtém os tipos permitidos por meio de `TagRepository.getAllowedTagTypes()`;
3. Verifica se o `formattedType` está incluído nos tipos permitidos.
- Se não estiver, lança um erro informando `Invalid tag type: ${type}`;
- Caso esteja, retorna as tags filtradas utilizando `TagRepository.findByType(formattedType as TagType)`.
- **Sem filtro:** Se `type` não for informado, retorna todas as tags por meio de `TagRepository.findAll()`.
--- ---
#### 📄 User Preferences Service (`user-preferences-service.ts`) #### :page_facing_up: User Preferences Service (`user-preferences-service.ts`)
Contém métodos para gerenciar a criação de usuários, incluindo a verificação de duplicidade de e-mails e a criação de um novo usuário no banco de dados. Contém métodos para gerenciar a criação de usuários, incluindo a verificação de duplicidade de e-mails e a criação de um novo usuário no banco de dados.
##### 🛠 Métodos ##### :tools: Métodos
- **`createUser(profilePhoto: string, name: string, nickname: string, email: string, password: string, phone: string, gender: Gender, birthDate: Date)`** - **`createUser(profilePhoto: string, name: string, nickname: string, email: string, password: string, phone: string, gender: Gender, birthDate: Date)`**\
Cria um novo usuário no sistema. O método realiza as seguintes etapas: Cria um novo usuário no sistema. O método realiza as seguintes etapas:
1. Verifica se já existe um usuário com o e-mail fornecido. 1. Verifica se já existe um usuário com o e-mail fornecido.
2. Se o e-mail já estiver em uso, lança um erro indicando que o e-mail já está sendo utilizado. 2. Se o e-mail já estiver em uso, lança um erro indicando que o e-mail já está sendo utilizado.
3. Se o e-mail não estiver em uso, a senha fornecida é criptografada. 3. Se o e-mail não estiver em uso, a senha fornecida é criptografada.
4. O novo usuário é criado no banco de dados com as informações fornecidas. 4. O novo usuário é criado no banco de dados com as informações fornecidas.
--- ---
#### 📄 User Service (`user-service.ts`) #### :page_facing_up: User Service (`user-service.ts`)
Contém métodos para gerenciar as preferências dos usuários. Contém métodos para gerenciar as preferências dos usuários.
##### 🛠 Métodos ##### :tools: Métodos
- **`getUserPreferences(id: string)`** - **`getUserPreferences(id: string)`**\
Recupera as preferências associadas a um usuário com base no ID fornecido. O método realiza as seguintes etapas: Recupera as preferências associadas a um usuário com base no ID fornecido. O método realiza as seguintes etapas:
1. Verifica se o usuário com o ID fornecido existe no banco de dados. 1. Verifica se o usuário com o ID fornecido existe no banco de dados.
2. Se o usuário não for encontrado, retorna uma mensagem de erro indicando que o usuário não existe. 2. Se o usuário não for encontrado, retorna uma mensagem de erro indicando que o usuário não existe.
3. Se o usuário for encontrado, o método busca as preferências associadas a esse usuário. 3. Se o usuário for encontrado, o método busca as preferências associadas a esse usuário.
4. Caso as preferências existam, elas são retornadas. Se não houver preferências, retorna `null`. 4. Caso as preferências existam, elas são retornadas. Se não houver preferências, retorna `null`.
--- ---
### 📂 Utils ### :open_file_folder: Utils
A pasta `utils` armazena funções auxiliares e utilitárias que podem ser reutilizadas em diferentes partes do código. Aqui você pode colocar funções genéricas, como formatação de datas, manipulação de strings e logs. A pasta `utils` armazena funções auxiliares e utilitárias que podem ser reutilizadas em diferentes partes do código. Aqui você pode colocar funções genéricas, como formatação de datas, manipulação de strings e logs.
💡 **Exemplo:** :bulb: **Exemplo:**\
Um arquivo `formatDate.ts` pode conter uma função para converter um `Date` em uma string no formato `dd/mm/yyyy`. Um arquivo `formatDate.ts` pode conter uma função para converter um `Date` em uma string no formato `dd/mm/yyyy`.
--- ---
### 📄 Index.ts ### :page_facing_up: Index.ts
O `index.ts` é o ponto de entrada da aplicação. Aqui se inicia o servidor Express, conecta-se ao banco de dados e carrega todas as rotas. O `index.ts` é o ponto de entrada da aplicação. Aqui se inicia o servidor Express, conecta-se ao banco de dados e carrega todas as rotas.
--- ---
\ No newline at end of file
Clone repository
  • Arquitetura
  • BD
  • BancoDeDados
  • Codigo
  • Design
    • Mockups
  • EAP
  • Escopo e Cronograma
  • Infraestrutura
  • Processo
  • Testes automatizados
  • banco de dados
  • configuracao
  • Home