Logo da Teachy
Entrar

Projeto: Desenvolvimento de uma Loja Virtual de Livros com Banco de Dados e Autenticação de Usuários

Lara da Teachy


Programação em Python

Original Teachy

Python para Web: Banco de Dados e Autenticação de Usuários

Contextualização

Nesse mundo digital contemporâneo, a maior parte das informações que geramos e usamos estão armazenadas em algum tipo de banco de dados (BD). Podemos pensar em um banco de dados como um armazém de dados, onde podemos guardar, buscar, modificar e administrar informações de forma estruturada. Os bancos de dados são partes essenciais do back-end de quase todos os sistemas que utilizamos, sejam eles em nossos computadores pessoais, aplicativos de smartphones ou nos servidores da cloud.

Na Python, lidamos com bancos de dados utilizando bibliotecas como SQLite3, MySQLdb, Psycopg, entre outros. Além disso, existem ferramentas como o Object Relational Mapping (ORM), que facilitam ainda mais essa interação, tornando nosso código mais intuitivo e evitando muitos erros comuns. Através de um ORM, podemos tratar as tabelas do banco de dados como se fossem objetos dentro do nosso programa.

Além disso, a autenticação de usuários é essencial para garantir a segurança e a privacidade do usuário. Isso é especialmente importante em aplicações que armazenam ou lidam com informações sensíveis, como detalhes financeiros, informações médicas ou dados pessoais. É essencial que essas informações sejam acessadas apenas pelos usuários corretos. Por essa razão, sistemas de login de usuário e gerenciamento de sessões são componentes essenciais de muitas aplicações web.

Importância

Vocês já utilizaram algum sistema online, como uma rede social, uma loja virtual ou até mesmo seu e-mail? Se sim, então vocês já interagiram com bancos de dados e sistemas de autenticação de usuários. Todos esses sistemas necessitam armazenar, buscar e modificar informações em um BD, seja para armazenar posts de usuários, produtos à venda, ou simplesmente guardar as mensagens que você envia e recebe.

Também, todos esses sistemas possuem algum tipo de autenticação de usuários. Quando você se loga em seu Facebook, por exemplo, é o sistema de autenticação dele que garante que você é realmente quem diz ser, permitindo que você acesse suas informações privadas - e mais importante, impedindo que outros acessem. Entretanto, vocês já se perguntaram como isso tudo funciona? Com o projeto "# Python para Web: Banco de Dados e Autenticação de Usuários", vocês terão a oportunidade de entender e colocar em prática esses conceitos.

Materiais Extras

Para um melhor entendimento dos conceitos abordados, recomendo as leituras e visualizações:

  • [Database System Concepts] - Livro de texto fundamental sobre o funcionamento dos bancos de dados.
  • [Documentação oficial da biblioteca SQLite3]
  • [Tutorial de SQLAlchemy]
  • [Python e Django Tutorial: Web Development com Python e Django]

Lembrando que estes materiais são complementares. A compreensão e exploração do conteúdo abordado em sala ainda é de fundamental importância para o desenvolvimento do projeto.

Atividade Prática

Desenvolvimento de uma Loja Virtual de Livros com Banco de Dados e Autenticação de Usuários

Objetivo do Projeto

Desenvolver uma aplicação web para uma loja virtual de livros utilizando Python e suas bibliotecas para web. Esta aplicação deverá contar com um banco de dados para armazenar as informações dos livros e dos usuários e um sistema de autenticação para que os usuários possam acessar sua conta, ver e editar seus dados e fazer compras.

Materiais Necessários

  • Computador com Python instalado
  • Acesso à Internet
  • Bibliotecas SQLAlchemy, SQLite3, Flask (Python)
  • Editor de Código Fonte (como o Visual Studio Code, PyCharm, Atom, etc.)
  • Navegador da Web

Descrição Detalhada do Projeto

O projeto consiste na criação de uma loja virtual de livros. A loja precisa ter um catálogo de livros, cada um com seu título, autor, gênero, preço e quantidade em estoque. Além disso, a loja deve permitir que usuários se cadastrem e se autentiquem.

Os usuários devem ser capazes de:

  • Criar uma conta
  • Logar e deslogar de sua conta
  • Ver os livros disponíveis na loja
  • Adicionar livros ao carrinho
  • Remover livros do carrinho
  • Fazer um "pedido" (não é necessário implementar a parte de pagamento)

Todos os dados dos usuários e também dos livros devem ser armazenados em um banco de dados SQL.

