Skip to content

Latest commit

 

History

History
228 lines (152 loc) · 6.32 KB

File metadata and controls

228 lines (152 loc) · 6.32 KB

OS Manager Banner


OS Manager

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.


Sobre o Projeto

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.


Tecnologias Utilizadas

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
**OpenPDF Geração de relatórios em PDF

Estrutura do Projeto


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


Funcionalidades

  • Login com autenticação via Spring Security e senha criptografada (BCrypt)
  • Controle de acesso por perfil: ADMIN e TECNICO
  • 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
  • Exportação de Ordens de Serviço em PDF (via OpenPDF)

Como Rodar o Projeto

Pré-requisitos


1. Clonar o repositório

git clone git clone https://github.com/claudiodeveloper-github/osmanager.git
cd osmanager

2. Criar o banco de dados

No MySQL (Workbench, DBeaver ou terminal):

CREATE DATABASE osmanager;

O Hibernate cria as tabelas automaticamente na primeira execução.


3. Configurar o application.properties

Crie ou edite o arquivo em src/main/resources/application.properties com as configurações abaixo.

Atenção: Por questões de segurança, substitua seu_usuario e sua_senha pelas credenciais do seu banco de dados MySQL local. Nunca compartilhe o arquivo com suas senhas reais no GitHub.

Properties

BANCO DE DADOS

spring.datasource.url=jdbc:mysql://localhost:3306/osmanager?useSSL=false&serverTimezone=UTC
spring.datasource.username=seu_usuario
spring.datasource.password=sua_senha

# JPA / HIBERNATE
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect

# SERVIDOR
server.port=8080


4. Criar o primeiro usuário ADMIN

Como 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


5. Executar

# Linux / Mac
./mvnw spring-boot:run

# Windows
mvnw.cmd spring-boot:run

Acesse: http://localhost:8080


Perfis de Acesso

Perfil O que pode fazer
ADMIN Acesso total, incluindo gestão de usuários
TECNICO Acesso às OS, clientes e equipamentos

Ciclo de Status de uma OS

ABERTA → EM_ANALISE → AGUARDANDO_PECA → EM_MANUTENCAO → FINALIZADA → ENTREGUE

Ao marcar como FINALIZADA, a data de saída é registrada automaticamente.


Observações

Este projeto foi desenvolvido para fins de aprendizado e portfólio. Ainda há pontos que pretendo evoluir:

  • Validações com Bean Validation nas entidades
  • 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
  • Filtro de OS por status e data
  • Paginação na listagem de OS
  • Testes unitários com JUnit e Mockito
  • Deploy na nuvem com Railway

👤 Autor

Cláudio G. S. Castro Java Backend Developer em Formação

Desenvolvedor Backend em formação com foco em Java e Spring Boot. Construindo APIs robustas com boas práticas, aprendendo continuamente e enfrentando desafios reais.

LinkedIn GitHub Gmail


📄 Licença

Este projeto está licenciado sob a licença MIT — veja o arquivo LICENSE para mais detalhes.


Feito com ☕ Java e muito aprendizado por Cláudio G. S. Castro

⭐ Se este projeto te ajudou ou te inspirou, deixa uma estrela no repositório!