101 lines
2.7 KiB
Markdown
101 lines
2.7 KiB
Markdown
# Catálogo Pessoal de Vídeos & Dicas
|
|
|
|
Sistema PHP puro + MySQL para catalogar vídeos, artigos e anotações pessoais.
|
|
|
|
## Requisitos
|
|
|
|
- PHP 8.0+
|
|
- MySQL 5.7+ / MariaDB 10.3+
|
|
- Extensão PDO + pdo_mysql habilitada
|
|
|
|
## Instalação
|
|
|
|
### 1. Banco de dados
|
|
|
|
```bash
|
|
mysql -u root -p -e "CREATE DATABASE catalogo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
|
|
mysql -u root -p catalogo < catalogo_schema.sql
|
|
```
|
|
|
|
### 2. Configurar conexão
|
|
|
|
Edite `includes/db.php` com suas credenciais:
|
|
|
|
```php
|
|
define('DB_HOST', 'localhost');
|
|
define('DB_NAME', 'catalogo');
|
|
define('DB_USER', 'root');
|
|
define('DB_PASS', 'sua_senha');
|
|
```
|
|
|
|
### 3. Permissão de upload
|
|
|
|
```bash
|
|
chmod 755 uploads/
|
|
```
|
|
|
|
### 4. Servidor de desenvolvimento
|
|
|
|
```bash
|
|
# Na raiz do projeto:
|
|
php -S localhost:8000
|
|
```
|
|
|
|
Acesse: http://localhost:8000
|
|
|
|
### 5. Login padrão
|
|
|
|
- **E-mail:** admin@local.dev
|
|
- **Senha:** admin123
|
|
|
|
> ⚠️ Troque a senha em produção! Use `password_hash('nova_senha', PASSWORD_BCRYPT)` e atualize na tabela `usuario`.
|
|
|
|
---
|
|
|
|
## Estrutura de arquivos
|
|
|
|
```
|
|
/
|
|
├── index.php # Dashboard
|
|
├── login.php # Tela de login
|
|
├── logout.php
|
|
├── assets/
|
|
│ ├── css/style.css # Estilos (tema claro/escuro)
|
|
│ └── js/theme.js # Toggle de tema
|
|
├── includes/
|
|
│ ├── db.php # Conexão PDO
|
|
│ ├── auth.php # Sessão e autenticação
|
|
│ ├── helpers.php # Utilitários (upload, tags, CSRF...)
|
|
│ └── layout.php # Header, sidebar, footer
|
|
├── pages/
|
|
│ ├── conteudo/ # CRUD de conteúdos
|
|
│ │ ├── list.php
|
|
│ │ ├── form.php # Criar + Editar
|
|
│ │ ├── view.php
|
|
│ │ └── delete.php
|
|
│ ├── nota/ # CRUD de notas + upload
|
|
│ │ ├── list.php
|
|
│ │ ├── form.php
|
|
│ │ ├── view.php
|
|
│ │ └── delete.php
|
|
│ └── lookup/ # CRUD genérico: Tipo, Fonte, Tag
|
|
│ ├── _crud.php # Motor reutilizável
|
|
│ ├── tipo.php
|
|
│ ├── fonte.php
|
|
│ └── tag.php
|
|
└── uploads/ # Arquivos enviados (gitignore!)
|
|
```
|
|
|
|
## Funcionalidades
|
|
|
|
- ✅ Login com sessão PHP + bcrypt
|
|
- ✅ CSRF em todos os formulários POST
|
|
- ✅ Dashboard com estatísticas
|
|
- ✅ Catálogo de conteúdos com filtros (tipo, fonte, ranking, busca)
|
|
- ✅ Notas com upload de arquivo (qualquer tipo, máx. 20MB)
|
|
- ✅ Tags N:N para conteúdos e notas
|
|
- ✅ Ranking de 1 a 5 estrelas (interativo)
|
|
- ✅ CRUD completo: Tipos, Fontes, Tags
|
|
- ✅ Tema claro/escuro persistido em localStorage
|
|
- ✅ Escape de output (XSS protection)
|