Skip to content

Repository files navigation

🏢 Lobby API - Gestão Logística para Condomínios

Kotlin Spring Boot Spring Security PostgreSQL Docker Swagger

Lobby é uma solução backend robusta para digitalizar a portaria de condomínios. Substitui o caderno de papel por uma API segura, auditável e com notificações em tempo real. Acesse em https://www.uselobby.com.br/


🎯 O Problema

A gestão de encomendas em portarias tradicionais é falha: cadernos de papel ilegíveis, extravios de pacotes e falta de comunicação com os moradores geram insegurança e atrito.

💡 A Solução

Uma API RESTful desenvolvida com Arquitetura em Camadas (Service Layer), focada em segurança e performance. O sistema gerencia o ciclo de vida da encomenda, desde a chegada até a retirada, notificando o morador instantaneamente via e-mail.


🔥 Funcionalidades de Engenharia

🔐 Segurança (Security & JWT)

  • Autenticação Stateless: Uso de JWT (JSON Web Tokens) com controle de sessão via tokenVersion (permite invalidar tokens em caso de roubo ou banimento).
  • Proteção contra Brute-Force: O sistema detecta tentativas falhas de login e bane temporariamente o IP/Usuário após 5 erros.
  • RBAC (Role-Based Access Control):
    • BUSINESS: Gestão total do condomínio.
    • SYNDIC: Gestão total de usuários e encomendas (Aprovar porteiros, banir usuários, ver encomendas, confirmar encomendas, etc).
    • DOORMAN: Registrar e entregar encomendas.
    • RESIDENT: Apenas visualização de suas encomendas.

📧 Notificações Ricas (JavaMailSender)

  • E-mails Transacionais: Integração SMTP (Gmail/Brevo).
  • Templates HTML: O morador recebe um e-mail visualmente formatado com o código de rastreio assim que a encomenda chega.

📦 Logística & Rastreio

  • Rastreio Híbrido: Gera automaticamente um código interno único (UUID curto) se não houver etiqueta.
  • Ciclo de Vida: WAITING_PICKUP -> DELIVERED.
  • Auditoria: Registo exato da data/hora de retirada (withdrawalDate).

📚 Documentação Viva

  • Swagger UI (OpenAPI 3): Documentação interativa gerada automaticamente.
  • Acessível em: /swagger-ui/index.html

🛠️ Stack Tecnológica

  • Core: Kotlin, Java 17, Spring Boot 3.
  • Dados: Spring Data JPA, PostgreSQL.
  • Segurança: Spring Security 6, BCrypt, JWT.
  • Infraestrutura: Docker, Railway (Cloud), Gradle.
  • Ferramentas: Mailtrap/Gmail SMTP, IntelliJ IDEA.

🚀 Como Rodar o Projeto

Pré-requisitos

  • Java 17+
  • Docker (Opcional, mas recomendado)

1. Clone o repositório

git clone https://github.com/GBLins14/Lobby-API.git
cd Lobby-API

2. Configure as Variáveis de Ambiente

Crie um arquivo .env na raiz do projeto (baseado no !.env.example) e configure as suas credenciais.

3. Rodando com Docker (Recomendado) 🐳

docker build -t lobby-api .
docker run -p 8080:8080 --env-file .env lobby-api

4. Rodando Localmente (Gradle)

./gradlew bootRun

🤝 Projeto desenvolvido como MVP para estudo avançado de arquitetura backend com Kotlin.

Desenvolvido por Gabriel Lins 🚀

About

API de gestão de encomendas para condomínios, com sistema de autenticação e separação por roles.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages