Skip to content

claudiodeveloper-github/osmanager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

GitHub


Licença

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


About

Sistema de gerenciamento de ordens de serviço com Spring Boot 3, Spring Security, MySQL e Thymeleaf.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages