Sistema de gerenciamento de ordens de serviço desenvolvido com Java e Spring Boot 3, criado como projeto prático durante minha formação como desenvolvedor backend.
Este projeto nasceu da vontade de construir algo além dos tutoriais — uma aplicação real, com autenticação, banco de dados, controle de acesso e interface web funcional.
O sistema permite abrir, acompanhar e encerrar ordens de serviço, gerenciar clientes e equipamentos, e exportar relatórios em PDF.
| Tecnologia | Finalidade |
|---|---|
| ☕ Java 17 | Linguagem principal |
| 🍃 Spring Boot 3.2.5 | Framework base |
| 🗄️ Spring Data JPA | Persistência e ORM |
| 🔒 Spring Security | Autenticação e autorização |
| 🐬 MySQL 8 | Banco de dados relacional |
| 🎨 Thymeleaf | Interface web (templates HTML) |
| 🦎 Lombok | Redução de código repetitivo |
| 📄 OpenPDF | Geração de relatórios em PDF |
| 🖌️ Bootstrap 5 | Estilização da interface |
src/main/java/com/osmanager/
├── config/ → Configurações gerais (redirecionamentos)
├── controller/ → Controladores MVC e endpoints REST
├── dto/ → Objetos de transferência de dados
├── entity/ → Entidades JPA (tabelas do banco)
├── repository/ → Acesso ao banco de dados
├── security/ → Configuração de login e autorização
├── service/ → Regras de negócio
└── util/ → Utilitários gerais
- Login com autenticação via Spring Security e senha criptografada (BCrypt)
- Controle de acesso por perfil:
ADMINeTECNICO - Cadastro, edição e exclusão de Clientes
- Cadastro e listagem de Equipamentos
- Abertura, acompanhamento e encerramento de Ordens de Serviço
- Numeração automática de OS (
OS-AAAAMMDD-XXXX) - Dashboard com indicadores em tempo real
- Exportação de OS em PDF
- Interface responsiva com Bootstrap 5
git clone git clone https://github.com/claudiodeveloper-github/osmanager.git
cd osmanagerNo MySQL (Workbench, DBeaver ou terminal):
CREATE DATABASE osmanager;O Hibernate cria as tabelas automaticamente na primeira execução.
Edite o arquivo em src/main/resources/application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/osmanager
spring.datasource.username=seu_usuario
spring.datasource.password=sua_senha
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
server.port=8080Como não há tela de cadastro público, insira o primeiro usuário diretamente no banco:
INSERT INTO usuario (nome, email, senha, role)
VALUES (
'Administrador',
'admin@osmanager.com',
'$2a$10$7QfBPHHd0N6GdqQlCHXEK.0TrOn/R8xFNsNpQrZqMBGtW4kCnKi0a',
'ADMIN'
);Senha em texto:
admin123
# Linux / Mac
./mvnw spring-boot:run
# Windows
mvnw.cmd spring-boot:runAcesse: http://localhost:8080
| Perfil | O que pode fazer |
|---|---|
ADMIN |
Acesso total, incluindo gestão de usuários |
TECNICO |
Acesso às OS, clientes e equipamentos |
ABERTA → EM_ANALISE → AGUARDANDO_PECA → EM_MANUTENCAO → FINALIZADA → ENTREGUE
Ao marcar como FINALIZADA, a data de saída é registrada automaticamente.
Este projeto foi desenvolvido para fins de aprendizado e portfólio. Ainda há pontos que pretendo evoluir:
- Testes unitários com JUnit e Mockito
- Paginação na listagem de OS
- Filtro de OS por status e data
- Deploy em nuvem (Railway ou Render)
- Documentação da API com Swagger
Cláudio G. S. Castro Java Backend Developer em formação
Este projeto está sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.
