... | @@ -27,11 +27,38 @@ Esta seção irá abordar os detalhes sobre a arquitetura selecionada para o bac |
... | @@ -27,11 +27,38 @@ Esta seção irá abordar os detalhes sobre a arquitetura selecionada para o bac |
|
**Repositório:** https://tools.ages.pucrs.br/excedentes/excedentes-backend
|
|
**Repositório:** https://tools.ages.pucrs.br/excedentes/excedentes-backend
|
|
|
|
|
|
### Definições de linguagem e bibliotecas
|
|
### Definições de linguagem e bibliotecas
|
|
|
|
<table align="center"><tr><td align="center" >
|
|
|
|
|
|
|
|
![image](uploads/29d80ec1f57449913c6627d579358eb2/image.png)
|
|
|
|
|
|
|
|
Nest (NestJS) é um framework para construção de aplicações eficientes e escaláveis no lado do servidor com Node.js. Ele utiliza JavaScript progressivo, é construído com suporte total a TypeScript (embora ainda permita que desenvolvedores programem em JavaScript puro) e combina elementos de OOP (Programação Orientada a Objetos), FP (Programação Funcional) e FRP (Programação Reativa Funcional).
|
|
|
|
|
|
|
|
<img src="uploads/7029705623cb87afc8dd7026d9df5646/image.png" >
|
|
|
|
|
|
|
|
TypeScript é uma linguagem de programação de código aberto desenvolvida pela Microsoft. É um superconjunto sintático estrito de JavaScript e adiciona tipagem estática opcional à linguagem.
|
|
|
|
|
|
|
|
![image](uploads/9867d4df7634284f2593d81001377256/image.png)
|
|
|
|
|
|
|
|
npm é um gerenciador de pacotes para o Node.JS npm, Inc. é uma subsidiária do GitHub, que fornece hospedagem para desenvolvimento de software e controle de versão com o uso do Git. npm é o gerenciador de pacotes padrão para o ambiente de tempo de execução JavaScript Node.js.
|
|
|
|
|
|
|
|
<img src="uploads/27c280ce5e76e815212b5e7f33ba1fd8/image.png" width="260px">
|
|
|
|
|
|
|
|
O TypeORM é um ORM que pode ser executado em NodeJS, nos navegadores, React Native, NativeScript, Expo e Electron, e pode ser usado com TypeScript e JavaScript. Seu objetivo é sempre suportar os recursos mais recentes do JavaScript e oferecer funcionalidades adicionais que nos ajudam a desenvolver qualquer tipo de aplicação que utilize bancos de dados - desde pequenas aplicações com poucas tabelas até aplicações empresariais de grande escala com múltiplos bancos de dados.
|
|
|
|
|
|
|
|
</table>
|
|
|
|
|
|
### Rotas - Objetos e métodos API
|
|
### Rotas - Objetos e métodos API
|
|
|
|
|
|
### Módulos do Sistema
|
|
### Módulos do Sistema
|
|
|
|
|
|
|
|
- **Api:**
|
|
|
|
- **Auth:**
|
|
|
|
- **Base/Entities:**
|
|
|
|
- **Client:**
|
|
|
|
- **Commons/Validators:**
|
|
|
|
- **ContractorCompanies:**
|
|
|
|
- **Products:**
|
|
|
|
|
|
### Diagrama do Fluxo
|
|
### Diagrama do Fluxo
|
|
|
|
|
|
## Frontend
|
|
## Frontend
|
... | @@ -39,8 +66,54 @@ Esta seção irá abordar os detalhes sobre a arquitetura selecionada para o bac |
... | @@ -39,8 +66,54 @@ Esta seção irá abordar os detalhes sobre a arquitetura selecionada para o bac |
|
**Repositório:** https://tools.ages.pucrs.br/excedentes/excedentes-frontend
|
|
**Repositório:** https://tools.ages.pucrs.br/excedentes/excedentes-frontend
|
|
|
|
|
|
### Definições de Tecnologias
|
|
### Definições de Tecnologias
|
|
|
|
<table align="center"><tr><td align="center" >
|
|
|
|
|
|
|
|
<img src="uploads/b22e4fcf81aff1307bbdb937e32bd080/image.png">
|
|
|
|
|
|
|
|
React é uma biblioteca front-end de JavaScript, utilizada para definir a parte lógica, e criar componentes HTML, para aplicações web de página única.
|
|
|
|
|
|
|
|
![image](uploads/d65078e8aaea73bd7e19a1250bafe54c/image.png)
|
|
|
|
|
|
|
|
Vite é uma ferramenta de construção front-end moderna que melhora significativamente a experiência de desenvolvimento. Ele serve código via módulos ES nativos, permitindo um início rápido do servidor e substituição de módulos a quente (HMR). Durante o desenvolvimento, o Vite compila apenas o módulo atual quando um arquivo é editado, em vez de empacotar todos os módulos antecipadamente.
|
|
|
|
|
|
|
|
![image](uploads/e0fc9642a7fde5b940f9c2e57107ba9d/image.png)
|
|
|
|
|
|
|
|
Tailwind CSS é uma estrutura CSS de código aberto. A principal característica desta biblioteca é que, ao contrário de outros frameworks CSS como Bootstrap, ela não fornece uma série de classes predefinidas para elementos como botões ou tabelas.
|
|
|
|
|
|
|
|
<img src="uploads/7029705623cb87afc8dd7026d9df5646/image.png" >
|
|
|
|
|
|
|
|
TypeScript é uma linguagem de programação de código aberto desenvolvida pela Microsoft. É um superconjunto sintático estrito de JavaScript e adiciona tipagem estática opcional à linguagem.
|
|
|
|
|
|
|
|
![image](uploads/13510ec0ada0259579da1083a0911b7a/image.png)
|
|
|
|
|
|
|
|
Chakra UI é uma biblioteca de componentes simples, modular e acessível que oferece os blocos de construção necessários para desenvolver suas aplicações React.
|
|
|
|
|
|
|
|
![image](uploads/5a6773c0551ccbefa5cdf20d3160c4c9/image.png)
|
|
|
|
|
|
|
|
O Zod é uma biblioteca de declaração e validação de dados, ou “schema validation” em TypeScript. Dessa forma, é possível criar uma estrutura com os requisitos de dados que você deseja validar. Ele permite definir tipos de dados utilizando uma sintaxe concisa, garantindo que apenas dados válidos sejam aceitos, o que assegura a segurança do código. Além disso, possui integração com o TypeScript, permitindo o uso de tipos estáticos e inferência de tipos.
|
|
|
|
|
|
|
|
![image](uploads/9867d4df7634284f2593d81001377256/image.png)
|
|
|
|
|
|
|
|
npm é um gerenciador de pacotes para o Node.JS npm, Inc. é uma subsidiária do GitHub, que fornece hospedagem para desenvolvimento de software e controle de versão com o uso do Git. npm é o gerenciador de pacotes padrão para o ambiente de tempo de execução JavaScript Node.js.
|
|
|
|
|
|
|
|
![image](uploads/0f27e0f8288aa20480636b5c79ab1a30/image.png)
|
|
|
|
|
|
|
|
Node.js é um software de código aberto, multiplataforma, baseado no interpretador V8 do Google e que permite a execução de códigos JavaScript fora de um navegador web. A principal característica do Node.js é sua arquitetura assíncrona e orientada por eventos.
|
|
|
|
|
|
|
|
</table>
|
|
|
|
|
|
### Módulos do Sistema
|
|
### Módulos do Sistema
|
|
|
|
Estrutra de pastas
|
|
|
|
o nosso sistema foi dividido da seguinte maneira:
|
|
|
|
|
|
|
|
- **App:** Contém os componentes principais do React, como App e o roteador principal.
|
|
|
|
- **Assets/styles:** Diretório para arquivos estáticos, como imagens e estilos globais.
|
|
|
|
- **Components:** Componentes React reutilizáveis utilizados em todo o projeto.
|
|
|
|
- **Config:** Configurações globais do projeto, como as do Axios.
|
|
|
|
- **Core:** Contém tipos essenciais, APIs, modelos e serviços centrais.
|
|
|
|
- **Helpers:** Funções auxiliares para formatação de dados, validações, etc.
|
|
|
|
- **Modules:** Features modulares da aplicação, cada uma com seu próprio contexto, páginas, estilos e tipos.
|
|
|
|
|
|
|
|
|
|
### Diagrama de Componentes
|
|
### Diagrama de Componentes
|
|
|
|
|
... | | ... | |