Entrar

Projeto: Desenvolvimento de um Sistema de Login e Banco de Dados Simples com Python

Programação em Python

Original Teachy

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

Contextualização

Banco de Dados e Autenticação de Usuários em Python para Web são elementos cruciais para o funcionamento de qualquer aplicação web moderna. Tanto para armazenar informações relevantes para o funcionamento do site, como para garantir a segurança dos dados dos usuários, estes componentes são indispensáveis. Para dominar completamente a arte do desenvolvimento web, é necessário ter uma firme compreensão destes conceitos fundamentais.

A internet está cada vez mais presente em nosso dia a dia, e nessa era digital, lidar com grandes quantidades de dados tornou-se imprescindível. É nesta lacuna que os bancos de dados se encaixam. Eles são sistemas de armazenamento estruturado de dados que permitem a manipulação, recuperação e busca de informações. No mundo real, os bancos de dados têm uma vasta gama de aplicabilidades, desde sites de redes sociais, sistemas bancários, sites de e-commerce até sistemas de gestão empresarial.

Por outro lado, a autenticação de usuários é uma medida de segurança essencial que verifica a identidade de um usuário antes de conceder-lhe acesso a recursos de um sistema. No mundo virtual, bilhões de pessoas estão online todo dia, acessando seus emails, contas bancárias, redes sociais, entre outros, e cada uma dessas ações requer autenticação de usuário.

Introdução

Neste projeto, abordaremos os conceitos de Banco de Dados em particular SQL (Structured Query Language) e NoSQL (Not Only SQL), duas abordagens de modelagem de banco de dados amplamente empregadas. Aprenderemos como criar, ler, atualizar e excluir (CRUD) registros de um banco de dados usando SQL, assim como exploraremos os princípios de bancos de dados NoSQL.

A segunda grande parte do projeto focará na Autenticação de Usuários. Exploraremos diferentes formas de autenticação, como a autenticação HTTP básica, tokens JWT (JSON Web Token), OAuth, entre outros. Além disso, aprenderemos sobre os perigos dos ataques de injeção SQL e como prevenir esses ataques ao construir aplicativos web.

Este projeto aprofunda-se sobre tópicos importantes e essenciais em linguagem Python para web, como banco de dados e autenticação de usuários. Ao longo do projeto, os estudantes terão a chance de implementar e trabalhar nesses tópicos, obtendo uma base sólida que os ajudará a criar poderosas e seguras aplicações web.

Materiais de Apoio

  1. Tutorial Python em W3Schools: [Python MySQL] um excelente recurso para iniciantes em Python e SQL.

  2. Livro "Flask Web Development: Developing Web Applications with Python" de Miguel Grinberg, uma boa leitura para entender melhor o desenvolvimento Web em Python.

  3. Udemy Course: [Python and Django Full Stack Web Developer Bootcamp] um curso on-line completo para aqueles interessados em dominar Python e Django para desenvolvimento web.

  4. Documentação oficial do Django: [Django Authentication] um ótimo lugar para aprender sobre autenticação de usuário em aplicações web.

  5. Tutorial de autenticação de usuário do Flask: [Flask Login] para entender como o Flask lida com a autenticação de usuários.

Atividade Prática

Desenvolvimento de um Sistema de Login e Banco de Dados Simples com Python

Objetivo do Projeto

O objetivo central deste projeto é o desenvolvimento de um sistema de login e de um banco de dados simples para uma aplicação web fictícia utilizando Python. O sistema deve ser capaz de registrar, autenticar (login/logout) e gerenciar sessões de usuários enquanto protege adequadamente as informações sensíveis armazenadas.

Materiais Necessários

  • Python (versão 3.6 ou superior)
  • SQLite (para o banco de dados)
  • Flask (para o desenvolvimento da aplicação web)
  • Flask-Login (para a autenticação de usuário)
  • Suporte para desenvolvimento de texto (Editor de código, Google Docs, Microsoft Word, etc.) para redação do relatório.

Descrição Detalhada do Projeto

Este projeto, idealmente realizado em grupos de 3 a 5 alunos, envolve o desenvolvimento de um sistema simples de login e um banco de dados para uma aplicação web, onde os usuários podem se registrar, entrar, sair e ter suas sessões gerenciadas.

Passo a Passo da Atividade Prática

  1. Configurando o ambiente de trabalho: Cada grupo deve configurar seu ambiente de desenvolvimento, assegurando que as ferramentas e bibliotecas necessárias estão instaladas e funcionando. Este passo inclui a instalação do Python, SQLite e Flask.

  2. Criação do Banco de Dados: Usando SQLite, crie uma tabela Users com campos adequados como email, password, name, etc. Recorde-se da importância de armazenar senhas de forma segura (i.e., hashed e salted).

  3. Desenvolvimento da Aplicação Web: Usando Flask, desenvolva uma aplicação web simples com rotas para o registro, login e logout do usuário, além de uma página inicial apenas para usuários autenticados.

  4. Implementação do Sistema de Login: Utilize o Flask-Login para implementar a autenticação de usuários. Isto deve incluir o registro, o login, o logout e o gerenciamento de sessões.

  5. Testes: Verifique a funcionalidade e a segurança do sistema. Certifique-se de que as senhas estão sendo devidamente protegidas e que as sessões de usuário estão sendo corretamente gerenciadas.

  6. Preparação do Relatório: Por fim, prepare um relatório detalhado do projeto, incluindo conteúdos desde a introdução até as conclusões e a bibliografia utilizada.

Entregas do Projeto

Solicitamos que as equipes apresentem duas entregas principais ao finalizar este projeto:

  1. O Sistema de Login e o Banco de Dados: A aplicação web desenvolvida, incluindo todos os seus arquivos de código-fonte e o banco de dados SQLite. O sistema deve ser executável e todas as suas funcionalidades demonstráveis.

  2. O relatório: Cada equipe deve produzir um relatório detalhado e bem estruturado. O relatório deve seguir a estrutura solicitada, isto é, Introdução do tema, Desenvolvimento, Conclusões e Bibliografia utilizada. O relatório deve ser ilustrativo, mostrando todas as fases do projeto, destacando aprendizados, desafios encontrados e como foram superados.

Na "Introdução", os alunos devem trazer a importância dos conceitos trabalhados para o mundo da programação, justificando assim, o contexto do trabalho. No "Desenvolvimento", uma explicação aprofundada do passo a passo realizado, suas implicações teóricas e práticas, justificando cada passo. Na "Conclusão", as equipes devem despertar reflexões acerca do aprendizado adquirido, bem como tecer considerações finais sobre o trabalho executado. Na sessão de “Bibliografia”, os alunos deverão citar todas as fontes de pesquisa e materiais que utilizaram para completar o projeto.

Todas estas entregas ajudarão a demonstrar não apenas o entendimento do tópico por parte dos alunos, mas também sua capacidade de aplicar esses conceitos na prática de maneira eficaz e segura.

Comentários mais recentes
Nenhum comentário ainda. Seja o primeiro a comentar!
Iara Tip

DICA DA IARA

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...

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!

Teachy logo

Reinventamos a vida dos professores com inteligência artificial

Instagram LogoLinkedIn LogoTwitter LogoYoutube Logo
BR flagUS flagES flagIN flagID flagPH flagVN flagID flagID flag
FR flagMY flagur flagja flagko flagde flagbn flagID flagID flagID flag

2023 - Todos os direitos reservados

Termos de usoAviso de PrivacidadeAviso de Cookies