https://github.com/244walyson/expert
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (1.7%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: 244Walyson
- Language: Vue
- Default Branch: main
- Size: 1.48 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
Readme.md
Vehicle Catalog Application
Este repositório contém a aplicação de catálogo de veículos, que permite o gerenciamento de veículos e marcas. O sistema permite realizar operações como adicionar, editar e remover veículos e marcas, além de consultar informações sobre eles.
Arquitetura
A arquitetura adotada é baseada no padrão Clean Architecture, com o objetivo de garantir alta manutenibilidade, testabilidade e escalabilidade. O backend segue uma estrutura bem definida, separando as responsabilidades de forma clara entre as camadas.
Camadas da Arquitetura
Camada de Entidades: Contém as entidades principais do domínio, como
VehicleeBrand, que representam o núcleo do sistema. Estas entidades são independentes de qualquer framework ou banco de dados.Camada de Casos de Uso (Use Cases): Contém a lógica de negócios do sistema, onde as regras de processamento de dados e decisões de negócios são definidas. Cada caso de uso é responsável por uma funcionalidade específica, como "Adicionar Veículo", "Editar Marca", etc.
Camada de Interface de Entrada (API): Exposta através de uma API REST, que comunica com a camada de casos de uso para processar as solicitações do cliente. Aqui, usamos o Fastify como framework para construir a API devido à sua alta performance.
Camada de Repositórios (Infraestrutura): Responsável por fornecer uma abstração entre o código de negócios e a persistência de dados. Utiliza o Prisma ORM para interagir com o banco de dados MySQL.
Camada de Interface de Saída (Externa): Aqui estão integrados serviços externos, como por exemplo, o gerenciamento de imagens ou comunicação com outros sistemas. A camada externa também pode incluir configurações de deploy e outros aspectos de infraestrutura.
Diagrama C4
A arquitetura é visualizada no diagrama C4, que mostra como os sistemas e componentes se interagem.
Diagrama de Contexto: Representa a aplicação de catálogo de veículos e sua interação com os usuários e sistemas externos.

Diagrama de Containers: Exibe a aplicação dividida em containers, mostrando como a API, banco de dados, e outros componentes se comunicam.
Diagrama de Componentes: Mostra os principais componentes internos da aplicação, como o servidor Fastify, os casos de uso e os repositórios.

Diagrama de Código: Fornece uma visão detalhada do código para entender a estrutura interna do sistema.
Diagrama de Deploy
O diagrama de deploy mostra como a aplicação é configurada e implantada no ambiente de produção, incluindo detalhes sobre o uso de Docker e Kubernetes para gerenciamento e escalabilidade.

Deploy
A aplicação é provisionada e implantada usando Docker e Kubernetes.
Docker: Cada componente (backend e frontend) é containerizado usando Docker. Arquivos
Dockerfileestão localizados nas pastasfrontend/ebackend/para construir as imagens Docker.Kubernetes: A aplicação é orquestrada com Kubernetes. Os arquivos de configuração estão localizados em
helm-files/, que contêm os manifests do Helm para configurar o backend, frontend, e os serviços necessários no cluster Kubernetes.Banco de Dados: O banco de dados utilizado é o MySQL, e a configuração do Prisma está presente na pasta
prisma/.
Como rodar a aplicação localmente
Para rodar a aplicação localmente, siga os seguintes passos:
- Clone o repositório:
bash
git clone git@github.com:244Walyson/expert.git vehicle-catalog
cd vehicle-catalog
suba usando docker compose
bash
docker compose up --build -d
obs: O comando acima irá subir o banco de dados e a aplicação, para acessar a api acesse http://localhost:3000
será nescessarion rodar o frontend manualmente fora do docker, pois falta configuração url da api no frontend para isso
bash
cd frontend npm i npm run dev
a aplicação estará disponível em http://localhost:5173
Owner
- Login: 244Walyson
- Kind: user
- Repositories: 1
- Profile: https://github.com/244Walyson
GitHub Events
Total
- Delete event: 2
- Push event: 3
- Create event: 6
Last Year
- Delete event: 2
- Push event: 3
- Create event: 6
Dependencies
- node 20 build
- mysql latest
- nginx alpine build
- node 18 build
- 248 dependencies
- prisma ^5.22.0 development
- ts-node ^10.9.2 development
- tsx ^4.19.2 development
- typescript ^5.7.2 development
- @aws-sdk/client-s3 ^3.722.0
- @fastify/cors ^10.0.2
- @fastify/multipart ^9.0.1
- @prisma/client ^5.22.0
- fastify ^5.2.0
- nodemon ^3.1.9
- pino ^9.6.0
- pino-pretty ^13.0.0
- 469 dependencies
- @prettier/plugin-pug ^3.2.0 development
- @tsconfig/node22 ^22.0.0 development
- @types/lodash ^4.17.14 development
- @types/node ^22.10.5 development
- @vitejs/plugin-vue ^5.2.1 development
- @vue/eslint-config-prettier ^10.1.0 development
- @vue/eslint-config-typescript ^14.1.3 development
- @vue/tsconfig ^0.7.0 development
- autoprefixer ^10.4.20 development
- eslint ^9.14.0 development
- eslint-plugin-vue ^9.30.0 development
- npm-run-all2 ^7.0.2 development
- postcss ^8.4.49 development
- prettier ^3.4.2 development
- tailwindcss ^3.4.17 development
- typescript ~5.6.3 development
- vite ^6.0.5 development
- vite-plugin-vue-devtools ^7.6.8 development
- vue-tsc ^2.1.10 development
- @vueuse/core ^12.3.0
- axios ^1.7.9
- class-variance-authority ^0.7.1
- clsx ^2.1.1
- lodash ^4.17.21
- lucide-vue-next ^0.469.0
- radix-vue ^1.9.12
- tailwind-merge ^2.6.0
- tailwindcss-animate ^1.0.7
- vue ^3.5.13
- vue-router ^4.5.0