Este projeto é uma API desenvolvida em Spring Boot para um sistema ERP completo. A API fornece todas as funcionalidades necessárias para a gestão de uma empresa, desde gestão de clientes e fornecedores até controle financeiro e de estoque. O banco de dados utilizado é o PostgreSQL.
- Visão Geral
- Funcionalidades
- Tecnologias Utilizadas
- Pré-requisitos
- Configuração e Instalação
- Estrutura do Projeto
- Contribuição
Este projeto é uma API para um ERP completo desenvolvido com Spring Boot e PostgreSQL. Ele foi projetado para fornecer uma solução robusta e escalável para a gestão empresarial, com foco em eficiência e facilidade de uso.
- Cadastro e autenticação de usuários: administração, funcionários e clientes.
- Gerenciamento de permissões e funções: controle detalhado das permissões de acesso com base nas funções dos usuários.
- Perfis de usuários: gerenciamento de informações pessoais, fotos de perfil, dados de contato e preferências.
- Cadastro de clientes e fornecedores:
- Informações detalhadas de contato.
- Histórico de interações e transações.
- Gerenciamento de contratos e acordos:
- Criação e acompanhamento de contratos.
- Notificações de renovação e vencimento.
- Cadastro e gerenciamento de produtos:
- Informações detalhadas de produtos.
- Categorização e organização de produtos.
- Controle de estoque:
- Registro de entradas e saídas de produtos.
- Relatórios de níveis de estoque.
- Notificações de reposição.
- Processamento de vendas:
- Criação e gerenciamento de pedidos de venda.
- Faturamento e emissão de notas fiscais.
- Processamento de compras:
- Criação e gerenciamento de pedidos de compra.
- Recebimento e verificação de mercadorias.
- Controle de contas a pagar e a receber:
- Registro e acompanhamento de pagamentos e recebimentos.
- Emissão de faturas e boletos.
- Gestão de fluxo de caixa:
- Monitoramento de entradas e saídas de dinheiro.
- Relatórios financeiros detalhados.
- Planejamento e orçamento:
- Criação de orçamentos e acompanhamento de despesas.
- Relatórios personalizados:
- Criação de relatórios customizados conforme a necessidade.
- Exportação de relatórios em vários formatos (PDF, Excel, etc.).
- Dashboard de indicadores:
- Visualização gráfica de métricas chave.
- Monitoramento de performance em tempo real.
- Spring Boot: Framework principal para o desenvolvimento da API.
- JPA/Hibernate: Para gerenciamento de banco de dados.
- Spring Security: Para autenticação e autorização.
- JWT: Para gerenciamento de tokens de segurança.
- PostgreSQL: Como banco de dados relacional.
- Maven: Para gerenciamento de dependências.
- Swagger: Para documentação da API.
- Docker: Para contêinerização da aplicação.
- Java 11 ou superior.
- Maven 3.6.3 ou superior.
- PostgreSQL 12 ou superior.
- Docker (opcional, para contêinerização).
git clone https://github.com/usuario/nome-do-repositorio.git
cd nome-do-repositorio
Crie um banco de dados no PostgreSQL. Configure o arquivo application.properties
com as informações de conexão do banco de dados:
spring.datasource.url=jdbc:postgresql://localhost:5432/nome_do_banco
spring.datasource.username=usuario
spring.datasource.password=senha
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
Com o Maven configurado, você pode executar a aplicação usando o seguinte comando:
mvn spring-boot:run
A API estará disponível em http://localhost:8080
.
A documentação da API pode ser acessada através do Swagger em http://localhost:8080/swagger-ui.html
.
src/
├── main/
│ ├── java/com/erp/
│ │ ├── controller/ # Controladores REST
│ │ ├── model/ # Modelos de dados
│ │ ├── repository/ # Repositórios JPA
│ │ ├── service/ # Serviços de negócio
│ │ ├── config/ # Configurações de segurança e outros
│ │ └── ErpApplication.java # Classe principal
│ └── resources/
│ ├── application.properties # Configurações da aplicação
│ ├── data.sql # Dados iniciais (opcional)
│ └── schema.sql # Esquema de banco de dados (opcional)
└── test/
└── java/com/erp/ # Testes unitários e de integração
Contribuições são bem-vindas! Siga os passos abaixo para contribuir com o projeto:
- Fork o repositório.
- Crie uma nova branch (
git checkout -b minha-branch
). - Faça suas alterações e comente (
git commit -m 'Minha contribuição'
). - Envie para o repositório remoto (
git push origin minha-branch
). - Abra um Pull Request.