Licença
- Daily Menu é/será uma aplicação web para cadastro de produtos e organização da sua rotina alimentar. Os principais objetivos do sistema são:
- Antes da autenticação no sistema permitir que o usuário:
- Cadastre usuários no sistema
- Autenticar/autorizar seu usuário através de JWT (fazer login)
- Após autenticação no sistema permitir que o usuário:
- Cadastre produtos
- Crie uma lista de compras de supermercado
- Crie um cardápio para sua rotina alimentar
- Backend: Java 11 com Spring Boot
- Banco de dados: MySQL 8.0.31
- Gerenciamento de projeto: Maven
- Versionamento de banco de dados: Flyway (aprenda mais sobre aqui)
- Documentação de API: Swagger (aprenda mais sobre aqui)
Existem duas formas para você iniciar sua colaboração:
1 - AQUI você encontrará todas as issues que precisam de atenção.
2 - Encontrou um bug, um erro na aplicação ou quer criar uma nova funcionalidade? CRIE uma issue AQUI.
REGRA BÁSICA: Nunca inicie o desenvolvimento de qualquer coisa sem ter uma tarefa vinculada e mantenha o foco no escopo da tarefa!
Siga os passos abaixo para configurar seu ambiente: (Caso já tenha configurado, pule para o próximo tópico)
- clone o projeto Daily Menu em sua máquina. (aprenda aqui)
- para baixar as dependencias e compilar localmente o projeto, rode o comando abaixo na pasta raiz do projeto:
mvn clean compile
- para rodar o projeto você precisará ter alguns programas instalados em sua máquina, são eles:
- Java 11
- Spring Tools Suite - STS (ou qualquer outra que você prefira)
- MySQL versão 8.0.31 - para desenvolvimento local eu utilizo o editor DBeaver, mas fique a vontade para usar o que preferir. Aqui é importante criar um usuário para o banco de dados local e guardar essas credenciais para que você possa utiliza-las no próximo passo.
- Postman após o download, você pode importar a collection do Daily Menu utilizando esse link
- será necessário configurar as variáveis de ambiente do seu projeto local para que seja possível a conexão com o banco de dados, login com JWT e demais configurações. Essas variáveis estão declaradas no arquivo application.properties do projeto. Caso tenha dúvidas como criar variáveis de ambiente para o projeto, você pode aprender mais com esse vídeo a partir de 08:45
- para criar as tabelas em seu banco de dados local e atualiza-las conforme o "ambiente de produção" será necessário rodar o comando do WildFly. Esse comando criará todas as tabelas e atualizações do banco de dados que existe até o momento. Entre na pasta raiz do projeto, abra o terminal e rode o comando abaixo:
mvn flyway:migrate
Seu ambiente de desenvolvimento já está configurado e já definiu em qual tarefa você irá trabalhar? Então siga os passos abaixo:
aqui utilizaremos branchs de desenvolvimento, caso não saiba o que é isso, aprenda mais aqui
ciclo de desenvolvimento: branch local -> pull request -> aprovação pull request -> main
- na issue que você irá trabalhar, na sessão development, clique em Create a branch e no modal que abrir, adicione/edite o nome da branch e clique em Create branch
- na pasta raiz do projeto, abra um terminal e altere a branch conforme a que você criou, por exemplo:
git checkout branch-que-voce-criou
e execute um git pull para garantir que todas as alterações estarão em sua máquina:
git pull
- após o desenvolvimento, crie o commit
git push
- crie o pull request e aguarde a revisão!