AtaFarivar /
api-automation-assessment
🚀 Enterprise-grade API Automation Framework for Online Bookstore. Features Java 21, Rest-Assured, and TestNG. Fully Dockerized with CI/CD pipeline and Live Allure Reporting via GitHub Actions.
Loading repository data…
willfelixd / repository
API REST for managing a singer's digital portfolio — shows, repertoire, videos and contact. Built with Java 17 + Spring Boot 3 + PostgreSQL + Redis.
API REST desenvolvida com Java 17 + Spring Boot 3 para gerenciamento do portfólio da cantora Isa Tavares. Agenda de shows, repertório, vídeos e contato.
Backend em produção no Render — infrastructure as code com deploy automático via GitHub Actions.
| Link | |
|---|---|
| 🚀 API | artist-showcase-api.onrender.com |
| 📄 Swagger | Documentação interativa |
Este projeto consiste em uma API REST completa que serve como backend para o portfólio digital da cantora Isa. A aplicação permite que o público visualize informações da artista, consulte a agenda de shows, o repertório musical e entre em contato — enquanto o admin gerencia tudo via painel protegido com autenticação JWT.
🗂️ Acompanhe o progresso: Kanban - artist-showcase
⚠️ Projeto em desenvolvimento ativo. Novas funcionalidades serão adicionadas a cada fase.
| Tecnologia | Uso no projeto |
|---|---|
| Java 17 | Linguagem principal |
| Spring Boot 3.3.x | Configuração e execução da aplicação |
| Spring Web MVC | Endpoints REST |
| Spring Data JPA / Hibernate | Persistência e consultas |
| Spring Security + JWT | Autenticação e autorização |
| Spring Cache + Redis | Cache de endpoints de leitura |
| Spring Mail | Envio de e-mails via SMTP |
| Jakarta Validation | Validação dos dados de entrada |
| PostgreSQL | Banco de dados relacional |
| Lombok | Redução de código repetitivo nas entidades |
| Gradle | Dependências, build e execução |
| Docker + docker-compose | Containerização dos serviços |
| GitHub Actions | CI/CD automatizado |
| Swagger / OpenAPI 3 | Documentação interativa da API |
O projeto segue uma arquitetura em camadas:
flowchart LR
Client["Cliente HTTP"] --> Security["Spring Security / JWT"]
Security --> Controller["Controllers REST"]
Controller --> Service["Services / regras de negócio"]
Service --> Cache["Redis Cache"]
Service --> Repository["Repositories Spring Data JPA"]
Repository --> DB[("PostgreSQL")]
DTO["DTOs + Bean Validation"] --> Controller
Mail["Spring Mail / SMTP"] --> Service
O fluxo de uma requisição passa pelo filtro de segurança JWT, pelas regras de negócio no service e pela camada de persistência. Endpoints de leitura frequente são cacheados no Redis. Os DTOs definem os contratos de entrada e saída da API.
git clone https://github.com/willfelixd/artist-showcase-api.git
cd artist-showcase-api
cp src/main/resources/application-dev.properties.example \
src/main/resources/application-dev.properties
# Edite o arquivo com suas credenciais locais
docker compose up postgres redis -d
docker compose up postgres redis -d # só banco e Redis
./gradlew bootRun # backend pelo Gradle
docker compose up --build # tudo via Docker, NÃO roda ./gradlew bootRun junto
# Sempre escolha um dos dois para rodar, nunca os dois ao mesmo tempo
A aplicação sobe em http://localhost:8080
O admin padrão é criado automaticamente no primeiro boot:
adminapplication-dev.propertiesApós subir a aplicação, acesse: http://localhost:8080/swagger-ui/index.html
Gere um JWT_SECRET seguro com:
openssl rand -base64 64
Gere um ADMIN_PASSWORD seguro com:
openssl rand -base64 16
MAIL_PASSWORD: App password do Gmail em — Gerenciar sua Conta do Google → Segurança → Senhas de app
⚠️ Nunca commite credenciais reais. Os arquivos
application-dev.propertiese.envestão no.gitignore.
Este projeto segue o GitHub Flow adaptado com branch de desenvolvimento:
main (protegida — só via PR de release)
└── develop (branch principal de trabalho)
└── feature/nome-da-feature
↓ commit
↓ push
↓ PR → develop
↓ CI passa
↓ merge
↓ git checkout develop
↓ git pull origin develop ← atualiza o local
↓ git branch -d feature/nome ← deleta a branch local
| Branch | Descrição |
|---|---|
main | Produção — protegida, só recebe PR de release |
develop | Desenvolvimento — base para todas as features |
feature/* | Nova funcionalidade — ex: feature/artist-profile |
hotfix/* | Correção urgente em produção |
feat: add artist profile module
fix: correct booking conflict validation
chore: update CI pipeline
docs: update README with Kanban GIF
git checkout developgit checkout -b feature/nome-da-featuregit push origin feature/nome-da-featuredevelop → PR → main → CI/CD → deploy automático no Render
A documentação completa e interativa está disponível em http://localhost:8080/swagger-ui/index.html
/api/auth| Método | Endpoint | Acesso | Descrição |
|---|---|---|---|
POST | /api/auth/login | Público | Login admin, retorna JWT |
/api/artist| Método | Endpoint | Acesso | Descrição |
|---|---|---|---|
GET | /api/artist | Público | Retorna perfil da artista |
PUT | /api/artist | Admin | Atualiza perfil |
/api/songs| Método | Endpoint | Acesso | Descrição |
|---|---|---|---|
GET | /api/songs | Público | Lista músicas com filtros |
GET | /api/songs/most-requested | Público | Músicas mais pedidas |
GET | /api/songs/{id} | Público | Busca música por ID |
POST | /api/songs | Admin | Cria música |
PUT | /api/songs/{id} | Admin | Atualiza música |
DELETE | /api/songs/{id} | Admin | Remove música |
/api/videos| Método | Endpoint | Acesso | Descrição |
|---|---|---|---|
GET | /api/videos | Público | Lista vídeos |
GET | /api/videos/featured | Público | Vídeos em destaque |
GET | /api/videos/{id} | Público | Busca vídeo por ID |
POST | /api/videos | Admin | Adiciona vídeo |
PUT | /api/videos/{id} | Admin | Atualiza vídeo |
DELETE | /api/videos/{id} | Admin | Remove vídeo |
/api/bookings| Método | Endpoint | Acesso | Descrição |
|---|---|---|---|
GET | /api/bookings/unavailable-dates | Público | Datas indisponíveis |
POST | /api/bookings | Público | Solicita agendamento |
GET | /api/bookings | Admin | Lista agendamentos |
GET | /api/bookings/status/{status} | Admin | Filtra por status |
PATCH | /api/bookings/{id}/status | Admin | Atualiza status |
DELETE | /api/bookings/{id} | Admin | Remove agendamento |
/api/contact| Método | Endpoint | Acesso | Descrição |
|---|---|---|---|
POST | /api/contact | Público | Envia mensagem |
GET | /api/contact | Admin | Lista mensagens |
GET | /api/contact/failed | Admin | Mensagens com falha no e-mail |
GET | /api/contact/{id} | Admin | Detalhe da mensagem |
./gradlew test
Ver relatório HTML:
# Linux / macOS
open build/reports/tests/test/
Selected from shared topics, language and repository description—not editorial ratings.
AtaFarivar /
🚀 Enterprise-grade API Automation Framework for Online Bookstore. Features Java 21, Rest-Assured, and TestNG. Fully Dockerized with CI/CD pipeline and Live Allure Reporting via GitHub Actions.
yassinechouket /
This project implements DevOps best practices to deploy a Spring Boot Kafka-based REST API on AWS using Terraform, Docker, and Kubernetes (EKS). It features a CI/CD pipeline with GitHub Actions, NGINX Ingress for traffic routing,
vinuthsriarampath /
TuitionToAll-Server is the backend of the TuitionToAll project, a centralized LMS platform that connects teachers, students, and institutes. Built with Spring Boot, it provides REST APIs for user management, course handling, and authentication.
tysker /
A lightweight REST API built with Spark Java, Hibernate, PostgreSQL, and JWT authentication. The project demonstrates clean backend architecture suitable for learning and teaching Java backend development.
ekadharmayana /
Java 21 + Spring Boot REST API for employee CRUD, with PostgreSQL persistence, DTO-based clean architecture, Swagger docs, Docker setup, and GitHub Actions CI.
Itzshambhav /
Full-stack video cryptography application using Java and Spring Boot for secure video encryption/decryption, integrated with REST APIs, Docker, GitHub Actions CI/CD, and automated testing.