https://github.com/244walyson/expert

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
Last synced: 10 months ago · JSON representation

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
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme

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

  1. Camada de Entidades: Contém as entidades principais do domínio, como Vehicle e Brand, que representam o núcleo do sistema. Estas entidades são independentes de qualquer framework ou banco de dados.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  • context.png

  • 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.

  • component.png

  • 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.

k8s-deploy.png

Deploy

A aplicação é provisionada e implantada usando Docker e Kubernetes.

  1. Docker: Cada componente (backend e frontend) é containerizado usando Docker. Arquivos Dockerfile estão localizados nas pastas frontend/ e backend/ para construir as imagens Docker.

  2. 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.

  3. 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:

  1. 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

GitHub Events

Total
  • Delete event: 2
  • Push event: 3
  • Create event: 6
Last Year
  • Delete event: 2
  • Push event: 3
  • Create event: 6

Dependencies

backend/Dockerfile docker
  • node 20 build
docker-compose.yml docker
  • mysql latest
frontend/Dockerfile docker
  • nginx alpine build
  • node 18 build
backend/package-lock.json npm
  • 248 dependencies
backend/package.json npm
  • 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
frontend/package-lock.json npm
  • 469 dependencies
frontend/package.json npm
  • @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