Esse repositório tem como objetivo o desenvolvimento de um projeto colaborativo com tema de loja de pets com a utilização de um padrão de projeto proposto na matéria de Engenharia de software da UTFPR.
O padrão de projeto escolhido foi o Visitor.
O Visitor é um padrão comportamental que permite adicionar novas operações a uma estrutura de objetos sem modificar suas classes. Ele é útil quando se deseja separar algoritmos da estrutura de dados, facilitando a manutenção e a extensão do código.
No contexto deste projeto, o padrão Visitor é utilizado para exportação de pedidos e produtos em diferentes formatos, como PDF e Excel, sem precisar modificar as classes de domínio (Order, Product). Cada formato de exportação é tratado por um visitante específico (PDFOrderVisitor, ExcelOrderVisitor), garantindo flexibilidade e modularidade.
Ambos os repositórios foram criados utilizando Typescript e o banco de dados escolhido foi MySQL.
Um docker-compose.yml está disponível na pasta do backend para facilitar o desenvolvimento, não necessitando muitas configurações para acessar o banco.
Para front-end foram utilizadas as seguintes tecnologias:
- React
- Material-ui
- Axios
Para back-end foram utilizados:
- Fastify
- Prisma
- Instalar o node 20.10.0
- Instalar docker e docker compose
- Instalar dependencias no back e no front utilizando o comando
yarn - Criar o arquivo
.envnas pastas do backend e frontend baseados no arquivoenv.example - Na pasta backend utilizar o comando
docker compose uppara disponibilizar o banco - Nas pastas de cada projeto utilizar o comando
yarn devpara disponibilizar os serviços na máquina local
Verificar Contributing.md para mais informações