Passo a Passo para a Realização da Atividade

  1. Planejamento: Antes de iniciar a codificação, é importante planejar o projeto. Pensem em como vocês querem que a loja virtual funcione, quais recursos ela terá e como será a interface do usuário. Em seguida, planejem como o banco de dados será estruturado. Quais tabelas serão necessárias? Quais serão as relações entre elas?

  2. Configuração do Ambiente: Instalem as bibliotecas necessárias e configurem o ambiente de programação.

  3. Criar o Banco de Dados: Utilizem a SQLAlchemy para criar o esquema de banco de dados com as tabelas necessárias.

  4. Implementar o Sistema de Autenticação: Vocês podem usar a biblioteca Flask-Login para isso.

  5. Display do Catálogo de Livros: Implementem a página que irá exibir os livros disponíveis. Os dados devem vir do banco de dados.

  6. Implementar Carrinho de Compras: Os usuários devem poder adicionar e remover livros. Implementem isso usando sessões da Flask.

  7. Implementar a Conclusão do Pedido: Quando o usuário decidir finalizar a compra, os dados devem ser adicionados no banco de dados.

  8. Implementar a Página de Perfil do Usuário: Permita que o usuário veja seus dados e histórico de pedidos.

  9. Teste: Realizem testes para garantir que todos os recursos funcionam como esperado.

  10. Apresentação: Preparem uma apresentação demonstrando e explicando o funcionamento de sua loja virtual. Lembrem-se de discutir os desafios que enfrentaram, como superá-los e o que aprenderam durante a execução do projeto.

O projeto em si terá duração de 30 dias e será desenvolvido em grupos de 3 a 5 alunos. Essa é uma estimativa, por isso, a organização e o gerenciamento do tempo dentro do grupo é crucial para o sucesso do projeto.

Entregas do Projeto

O grupo deve entregar:

  1. O código-fonte do projeto.
  2. Um relatório escrito com as seções: Introdução, Desenvolvimento, Conclusões e Bibliografia utilizada.
    • Introdução: Contextualize o projeto, explique sua relevância e objetivos.
    • Desenvolvimento: Descreva com detalhes os passos tomados e desafios encontrados durante a execução do projeto. Explique as decisões tomadas e a metodologia utilizada. Apresente o resultado final.
    • Conclusões: Retome os pontos principais e o que foi aprendido durante o desenvolvimento do trabalho. Que conclusões podem ser tiradas das experiências durante o projeto?
    • Bibliografia: Referencie livros, vídeos, sites que ajudaram durante o processo.
  3. Uma apresentação demonstrando o projeto e discutindo os aprendizados obtidos.

O código, o relatório e a apresentação servirão como registros de todo o esforço e aprendizado obtido durante a execução do projeto. O relatório será especialmente importante para conectar o projeto prático com a teoria estudada. Ele deve complementar a implementação com explicações teóricas dos tópicos abordados: bancos de dados, autenticação de usuários, programação Python para Web, entre outros. Assim, ao redigirem o documento escrito, os estudantes terão a oportunidade de refletir sobre o que foi feito, reforçar e expandir seu conhecimento teórico, além de praticar habilidades de escrita técnica.


Iara Tip

Precisa de materiais para apresentar o tema do projeto em sala?

Na plataforma da Teachy você encontra uma série de materiais prontos sobre esse tema! Jogos, slides, atividades, vídeos, planos de aula e muito mais...

Quem viu esse projeto também gostou de...

Default Image
Imagem do conteúdo
Projeto
Desenvolvimento de um Sistema de Recomendação de Filmes
Lara da Teachy
Lara da Teachy
-
Default Image
Imagem do conteúdo
Projeto
Simulação de um Jogo de Escolhas Interativas Utilizando Conceitos de Controle de Fluxo em Python
Lara da Teachy
Lara da Teachy
-
Default Image
Imagem do conteúdo
Projeto
Explorando e Aplicando os Tipos de Dados em Python
Lara da Teachy
Lara da Teachy
-
Default Image
Imagem do conteúdo
Projeto
Criando um Simulador de Parque de Diversões
Lara da Teachy
Lara da Teachy
-
Community img

Faça parte de uma comunidade de professores direto no seu WhatsApp

Conecte-se com outros professores, receba e compartilhe materiais, dicas, treinamentos, e muito mais!

2025 - Todos os direitos reservados

Termos de usoAviso de PrivacidadeAviso de Cookies