Sign inSign up

vek03/stocksy-api

By vek03

Updated 7 months ago

StockSY API: Gerenciamento de Matéria-prima e Produtos.

Image
API management
Content management system
Databases & storage
0

10K+

vek03/stocksy-api repository overview

🧬 Projeto StockSy - API Rest

StockSY API: Gerenciamento de Matéria-prima e Produtos em Spring Boot com Docker, Redis, OpenSearch e Graylog.

🧩 PARTES DO PROJETO

AplicaçãoDescriçãoLink
APIAPI Backend do StockSyEste Repositório
UIUI Frontend do StockSyUI

Este projeto não depende de nenhuma outra aplicação para funcionar corretamente


1.✨ Imagem Docker (DockerHub)

A imagem desta aplicação é atualizada a cada nova tag ou pull request na branch main

Link da imagem no DockerHub: vek03/stocksy-api:latest


1.1 🧩 Containers necessários para rodar a aplicação:


1.2 ⚙ Variáveis de ambiente necessárias para rodar o container:

VariávelDescriçãoExemplo
SERVER_PORTPorta onde a aplicação irá rodar8080
REDIS_HOSTHost do Redisredis
REDIS_PORTPorta do Redis6379
ORACLE_URLURL de conexão do Oraclejdbc:oracle:thin:@localhost:1521/FREEPDB1
ORACLE_USERNAMEUsuário de conexão do Oraclesystem
ORACLE_PASSWORDSenha de conexão do Oracle123456
GRAYLOG_HOSTEndereço do Grayloggraylog
GRAYLOG_PORTPorta do Graylog12201

1.3 🐳 Como rodar o container

1️⃣ Para baixar a imagem do Docker Hub:

docker pull vek03/stocksy-api:latest

2️⃣ Para rodar o container localmente:

docker run -d \
    --name stocksy-api \ 
    -e SERVER_PORT=8080 \
    -e REDIS_HOST=redis \
    -e REDIS_PORT=6379 \
    -e ORACLE_URL=jdbc:oracle:thin:@localhost:1521/FREEPDB1 \
    -e ORACLE_USERNAME=system \
    -e ORACLE_PASSWORD=123456 \
    -e GRAYLOG_HOST=graylog \
    -e GRAYLOG_PORT=12201 \
    -p 8080:8080 \
    vek03/stocksy-api:latest

3️⃣ Alternativamente, você pode adicionar o serviço no seu docker-compose.yml local, descomentando ou adicionando o seguinte trecho:

services:
  stocksy-api:
    image: vek03/stocksy-api:latest
    hostname: stocksy-api
    container_name: stocksy-api
    environment:
      SERVER_PORT: 8080
      REDIS_HOST: redis
      REDIS_PORT: 6379
      ORACLE_URL: jdbc:oracle:thin:@oracle-db:1521/FREEPDB1
      ORACLE_USERNAME: system
      ORACLE_PASSWORD: 123456
      SPRING_JPA_HIBERNATE_DDL_AUTO: update
    ports:
      - "8080:8080"
    depends_on:
      oracle-db:
        condition: service_healthy
      mongodb:
        condition: service_healthy
      opensearch:
        condition: service_healthy
      graylog:
        condition: service_started
      redis:
        condition: service_healthy
    healthcheck:
      test: ["CMD-SHELL", "curl -f http://localhost:8080/actuator/health || exit 1"]
      interval: 5s
      timeout: 15s
      retries: 10
      start_period: 30s

4️⃣ Depois de adicionar o serviço em docker-compose.yml, suba os containers:

docker-compose up -d

📦 Instalação e Configuração do Ambiente

1️⃣ Clone o projeto na sua máquina e baixe as dependências:
# Clonar
git clone https://github.com/vek03/stocksy-api.git

# Acesse a pasta do projeto
cd stocksy-api
2️⃣ Suba os containers necessários e Rode o projeto na sua IDE de preferência (ou via comando Maven)
# Suba os containers necessários (MongoDB, Redis, OpenSearch, Graylog, Oracle)
docker-compose up -d

# Rode o projeto via Maven
3️⃣ (Opcional) Alternativamente, se quiser rodar via Docker localmente:
# Dentro da pasta do projeto:
mvn clean package -DskipTests

# Agora faça deploy no Docker local:
docker build -t vek03/stocksy-api:latest .

# Descomente as últimas linhas do docker-compose.yml e rode:
docker-compose up -d

Ou execute o script .bat (executar_tudo.bat) na pasta .commands para automatizar o processo.

A API Rest StockSy fica disponível na porta 8080 do Localhost ao rodar localmente via IDE.

4️⃣ (Opcional) Caso deseje, pode rodar o SonarQube localmente
# Após configurar o pom.xml com as informações do Sonar em Properties:
mvn clean install sonar:sonar -Dsonar.token={TOKEN_SONAR}

🧩 Tecnologias Utilizadas

  • Spring Boot → Framework Back-End
  • Java → Linguagem de programação
  • Maven → Build
  • Docker → Containers e virtualização
  • Docker Hub → Repositório de imagens Docker
  • Oracle DB → Persistência de dados
  • Redis → Cache
  • OpenSearch e Graylog → Logs da Aplicação
  • Swagger → Documentação da API
  • SonarQube → Qualidade
  • Github Actions → CI/CD automatizado
  • .bat → Scripts para automatizar processos no Windows

📦 Esteira CI/CD Automatizada com Github Actions

A esteira CI/CD deste projeto é automatizada via Github Actions. A cada tag criada a esteira é disparada.

Para executar a Esteira pelo trigger:
# Exemplo: Cria a tag
git tag <version>

# Envia a tag para o repositório remoto
git push origin <version>

StockSy API CI/CD Workflow


Postman Collection

Link para download da coleção Postman utilizada nos testes da API: Postman Collection StockSy API

Alternativamente, você pode utilizar o Swagger UI para testar a API enquanto ela estiver rodando localmente, acessando o link: Swagger UI StockSy API (rodando localmente)


Tag summary

Content type

Image

Digest

sha256:dea7c4a26

Size

236.9 MB

Last updated

7 months ago

docker pull vek03/stocksy-api