Skip to content

MateusLima909/mvc-php-basico

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔐 Sistema de Login & Controle de Acesso - PHP MVC

Refatoração completa de uma aplicação PHP para implementação de arquitetura MVC, autenticação segura e gestão de níveis de acesso.

PHP MySQL Bootstrap Apache Status

📖 Sobre o Projeto

Este é um projeto acadêmico desenvolvido para a disciplina de Aplicações Web.

O desafio consistiu em assumir um código base (fornecido pelo Prof. Milton Júnior) que continha bugs e vulnerabilidades, e realizar uma refatoração completa.

O objetivo principal não foi apenas "fazer funcionar", mas sim reestruturar a aplicação seguindo boas práticas de Arquitetura de Software (MVC) e implementar um sistema robusto de Segurança da Informação, garantindo que dados sensíveis e áreas restritas estivessem devidamente protegidos.

✨ Melhorias e Funcionalidades

  • Arquitetura MVC: Separação clara de responsabilidades (Model, View, Controller), facilitando a manutenção.
  • Segurança de Senhas: Implementação de Hashing moderno (password_hash e password_verify), eliminando o armazenamento de senhas em texto puro.
  • Controle de Sessão: Sistema de login seguro com validação de credenciais e proteção contra Session Hijacking.
  • Níveis de Acesso (ACL):
    • Cliente/Fornecedor: Acesso restrito aos seus próprios dados.
    • Administrador: Visão gerencial completa com permissões elevadas.
  • Painel Administrativo:
    • Listagem unificada de usuários (uso de LEFT JOIN SQL).
    • CRUD completo (Criação, Leitura, Edição e Exclusão).
    • Gestão dinâmica de permissões.
  • Rotas Protegidas: Middleware que intercepta requisições e bloqueia acesso não autorizado via URL.

📸 Screenshots

Tela de Login Painel Administrativo
Autenticação Segura Gestão de Usuários (Admin)

🛠️ Tecnologias Utilizadas

  • Linguagem: PHP 8+ (Orientado a Objetos)
  • Banco de Dados: MySQL
  • Frontend: HTML5, CSS3, Bootstrap 5
  • Servidor Web: Apache (via XAMPP)
  • Design Pattern: MVC (Model-View-Controller) e DAO (Data Access Object)

🚀 Como Executar o Projeto

Pré-requisitos

  • Servidor local (XAMPP, WAMP ou Laragon).
  • PHP 8.0 ou superior.
  • MySQL.

Passo a Passo

  1. Clone o repositório:

    git clone https://github.com/MateusLima909/mvc-php-basico.git

    Ou extraia o ZIP na pasta htdocs do seu servidor.

  2. Configure o Banco de Dados:

    • Acesse o phpMyAdmin (geralmente http://localhost/phpmyadmin).
    • Crie um banco chamado mvc_php_basico.
    • Importe o arquivo dump.sql (localizado na raiz do projeto).
  3. Configure a Aplicação:

    • Abra o arquivo App/App.php.
    • Verifique as credenciais do banco:
      define('DB_HOST', "localhost");
      define('DB_USER', "root");
      define('DB_PASSWORD', ""); // Senha do seu MySQL (geralmente vazio no XAMPP)
      define('DB_NAME', "mvc_php_basico");
  4. Execute:

    • Acesse http://localhost/mvc-php-basico/ no navegador.

Nota para Teste (Admin): Para acessar as funções administrativas, cadastre um usuário comum e, via banco de dados, altere a coluna nivel_acesso para admin.


🎓 Créditos e Agradecimentos

Este projeto foi fundamental para transformar teoria em prática. Um agradecimento especial ao Professor Milton Júnior (GitHub) por fornecer o código base e o desafio. A tarefa de refatorar um código existente foi uma das experiências mais enriquecedoras do curso, ensinando na prática como lidar com dívida técnica e segurança.


📝 Autor

Refatorado e desenvolvido por Mateus Lima.

About

Refatoração e expansão de aplicação PHP MVC: correção de bugs, implementação de segurança e níveis de acesso (Admin, Cliente, Fornecedor).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages