Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lubrum/dsdeliver-sds-backend
Este é um projeto concebido na semana Dev Superior 2.0, em que o objetivo era desenvolver um sistema para realização de pedidos e entregas de encomendas de um restaurante. Essa é a parte backend do projeto.
https://github.com/lubrum/dsdeliver-sds-backend
docker docker-compose flyway hibernate java jpa maven nginx postgresql spring-boot test testing
Last synced: 4 days ago
JSON representation
Este é um projeto concebido na semana Dev Superior 2.0, em que o objetivo era desenvolver um sistema para realização de pedidos e entregas de encomendas de um restaurante. Essa é a parte backend do projeto.
- Host: GitHub
- URL: https://github.com/lubrum/dsdeliver-sds-backend
- Owner: Lubrum
- Created: 2022-08-19T20:55:49.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-12T08:25:35.000Z (9 months ago)
- Last Synced: 2024-02-12T09:36:40.696Z (9 months ago)
- Topics: docker, docker-compose, flyway, hibernate, java, jpa, maven, nginx, postgresql, spring-boot, test, testing
- Language: Java
- Homepage:
- Size: 185 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Semana Dev Superior 2.0 - DSDelivery
Este é o projeto backend do sistema para realização de pedidos e entregas de encomendas de um restaurante desenvolvido na semana Dev Superior 2.0, ministrado pelo prof. Nélio Lopes.
Este projeto abarca melhorias adicionais feitas como inclusão do Docker, atualização para o Spring Boot 3, Java 21 e outros.
Tecnologia utilizada:
- Java 21
- Spring Boot 3
# Pré-requisitos do projeto
- docker;
- docker compose;# Modelo conceitual
![Image](https://raw.githubusercontent.com/Lubrum/dsdeliver-sds2/master/assets/modelo-conceitual.png "Modelo conceitual")
# Arquitetura
![Image](https://raw.githubusercontent.com/Lubrum/dsdeliver-sds2/master/assets/camadas.png "Padrão camadas")
# Execução do projeto
Na pasta raíz do projeto:
```bash
docker compose -f docker-compose-dev.yml up -d --build
```## Para parar a execução
```bash
docker compose down
```# Deploy
Este projeto está com um mecanismo de CI/CD configurado para realizar o deploy em uma instância EC2 da Amazon a cada commit feito.
A instância precisa ter instalado nela o 'docker' e o 'docker compose'.
Ainda, na pasta /home/ubuntu é requerido a existência do diretório **dsdeliver**, e dentro dela o diretório nginx/conf.d.
Dentro desse diretório do nginx é necessário ter um arquivo semelhante ao **default.conf** deste projeto, porém com a URL adaptada para o ambiente de produção. No caso do EC2 é algo como http://ec2-IP-DA-INSTANCIA.REGIAO-DA-INSTANCIA.compute.amazonaws.com/.
Para modificar a lógica de CI/CD, editar o arquivo em .github/workflows/deploy.yml
Existem alguns secrets utilizados que devem ser configurados no repositório:
- HOST: IP ou domínio da instância EC2;
- KEY: chave privada de acesso ssh à instância EC2;
- PORT: socket de acesso à instância EC2;
- PWD_DOCKER_HUB: senha ou token da conta no Docker Hub;
- USERNAME: usuário da instância EC2;