Sistema web desenvolvido em Laravel 12 para gerenciamento de posts com categorização e relatórios.
Este sistema permite:
- ✅ CRUD completo de Posts - Criar, listar, visualizar, editar e excluir posts
- ✅ Sistema de Categorias - Organização de posts por categorias
- ✅ Sistema de Usuários - Controle de autoria dos posts
- ✅ Exclusão em Massa - Funcionalidade para excluir múltiplos posts
- ✅ Relatórios - Visualização de posts por categoria e principais autores
- ✅ Validações - Controle de integridade dos dados
- id (PRIMARY KEY)
- name (string)
- email (string, unique)
- password (string)
- created_at, updated_at (timestamps)- id (PRIMARY KEY)
- name (string, unique)
- description (string, nullable)
- created_at, updated_at (timestamps)- id (PRIMARY KEY)
- category_id (FOREIGN KEY → categories.id)
- user_id (FOREIGN KEY → users.id)
- title (string, min: 3 caracteres)
- text (text)
- published_at (datetime, nullable)
- created_at, updated_at (timestamps)- id (PRIMARY KEY)
- user_id (FOREIGN KEY → users.id, nullable)
- ip_address (string)
- user_agent (text)
- payload (longtext)
- last_activity (integer)- Users → Posts: Um usuário pode ter muitos posts (1:N)
- Categories → Posts: Uma categoria pode ter muitos posts (1:N)
- Posts: Cada post pertence a um usuário e uma categoria
- Email único para usuários
- Nome único para categorias
- Título mínimo de 3 caracteres para posts (constraint no BD)
- Chaves estrangeiras com integridade referencial
- Published_at nullable para permitir rascunhos
- Chaves primárias automáticas
- Índices em chaves estrangeiras
- Email único indexado
- PHP 8.2+
- Composer
- MySQL/PostgreSQL/SQLite
- Node.js (para assets, se necessário)
# Clone o repositório
git clone [url-do-repositorio]
cd cadastrousuarios
# Instalar dependências PHP
composer install# Copiar arquivo de configuração
cp .env.example .env
# Gerar chave da aplicação
php artisan key:generateEdite o arquivo .env com suas configurações:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cadastrousuarios
DB_USERNAME=seu_usuario
DB_PASSWORD=sua_senha# Criar tabelas no banco
php artisan migrate# Executar seeders para dados iniciais
php artisan db:seed
# Ou seeders específicos
php artisan db:seed --class=UserSeeder
php artisan db:seed --class=CategorySeeder
php artisan db:seed --class=PostSeeder# Servidor de desenvolvimento
php artisan serve
# Aplicação disponível em: http://localhost:8000# Limpar cache
php artisan cache:clear
# Listar rotas
php artisan route:list
# Reset completo do banco
php artisan migrate:fresh --seed| Método | URL | Ação | Nome da Rota |
|---|---|---|---|
| GET | / |
Página inicial | - |
| GET | /posts |
Listar posts | posts.index |
| GET | /posts/create |
Criar post | posts.create |
| POST | /posts |
Salvar post | posts.store |
| GET | /posts/{id} |
Ver post | posts.show |
| GET | /posts/{id}/edit |
Editar post | posts.edit |
| PUT | /posts/{id} |
Atualizar post | posts.update |
| DELETE | /posts/{id} |
Excluir post | posts.destroy |
| GET | /reports/post-per-category |
Relatório por categoria | reports.post-per-category |
| GET | /reports/top-authors |
Top autores | reports.top-authors |
- Título obrigatório (mín. 3 caracteres)
- Texto obrigatório
- Categoria deve existir
- Data de publicação válida
- Try-catch nos controllers
- Logs de erro
- Mensagens de feedback ao usuário
- Validação de existência de registros
- Validação de entrada
- Prepared statements (Query Builder)
- CSRF protection (Laravel padrão)
- Sistema de autenticação completo
- Upload de imagens para posts
- Sistema de comentários
- Tags para posts
- Busca e filtros avançados
- API RESTful
- Testes automatizados
Desenvolvido com ❤️ usando Laravel 12