Este é um projeto de receitas full stack que utiliza as seguintes tecnologias:
- Frontend: Next.js com Tailwind CSS e TypeScript
- Backend: Go com Gin-Gonic e GORM
- Banco de Dados: MySQL
- Docker e Docker Compose
O objetivo deste projeto é criar uma aplicação web para gerenciamento de receitas. Os usuários podem visualizar receitas, favoritar suas receitas favoritas e ver quais são as receitas favoritas deles. A aplicação foi desenvolvida utilizando Next.js com Tailwind CSS e TypeScript no frontend, Go com Gin-Gonic e GORM no backend, e o banco de dados MySQL para armazenar as informações das receitas e dos usuários. O Docker e o Docker Compose foram utilizados para facilitar o desenvolvimento e configuração do ambiente.
- Listar receitas: Os usuários podem visualizar uma lista de receitas existentes.
- Favoritar receitas: Os usuários podem marcar as receitas como favoritas.
- Ver receitas favoritas: Os usuários podem ver quais são as receitas que eles favoritaram.
- Cadastrar usuário: Os usuários podem criar uma conta para acessar a aplicação.
-
Frontend:
- Next.js: Um framework React para construção de interfaces web.
- Tailwind CSS: Uma biblioteca de CSS utilitária para estilização rápida e responsiva.
- TypeScript: Uma linguagem de programação para adicionar tipagem estática ao JavaScript.
- React Hook Form: Uma biblioteca para criação de formulários com validação.
- Zod: Uma biblioteca de validação de esquemas para TypeScript.
-
Backend:
- Go: Uma linguagem de programação eficiente e concorrente para desenvolvimento de APIs e serviços web.
- Gin-Gonic: Um framework web leve para criar APIs em Go.
- GORM: Uma biblioteca ORM para Go, que facilita a interação com bancos de dados relacionais.
- JWT: Um método seguro para autenticação e controle de acesso.
- API RESTful: Utilização de endpoints para comunicação entre frontend e backend.
-
Banco de Dados:
- MySQL: Sistema de gerenciamento de banco de dados relacional.
-
Testes
- Jest: Um framework de teste JavaScript para testes unitários e de integração.
- React Testing Library: Uma biblioteca para testar componentes React de forma simplificada.
-
Docker e Docker Compose:
- Docker: Uma plataforma para desenvolvimento, envio e execução de aplicativos utilizando containers.
- Docker Compose: Uma ferramenta para definir e executar aplicativos Docker multi-container.
Antes de iniciar o projeto, certifique-se de ter as seguintes ferramentas instaladas:
- Docker: Versão 24.0.0 ou superior.
- Docker Compose: Versão 2.18.1 ou superior.
Para configurar o ambiente de desenvolvimento utilizando o Docker Compose, siga os passos abaixo:
- Clone o repositório do projeto:
git clone git@github.com:Josieljcc/recipe-app-full-stack.git
- Acesse a pasta do projeto:
cd recipe-app-full-stack
- Execute o comando para criar e iniciar os containers.
docker-compose up -d
Os containers Docker serão configurados com todas as dependências necessárias para o frontend, backend e banco de dados.
O projeto utiliza um script em Go para ler um arquivo CSV com dados de receitas e populá-los no banco de dados MySQL. O script está localizado no diretório src/database/csvRead/csvRead.go
do container do backend.
Para executar o script, siga as etapas abaixo:
- Acesse o container do backend:
docker exec -it app_backend /bin/bash
- Navegue até o diretório do script:
cd src/database/csvRead
- Execute o script:
go run csvRead.go
- Acesse a aplicação no navegador:
http://localhost:3000
O script irá ler o arquivo CSV e popular o banco de dados com os dados das receitas, por conta da grande quantidade de receitas o script poderá levar alguns minutos, esse tempo pode variar dependendo do computador que vai executar o scrip.
Se você deseja contribuir para este projeto, sinta-se à vontade para abrir um Pull Request. Certifique-se de descrever detalhadamente as alterações propostas.
Este projeto está licenciado sob a MIT License.