Projeto desenvolvido pelos alunos do curso técnico em Informática (Uberlândia/MG).
Este sistema simula a operação de uma biblioteca escolar com controle de usuários, livros, reservas, empréstimos, atrasos e multas. Foi construído com PHP e MySQL, utilizando Bootstrap para UI.
Os seguintes arquivos estão disponíveis na pasta uploads/ do projeto:
http://localhost/phpmyadmin.C:\xampp\htdocs\biblioteca (substituindo se necessário).config/config_bd.php com as credenciais do seu MySQL apontando para o banco biblioteca1.http://localhost/biblioteca/.C:\xampp\htdocs\biblioteca.biblioteca1) e configure a conexão em config/config_bd.php.c:\xampp\htdocs\biblioteca\
├─ config\
│ └─ config_bd.php # Conexão MySQL
├─ lib\
│ └─ usuario_utils.php # Sessão e autorização (requireAuth, requireAdmin, isAdmin)
├─ uploads\
│ ├─ logo.png # Logo da escola
│ └─ escola.png # Foto da escola
├─ index.php # Tela inicial pública
├─ login.php # Login por e-mail + senha
├─ logout.php # Encerrar sessão
├─ listar_usuarios.php # Gestão de usuários (admin)
├─ listar_livros.php # Gestão/Listagem de livros
├─ listar_emprestimos.php # Empréstimos
├─ listar_reservas.php # Reservas
├─ listar_atrasos.php # Atrasos e multas
├─ marcar_multa_paga.php # Quitar multa (admin)
└─ gerador_hash.php # Utilitário independente para gerar hash de senha
Estrutura mínima sugerida (resumo; ajuste conforme seu schema atual). Caso já possua o dump uploads/biblioteca1.sql, ele foi atualizado para criar e usar o banco biblioteca1 automaticamente:
-- Criar e usar o banco
CREATE DATABASE IF NOT EXISTS biblioteca1 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE biblioteca1;
Esquema exemplo:
-- Tabela de usuários
CREATE TABLE usuarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(120) NOT NULL,
cpf VARCHAR(14) NOT NULL,
matricula VARCHAR(50) NOT NULL,
email VARCHAR(120) NOT NULL,
senha VARCHAR(255) NOT NULL,
endereco VARCHAR(180) NOT NULL,
bairro VARCHAR(120) NOT NULL,
cidade VARCHAR(120) NOT NULL,
uf CHAR(2) NOT NULL,
foto VARCHAR(255) NULL,
tipo_usuario VARCHAR(20) NOT NULL DEFAULT 'usuario', -- 'admin' | 'usuario'
UNIQUE KEY (email),
UNIQUE KEY (matricula)
);
-- Tabela de livros (exemplo)
CREATE TABLE livros (
id INT AUTO_INCREMENT PRIMARY KEY,
titulo VARCHAR(200) NOT NULL,
autor VARCHAR(200) NOT NULL,
isbn VARCHAR(30) NOT NULL,
categoria VARCHAR(120) NOT NULL,
quantidade INT NOT NULL,
quantidade_disponivel INT NOT NULL DEFAULT 0,
status VARCHAR(20) NOT NULL DEFAULT 'ativo',
capa VARCHAR(255) NULL
);
-- Empréstimos (exemplo)
CREATE TABLE emprestimos (
id INT AUTO_INCREMENT PRIMARY KEY,
usuario_id INT NOT NULL,
livro_id INT NOT NULL,
data_emprestimo DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
data_devolucao_prevista DATE NOT NULL,
data_devolucao_real DATETIME NULL,
status VARCHAR(30) NOT NULL DEFAULT 'ativo',
multa DECIMAL(10,2) NOT NULL DEFAULT 0,
multa_paga TINYINT(1) NOT NULL DEFAULT 0,
FOREIGN KEY (usuario_id) REFERENCES usuarios(id),
FOREIGN KEY (livro_id) REFERENCES livros(id)
);
-- Reservas (exemplo)
CREATE TABLE reservas (
id INT AUTO_INCREMENT PRIMARY KEY,
usuario_id INT NOT NULL,
livro_id INT NOT NULL,
data_reserva DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
status VARCHAR(20) NOT NULL DEFAULT 'ativa',
FOREIGN KEY (usuario_id) REFERENCES usuarios(id),
FOREIGN KEY (livro_id) REFERENCES livros(id)
);
-- Histórico de pagamentos de multas (exemplo)
CREATE TABLE multas_pagamentos (
id INT AUTO_INCREMENT PRIMARY KEY,
emprestimo_id INT NOT NULL,
usuario_id INT NOT NULL,
valor DECIMAL(10,2) NOT NULL,
metodo_pagamento VARCHAR(40) NOT NULL,
admin_id INT NOT NULL,
data_pagamento DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (emprestimo_id) REFERENCES emprestimos(id),
FOREIGN KEY (usuario_id) REFERENCES usuarios(id),
FOREIGN KEY (admin_id) REFERENCES usuarios(id)
);
-- Defina um usuário como administrador
UPDATE usuarios SET tipo_usuario = 'admin' WHERE email = '[email protected]';
login.php) usando password_hash/password_verify.tipo_usuario em usuarios).requireAuth() e requireAdmin() (em lib/usuario_utils.php)./biblioteca/gerador_hash.php (web) ou execute php gerador_hash.php "minha_senha" (CLI).config/config_bd.php.uploads/.Desenvolvido pelos alunos do curso técnico em Informática da Escola Estadual Bueno Brandão, sob orientação da professora Graziele de Oliveira Pereira.