Sistema completo de gerenciamento de cursos desenvolvido com Laravel 11, demonstrando domínio de arquitetura MVC, validações, e interface responsiva com Bootstrap 5.
Sistema web para gerenciamento de cursos com operações completas de CRUD (Create, Read, Update, Delete), desenvolvido como demonstração de habilidades em desenvolvimento full-stack com foco no framework Laravel.
- ✅ Listagem de Cursos - Visualização de todos os cursos cadastrados em tabela responsiva
- ✅ Cadastro de Cursos - Formulário completo com validação de dados
- ✅ Edição de Cursos - Atualização de informações com validação
- ✅ Exclusão de Cursos - Remoção com confirmação de segurança
- ✅ Validação de Formulários - Validação server-side com mensagens customizadas
- ✅ Feedback Visual - Mensagens de sucesso e erro para o usuário
- ✅ Interface Responsiva - Compatível com desktop, tablet e mobile
- PHP 8.2+
- Laravel 11.x
- MySQL 8.0
- Composer (gerenciamento de dependências)
- HTML5 & CSS3
- Bootstrap 5.3.8
- Blade Templates (Laravel)
- JavaScript (validações e confirmações)
- MVC (Model-View-Controller)
- RESTful (Resource Controllers)
- Form Request Validation
- Eloquent ORM
- Database Migrations
Antes de começar, certifique-se de ter instalado:
git clone https://github.com/seu-usuario/crud-cursos-laravel.git
cd crud-cursos-laravelcomposer install# Copie o arquivo de ambiente
cp .env.example .env
# Gere a chave da aplicação
php artisan key:generateEdite o arquivo .env com suas credenciais:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nome_do_banco
DB_USERNAME=seu_usuario
DB_PASSWORD=sua_senhaNo MySQL:
CREATE DATABASE nome_do_banco CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;php artisan migratephp artisan serveAbra seu navegador em: http://localhost:8000
crud-cursos-laravel/
├── app/
│ ├── Http/
│ │ ├── Controllers/
│ │ │ └── CursoController.php # Controller principal
│ │ └── Requests/
│ │ └── CursoRequest.php # Validações customizadas
│ └── Models/
│ └── Curso.php # Model Eloquent
├── database/
│ └── migrations/
│ └── 2025_xx_xx_create_cursos_table.php
├── resources/
│ └── views/
│ └── curso/
│ ├── index.blade.php # Listagem
│ ├── create.blade.php # Formulário de cadastro
│ └── update.blade.php # Formulário de edição
└── routes/
└── web.php # Rotas da aplicação
Campos obrigatórios:
- Nome do curso (mínimo 5 caracteres)
- Descrição do curso (mínimo 15 caracteres)
Mensagens customizadas em português
Route::resource('curso', CursoController::class);Gera automaticamente:
GET /curso- ListagemGET /curso/create- Formulário de cadastroPOST /curso- Salvar novo cursoGET /curso/{id}/edit- Formulário de ediçãoPUT /curso/{id}- Atualizar cursoDELETE /curso/{id}- Excluir curso
- ✅ Form Request Validation - Validações isoladas e reutilizáveis
- ✅ Route Model Binding - Injeção automática de modelos
- ✅ Compact Helper - Passagem limpa de dados para views
- ✅ Eloquent ORM - Manipulação elegante de dados
- ✅ Blade Components - Templates reutilizáveis
- ✅ CSRF Protection - Segurança contra ataques
- ✅ Method Spoofing - Suporte a PUT/DELETE
- ✅ Try-Catch - Tratamento de exceções
- ✅ Flash Messages - Feedback para o usuário
- ✅ Old Input - Persistência de dados em caso de erro
- Listar cursos → Acesse a página inicial
- Cadastrar curso → Clique em "Cadastrar Curso"
- Testar validação → Tente enviar formulário vazio
- Criar curso válido → Preencha corretamente e envie
- Editar curso → Clique em "Editar" na listagem
- Excluir curso → Clique em "Excluir" e confirme
Solução: Verifique as credenciais do banco no arquivo .env
Solução: Execute composer dump-autoload
Solução: Execute php artisan key:generate
Solução: Use outra porta: php artisan serve --port=8001
- Documentação Laravel
- Bootstrap 5 Docs
- PHP.net
- Laracasts - Tutoriais em vídeo
Contribuições são bem-vindas! Para contribuir:
- Fork o projeto
- Crie uma branch:
git checkout -b feature/nova-funcionalidade - Commit suas mudanças:
git commit -m 'Adiciona nova funcionalidade' - Push para a branch:
git push origin feature/nova-funcionalidade - Abra um Pull Request
Este projeto foi desenvolvido para fins educacionais e de portfólio.
Alan Borges
- GitHub: @alanborgesdev
- LinkedIn: linkedin.com/in/alanborgesdev
Este projeto foi desenvolvido como demonstração de habilidades técnicas em:
- Desenvolvimento web full-stack
- Framework Laravel (PHP)
- Arquitetura MVC
- Boas práticas de programação
- Interface responsiva
- Validação de dados
Desenvolvido com 💙 por Alan Borges