Bem-vindo à nova versão do PDA System! O que começou como um sistema web monolítico evoluiu para uma aplicação full-stack moderna e desacoplada, com uma API RESTful robusta no back-end e uma interface de usuário dinâmica e reativa no front-end.
Este projeto gerencia os parâmetros de pesagem de produtos industriais, garantindo a segurança e a integridade dos dados através de um sistema de autenticação e autorização baseado em papéis.
A versão 0.2.0 não é apenas uma atualização, é uma reconstrução completa. O objetivo foi aplicar as melhores práticas de desenvolvimento de software para criar uma base de código mais segura, escalável e de fácil manutenção.
O sistema monolítico original foi dividido em duas partes independentes:
- Back-end: Uma API RESTful
stateless(sem estado) responsável por toda a lógica de negócios, segurança e comunicação com o banco de dados. - Front-end: Uma interface de usuário dinâmica que consome a API, proporcionando uma experiência fluida e sem recarregamentos de página, construída com JavaScript puro e moderno.
- ✅ Autenticação Segura via Token JWT: Sistema de login que gera um token JWT para autenticação
stateless. - ✅ Controle de Acesso Baseado em Papéis (RBAC): Três níveis de permissão (
OPERADOR,ADMINISTRADOR,HOKAGE) que restringem o acesso a funcionalidades críticas. - ✅ Gerenciamento de Produtos (CRUD): Funcionalidades completas para criar, buscar, editar e excluir produtos, com ações restritas por nível de acesso.
- ✅ Painel de Super-Administrador ("Hokage"): Uma área exclusiva para o nível de acesso mais alto, permitindo o gerenciamento completo de usuários (criar, editar perfis e excluir).
- ✅ Hashing Progressivo: Um mecanismo de segurança que atualiza senhas antigas (em texto plano) para o formato de hash moderno de forma automática e transparente no primeiro login bem-sucedido do usuário.
- ✅ Interface de Usuário Reativa: Construída com JavaScript moderno (
async/await,fetch), com componentes reutilizáveis, animações e feedback visual através de alertas modernos (SweetAlert2).
A arquitetura do projeto foi desenhada para uma clara separação de responsabilidades entre o back-end (a API que contém a lógica) e o front-end (a interface com o usuário).
Com certeza. Esse formato de árvore de texto é ótimo para documentação.
Aqui está a estrutura do nosso projeto, formatada exatamente como você pediu, pronta para ser copiada.
.
├── back-end/
│ ├── controllers/
│ ├── models/
│ ├── config/
│ ├── vendor/
│ ├── .env
│ └── api.php
├── front-end/
│ ├── assets/
│ │ ├── css/
│ │ ├── js/
│ │ └── images/
│ ├── includes/
│ ├── index.php
│ ├── login.php
│ └── ... (outras páginas)
├── .gitignore
├── LICENSE
└── README.md
- PHP 8+: Utilizado de forma orientada a objetos para construir toda a lógica da API.
- MySQL: Banco de dados relacional para persistência dos dados.
- Composer: Gerenciador de dependências PHP.
- Bibliotecas:
firebase/php-jwt: Para geração e validação de JSON Web Tokens.vlucas/phpdotenv: Para gerenciamento seguro de variáveis de ambiente.
- HTML5: Estrutura semântica e moderna.
- CSS3: Estilização com Flexbox, Grid Layout e animações para uma interface responsiva.
- JavaScript (ES6+): O cérebro da interface, responsável pela interatividade, chamadas de API (
fetch) e manipulação do DOM. - Bibliotecas (via CDN): SweetAlert2, Font Awesome, Google Fonts (Poppins), Hamburgers.css.
- API RESTful: O back-end expõe endpoints claros e bem definidos para cada ação, comunicando-se exclusivamente via JSON.
- MVC (Model-View-Controller): A lógica do back-end é organizada no padrão MVC, separando o acesso a dados (Model), o processamento da requisição (Controller) e a resposta (View/JSON).
- Componentização no Front-end: O código front-end foi dividido em componentes reutilizáveis (
header.php,footer.php) e arquivos CSS/JS modulares por funcionalidade, facilitando a manutenção.
Pré-requisitos: PHP 8+, Composer, MySQL.
- Clone o repositório:
git clone [https://github.com/JohnReiiss/Sistema-PD-Automatizado.git](https://github.com/JohnReiiss/Sistema-PD-Automatizado.git) cd Sistema-PD-Automatizado - Configure o Back-end:
- Navegue até a pasta do back-end:
cd back-end. - Instale as dependências:
composer install. - Crie um arquivo
.enva partir do exemplo (se houver, ou crie um novo) e preencha com as suas credenciais do banco de dados e umaJWT_SECRETsegura.
- Navegue até a pasta do back-end:
- Configure o Banco de Dados:
- Crie um banco de dados MySQL chamado
sistemadepesos. - Importe o SQL da estrutura da tabela
PD_usuarioePD_peso. - Importante: Para testar o painel do Hokage, altere manualmente o
TIPO_ACESSOdo seu usuário paraHOKAGEno banco de dados.
- Crie um banco de dados MySQL chamado
- Inicie o Servidor:
- Volte para a pasta raiz do projeto (
cd ..). - Inicie o servidor embutido do PHP:
php -S localhost:8000
- Volte para a pasta raiz do projeto (
- Acesse a Aplicação:
- Abra seu navegador e acesse:
http://localhost:8000/front-end/login.php
- Abra seu navegador e acesse:
Acesse aqui o vídeo de demonstração 🎥 Clique aqui para assistir ao vídeo
- Desenvolvedor: Johnatan dos Santos Reis
- E-mail: [email protected]
- LinkedIn: linkedin.com/in/johnatan-Reis
- GitHub: github.com/JohnReiiss
Este projeto foi uma incrível jornada de aprendizado e aplicação de conceitos modernos de desenvolvimento web. Agradeço a visita!