Material organizado para estudo progressivo, com leitura confortável, recursos complementares e navegação para a próxima etapa da disciplina.
Resumo
Aula 1: Foi feita a introdução ao projeto GameStock 2026 V2, apresentando a ideia geral da loja de games online, o objetivo do sistema e a estrutura base em MVC. A aula também explicou como o projeto seria organizado em pastas como app, controllers, models, views, public, assets, uploads e config, servindo como visão inicial para os alunos entenderem onde cada parte do sistema ficaria.
Linguagens de Programação16/04/2026Vídeo disponívelAula interativa importada
Se preferir consumir por vídeo antes da leitura, este é o ponto de entrada mais rápido.
Vídeo
Conteúdo principal
Leitura pensada para estudo, consulta e revisão. Use a navegação lateral para alternar entre etapas da aula.
Estudo
Conteúdo interativo — HTML importado
Aula 1 -Visão Geral, Banco e Projeto
Abra o material em tela cheia para estudar com conforto, sem sair da disciplina.
Aula 1 -Visão Geral, Banco e Projeto
100%
Carregando conteúdo interativo...
Aula 1 — GameStock 2026 V2 ◀ ▶ 1 / 0 Tela cheia A1 GameStock 2026 V2 · Aula 1 Visão Geral, Banco e Projeto Vamos transformar o material do GameStock em um projeto moderno: loja pública de games, login administrativo, dois CRUDs e back-end PHP 8 com PDO, MVC e POO. Projeto real HTML5 CSS3 JavaScript PHP 8 MySQL /loja GAME Pixel Quest Aventura R$ 59,90 GAME Cyber Kart Corrida R$ 89,90 01 01·O Produto que Vamos Construir O que é o GameStock? GS Ideia centralO GameStock 2026 V2 é uma loja online simples de games. A parte pública mostra os jogos cadastrados; a parte administrativa permite login e manutenção dos dados. Loja pública Lista os games cadastrados no banco, exibindo título, categoria, descrição, preço, estoque e imagem. Painel admin Usuário logado gerencia os registros. Nesta versão teremos dois CRUDs: usuários e games. fluxo do sistema 1 Administrador acessa o login O sistema valida e cria uma sessão segura. 2 Administrador cadastra um game Os dados entram no MySQL usando PDO. 3 A loja exibe o game A vitrine consulta a tabela games. 02 02·Escopo da V2 O que entra na versão 2? CRUD 1 Games Cadastrar, listar, editar, excluir e pesquisar jogos. CRUD 2 Usuários Gerenciar quem acessa o painel administrativo. Acesso Login Autenticação com senha protegida e sessão PHP. Vitrine Loja online Games cadastrados aparecem automaticamente na página pública. ! Recorte didáticoNão vamos criar carrinho de compras, pagamento ou API externa nesta primeira versão. O foco é CRUD, login, banco, PDO, MVC e POO. OK Resultado esperadoAo final do curso, o aluno terá um sistema web funcional, organizado em camadas e pronto para melhorias. 03 03·Tecnologias A pilha do projeto Front-end HTML5 estrutura as páginas. CSS3 organiza o visual da loja e do painel. JavaScript melhora interações, validações e mensagens. Back-end PHP 8 processa as requisições. PDO conversa com o MySQL com segurança. Sessions mantêm o usuário logado. Arquitetura POO organiza classes e responsabilidades. MVC separa dados, telas e controle. BaseModel compartilha a conexão com PDO. i Melhoria da V2O material original já usa PHP 8, PDO, POO, MVC e MySQL. Na V2 vamos deixar o caminho mais limpo: nomes consistentes, responsabilidades claras, senhas com hash e consultas preparadas. 04 04·Fluxos do Sistema Loja pública e painel admin Loja públicaPainel admin 1. Visitante entra na loja A página inicial carrega a vitrine de games. → 2. PHP consulta o banco O sistema busca games cadastrados, ordenados por título ou data. 3. HTML renderiza cards Cada registro vira um card com imagem, preço, estoque e descrição. → 4. Usuário visualiza A loja não edita dados; apenas mostra o conteúdo do banco. 1. Usuário faz login O e-mail é localizado e a senha é conferida com password_verify(). → 2. Sessão protege Páginas administrativas exigem $_SESSION ativa. 3. Controller recebe Cadastrar, editar ou excluir passa pelo Controller correto. → 4. Model usa PDO O Model executa a operação no banco e a View mostra a resposta. 05 05·Modelo de Dados As duas entidades principais USUARIOS idIdentificador único do usuário. nomeNome exibido no painel. emailUsado no login. Deve ser único. senhaHash criado com password_hash(). perfilExemplo: admin ou editor. GAMES idIdentificador único do game. tituloNome comercial do jogo. descricaoTexto que aparece na loja. precoValor de venda com duas casas decimais. estoqueQuantidade disponível. usuario_idQuem cadastrou ou gerencia o game. usuarios.id 1 → N games.usuario_id Um usuário pode cadastrar vários games. 06 06·SQL Inicial Criando o banco gamestock2026_v2 SQL inicial / phpMyAdmin SQLCopiar CREATE DATABASE IF NOT EXISTS gamestock2026_v2 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE gamestock2026_v2; CREATE TABLE usuarios ( id INT AUTO_INCREMENT PRIMARY KEY, nome VARCHAR(120) NOT NULL, email VARCHAR(160) NOT NULL UNIQUE, senha VARCHAR(255) NOT NULL, perfil ENUM('admin', 'editor') NOT NULL DEFAULT 'editor', criado_em TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB; CREATE TABLE games ( id INT AUTO_INCREMENT PRIMARY KEY, titulo VARCHAR(160) NOT NULL, descricao TEXT NOT NULL, preco DECIMAL(10,2) NOT NULL, estoque INT NOT NULL DEFAULT 0, categoria VARCHAR(80) NOT NULL, imagem VARCHAR(255) DEFAULT NULL, usuario_id INT NOT NULL, criado_em TIMESTAMP DEFAULT CURRENT_TIMESTAMP, CONSTRAINT fk_games_usuarios FOREIGN KEY (usuario_id) REFERENCES usuarios(id) ON UPDATE CASCADE ON DELETE RESTRICT ) ENGINE=InnoDB; PK Chave primáriaid identifica cada registro sem depender de nome, e-mail ou título. FK Chave estrangeiragames.usuario_id liga o game ao usuário que o cadastrou. ! SenhaO campo senha guarda o hash. A senha real nunca deve ser salva em texto puro. 07 07·Dados de Teste Populando a loja seeds.sql SQLCopiar -- Usuario inicial sera criado pela aplicacao usando password_hash(). -- Exemplo de games para testar a vitrine: INSERT INTO games (titulo, descricao, preco, estoque, categoria, imagem, usuario_id) VALUES ('Pixel Quest', 'Aventura 2D com fases e chefes.', 59.90, 12, 'Aventura', 'pixel-quest.jpg', 1), ('Cyber Kart', 'Corridas futuristas em pistas neon.', 89.90, 8, 'Corrida', 'cyber-kart.jpg', 1), ('Dungeon Stack', 'RPG de masmorra com inventario.', 74.90, 5, 'RPG', 'dungeon-stack.jpg', 1); Por que testar com dados? Sem registros, não conseguimos validar listagem, cards da loja, buscas, edição e exclusão. ! Atenção práticaSe ainda não existir um usuário com id = 1, os inserts de games com chave estrangeira vão falhar. Isso é o banco protegendo a consistência. i Melhoria para a turmaNa aula de login, criaremos o usuário inicial pelo PHP, usando password_hash(), em vez de colar uma senha manual no banco. 08 08·MVC e Diretórios Onde fica? Estrutura base MVCCopiar /GameStock2026V2 ├── app/ │ ├── config/ │ │ ├── config.php │ │ └── Database.php │ ├── controllers/ │ │ ├── AuthController.php │ │ ├── GameController.php │ │ └── UserController.php │ ├── models/ │ │ ├── BaseModel.php │ │ ├── Game.php │ │ └── User.php │ └── views/ │ ├── auth/ │ ├── games/ │ └── users/ ├── public/ │ ├── assets/css/style.css │ ├── assets/js/app.js │ ├── assets/img/ │ ├── uploads/games/ │ └── index.php └── README.md M Model Representa as regras e dados principais: BaseModel, Game e User. V View Mostra HTML para o usuário: auth, games e users. C Controller Recebe requisições, chama Models e escolhe a resposta correta. A Assets e uploads assets/img guarda imagens da interface; uploads/games guarda capas enviadas no cadastro. 09 09·Segurança desde o Início Boas práticas que já entram PDO preparado Parâmetros ficam separados do SQL, reduzindo risco de SQL Injection. Senha com hash Usaremos password_hash() e password_verify(). Sessão protegida O painel administrativo só abre com $_SESSION ativa. ideia de consulta segura PHPCopiar $sql = "SELECT * FROM games WHERE titulo LIKE :busca"; $stmt = $pdo->prepare($sql); $stmt->execute([ ':busca' => '%' . $termo . '%' ]); $games = $stmt->fetchAll(PDO::FETCH_ASSOC); 10 10·Roteiro do Curso Da aula 1 ao sistema pronto 1 Visão geral, banco e projeto Entender o sistema, o escopo e o modelo de dados. 2 HTML5, CSS3 e layout inicial Criar a vitrine pública e o painel visual. 3 PHP 8, MVC e rotas simples Organizar diretórios e fluxo das requisições. 4 PDO e conexão com MySQL Criar a classe de banco e testar consultas. 5 CRUD de games Listar, cadastrar, editar, excluir e buscar games. 6 CRUD de usuários Criar usuários e armazenar senhas corretamente. 7 Login, sessão e proteção Autenticar, sair e bloquear acesso sem sessão. 8 Loja final e revisão Integrar vitrine com banco, lapidar interface e revisar o projeto. 11 11·Exercícios Prática da Aula 1 01 Explique a diferença entre loja pública e painel administrativo.FACIL▼ A loja mostra games para qualquer visitante. O painel exige login e altera dados no banco.Ver dica 02 Liste os campos essenciais da tabela games e diga por que cada um existe.MEDIO▼ Pense em: id, titulo, descricao, preco, estoque, categoria, imagem e usuario_id.Ver dica 03 Por que a senha do usuário não deve ser salva em texto puro?MEDIO▼ Se o banco vazar, senhas em texto puro ficam imediatamente expostas. O hash reduz esse risco.Ver dica 04 Desenhe o fluxo: cadastrar game no painel até aparecer na loja.DESAFIO▼ Login → formulario de game → controller → model/PDO → tabela games → loja consulta → card aparece.Ver dica 12 FIM·Resumo Resumo da Aula 1 01GameStock 2026 V2 é uma loja de games com vitrine pública e painel administrativo. 02O projeto terá dois CRUDs: usuários e games. 03A base será PHP 8, POO, MVC, BaseModel, PDO, MySQL, HTML5, CSS3 e JavaScript. 04As tabelas principais são usuarios e games, ligadas por usuario_id. 05A V2 já nasce com boas práticas: senha com hash, sessão, PDO preparado e separação de responsabilidades. Próxima aula Aula 2 — Interface HTML5, CSS3 e JavaScript