Temas de CRUD para o Dashboard

1. Gerenciamento de Banners Rotativos (Carousel)

Objetivo: Criar um painel para adicionar, editar, listar e remover imagens de destaque, categorizando em qual local do site elas aparecerão.

Campos da Tabela tb_banner: id, titulo, imagem (caminho do arquivo), link_destino, status (ativo/inativo), posicao_id (Chave Estrangeira).

Campos da Tabela tb_posicao_banner: id, descricao_posicao (ex: Topo, Rodapé, Lateral).

Requisito Médio: O upload da imagem via PHP deve renomear o arquivo para evitar duplicidades. Na listagem obrigatória, exibir uma miniatura (thumbnail) da imagem e trazer a descrição da posição via JOIN. Usar Modal para pedir confirmação (modal ou alert) antes de excluir.

2. Publicação de Avisos/Notícias Internas

Objetivo: Administradores publicam comunicados visíveis no painel, classificados por categoria.

Campos da Tabela tb_aviso: id, titulo, conteudo, data_publicacao, autor_id (FK de tb_usuario), categoria_id (FK), imagem_banner.

Campos da Tabela tb_categoria_aviso: id, nome_categoria (ex: RH, TI, Geral).

Requisito Médio: A tabela de exibição deve mostrar o nome do autor e a categoria (fazendo JOIN com ambas as tabelas). A data/hora deve ser formatada via PHP (DD/MM/AAAA HH:ii). Exibir a imagem cadastrada como banner do aviso na edição/visualização.

3. Cadastro de Produtos (Catálogo com Galeria)

Objetivo: Manter um catálogo de produtos onde cada item pode ter múltiplas imagens associadas (relação 1:N).

Campos da Tabela tb_produto: id, nome, descricao, preco (Decimal), quantidade_estoque (Inteiro).

Campos da Tabela tb_imagem_produto: id, url_imagem (caminho do arquivo de upload), produto_id (Chave Estrangeira).

Requisito Médio: Validação no frontend (JS) e backend (PHP) para impedir preços e estoques negativos. O formulário de produto deve permitir o upload de uma ou mais imagens que serão salvas na tabela secundária. Implementar as funcionalidades Editar, Upload de Novas Imagens e Excluir.

4. Controle de Equipamentos (Patrimônio)

Objetivo: Gerenciar o inventário de equipamentos físicos da empresa/escola.

Campos da Tabela tb_equipamento: id, nome_equipamento, codigo_patrimonio, data_aquisicao, estado_conservacao (Novo, Bom, Necessita Reparo), categoria_id (FK), imagem_equipamento.

Campos da Tabela tb_categoria_equipamento: id, nome_categoria (ex: Informática, Mobiliário).

Requisito Médio: O PHP deve validar o banco para impedir cadastro de um codigo_patrimonio duplicado. Na listagem, o campo estado_conservacao deve ser exibido usando Badges coloridos do Bootstrap. Exibir a imagem do produto.

5. Gerenciador de Tarefas da Equipe (To-Do List)

Objetivo: Atribuir tarefas administrativas vinculadas a um projeto específico, contendo arquivos anexos.

Campos da Tabela tb_tarefa: id, titulo_tarefa, descricao, prazo_limite (Date), responsavel_id (FK de tb_usuario), projeto_id (FK), status, arquivo_anexo (upload de PDF/Doc).

Campos da Tabela tb_projeto: id, nome_projeto.

Requisito Médio: O formulário deve conter < select >s populados dinamicamente para os usuários e projetos. Na listagem, prazos vencidos devem colorir a linha da tabela de vermelho. Exibir o avatar do responsável (vindo da tb_usuario) e disponibilizar o download do arquivo_anexo.

6. Controle de Cupons de Desconto

Objetivo: Gerar códigos promocionais vinculados a campanhas de marketing específicas.

Campos da Tabela tb_cupom: id, codigo_cupom, porcentagem_desconto, data_validade, campanha_id (FK), imagem_tematica (upload).

Campos da Tabela tb_campanha: id, nome_campanha (ex: Dia dos Pais, Black Friday).

Requisito Médio: O PHP não pode permitir inserção de códigos já existentes. O JS deve converter automaticamente o texto do codigo_cupom para maiúsculas em tempo real. Exibir a imagem temática associada ao cupom na listagem.

7. Cadastro de Filiais/Polos de Atendimento

Objetivo: Registrar endereços das unidades físicas da instituição, vinculando-as a cidades.

Campos da Tabela tb_unidade: id, nome_unidade, endereco_completo, telefone, gerente_id (FK de tb_usuario), cidade_id (FK), logomarca (upload).

Campos da Tabela tb_cidade: codigo_cidade, nome_cidade, uf.

Requisito Médio: O telefone deve possuir máscara em JS (ex: (99) 99999-9999). A tabela obrigatória deve ter um input de busca que filtre as filiais digitando parte do nome via JS, sem recarregar a página. A lista de cidades deve ser carregada dinamicamente num < select >.

8. Gerenciamento de Depoimentos/Avaliações

Objetivo: Moderar depoimentos sobre cursos específicos, incluindo envio de foto/comprovante.

Campos da Tabela tb_depoimento: id, autor_id (FK de tb_usuario), curso_id (FK), texto_depoimento, nota_avaliacao (1 a 5), aprovado (Booleano), foto_comprovante (upload).

Campos da Tabela tb_curso: id, nome_curso.

Requisito Médio: Na tabela, exibir a nota renderizando ícones de estrelas e mostrar a média. A aprovação pode ser alterada no próprio grid via update. Exibir o avatar do autor, nome, data/hora e a foto_comprovante enviada.

9. Sistema de FAQ (Perguntas Frequentes)

Objetivo: Cadastrar perguntas e respostas, anexando materiais de apoio visuais ou manuais.

Campos da Tabela tb_pergunta: id, pergunta, resposta, area_id (FK), imagem_ilustrativa (upload).

Campos da Tabela tb_area_relacionada: codigo_area, nome_area (Vendas, Suporte, etc).

Requisito Médio: A resposta deve usar < textarea >. Na listagem, respostas longas devem ser truncadas via PHP (exibir 50 caracteres) abrindo o texto completo em um Modal/Collapse. Agrupar visualmente as perguntas por área e exibir a imagem_ilustrativa quando houver.

10. Repositório de Documentos Internos (Downloads)

Objetivo: Painel de upload de manuais ou planilhas, organizados por departamento.

Campos da Tabela tb_documento: id, titulo_documento, arquivo (upload no servidor), tamanho_arquivo, usuario_id (FK de tb_usuario), departamento_id (FK).

Campos da Tabela tb_departamento: id, nome_departamento.

Requisito Médio: O PHP deve validar rigorosamente a extensão do arquivo enviado, rejeitando executáveis (.exe, .bat). A listagem deve resolver o JOIN para exibir o nome do departamento e do usuário, além de constar a tag < a > para visualização/download do arquivo cadastrado.

/************* EQUIPES ************/

1 - NATHALIA / LAVÍNIA
2 - EDYLEN / MARIA CLARA
3 - JÚLIO / BRUNA
4 - SOFIA TEREZA / YASMIN
5 - RAQUEL / JÚLIA
6 - ISABELLY / ANA BEATRIZ
7 - LUIGI / MARIA FERNANDA
8 - LORENZO / GABRIEL
9 - ELOAH / THAIS / ANA AMARAL