Skip to content

desv-jorge/Library-PRO

Repository files navigation

Laravel Logo

Build Status Total Downloads Latest Stable Version License

📚 Library PRO

Sistema de Gestão de Biblioteca desenvolvido como projeto de estudo focado em Clean Code, SOLID e Arquitetura Laravel Moderna. O objetivo principal foi aplicar as melhores práticas de desenvolvimento, segurança e manutenibilidade.

🚀 Funcionalidades

Autenticação & Segurança (Laravel Breeze)

  • Login, Registro e Logout seguros.
  • Proteção CSRF em todos os formulários.
  • Validação de dados via Form Requests dedicados.

Gestão de Autores (CRUD)

  • Cadastro completo de autores.
  • Listagem com paginação.
  • Edição e Exclusão (com integridade referencial).

Gestão de Livros (CRUD Relacional)

  • Cadastro de livros vinculados a autores (Relação 1:N).
  • Controle de Status via PHP 8.1 Enums (Available, Borrowed, etc).
  • Validação de ISBN único (com exceção inteligente na edição).
  • Prevenção de problemas de performance (N+1 Queries) usando Eager Loading.

Interface (Frontend)

  • Layout responsivo com Sidebar lateral.

  • Estilização via Tailwind CSS.

  • Uso de Blade Components para reaproveitamento de código.

  • Feedback visual (Flash Messages) para ações de sucesso/erro.


🛠️ Tecnologias e Padrões Utilizados

Este projeto segue rigorosamente os padrões da comunidade Laravel e PSR-12:

  • Linguagem: PHP 8.2+ (com declare(strict_types=1)).
  • Framework: Laravel 10/11.
  • Banco de Dados: MySQL 8.0.
  • Ambiente: Docker & Laravel Sail (Isolamento total de ambiente).
  • Design Patterns:
    • MVC Rigoroso: Controllers magros, lógica delegada.
    • Type Safety: Uso extensivo de tipagem forte e Enums.
    • Repository/Service Mindset: Lógica de validação isolada em FormRequests.

🔧 Como Rodar o Projeto

Este projeto utiliza Laravel Sail (Docker), o que significa que você não precisa ter PHP ou Composer instalados na sua máquina local, apenas o Docker.

Pré-requisitos

Passo a Passo

  1. Clone o repositório
git clone https://github.com/desv-jorge/Library-PRO.git
cd library-pro
  1. Configure as Variáveis de Ambiente Faça uma cópia do arquivo de exemplo para o arquivo real.
cp .env.example .env
  1. Instale as dependências (Via Container) Este comando baixa uma imagem temporária apenas para instalar as pastas do vendor.
docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v "$(pwd):/var/www/html" \
    -w /var/www/html \
    laravelsail/php82-composer:latest \
    composer install --ignore-platform-reqs
  1. Suba o Ambiente (Sail)
./vendor/bin/sail up -d
  1. Gere a Chave da Aplicação e Migre o Banco
./vendor/bin/sail artisan key:generate
./vendor/bin/sail artisan migrate:fresh --seed

Nota: O comando --seed irá criar um usuário padrão para testes.

  1. Acesse a Aplicação Abra seu navegador em: http://localhost

👤 Usuário de Teste (Seeder)

Ao rodar as migrations com seed, o seguinte usuário é criado automaticamente:

  • Email: admin@example.com
  • Senha: password

🧪 Estrutura de Pastas Importante

Para facilitar a navegação pelo código:

  • app/Models: Modelos Eloquent com Casts e Relacionamentos configurados.
  • app/Http/Controllers: Controladores "Magros" apenas orquestrando fluxo.

app/Http/Requests: Toda regra de validação reside aqui (Clean Code).

  • app/Enums: Definições de status (Type Safety).
  • resources/views/components: Componentes Blade reutilizáveis.

💡 Dicas de Desenvolvimento (Alias)

Para evitar digitar ./vendor/bin/sail toda vez, adicione este alias ao seu terminal:

alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'

Agora você pode usar comandos curtos:

sail artisan migrate
sail composer require ...

📄 Licença

Este projeto está sob a licença MIT.

About

PT-BR: Sistema de Gestão de Biblioteca focado em Clean Code, Arquitetura Laravel Moderna, Docker e TailwindCSS.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages