Login & Sign up using Flask


Project Overview

This is a simple, but multi functional login and signup web page system. This has the functionalities of:

  • User creating (sign up)
  • Sign Up Validating
  • User Login
  • Login Validating
  • Send User's Names to Dashboard page
  • Forgot Password with Verification Email Sending
  • Create new Password through Time Limited Token
  • Sign Up with Google (Continue with Google)
  • Maintain the User Database

I used Flask-Mail for sending emails when forgot password functions and Google API Client Services with google-auth libraries for continue with google function.

  • Flask
  • Python
  • HTML
  • CSS
  • JavaScript
  • MySQL
  • Bootstrap
  • Google API
  • flask-mail
  • google-auth
  • Google Cloud Console

Interfaces

User Sign Up and Login

interface1
interface2

User Dashboard

interface3

Forgot Password

interface4
interface5

Password Reset Token Email

interface6

Password Reset

interface7
interface8

Continue with Google

interface9
interface410

Used Technologies and Prerequisites

  • Fronted was developed using HTML, CSS and JavaScript.
  • Bootstrap 5.2.3 is used for keep responsiveness.
  • Backend was developed using Flask, the Python framework.
  • MySQL is used for database management.
  • Prerequisites

  • Import the blogner.sql to your MySQL database named 'blogner'.
  • Before you run this, install virtual env and run the system in that.
  • Then install all dependencies using requirements.txt on it. [[pip install -r requirements.txt]]
  • Setup the Google Cloud Console for google client credentials.
  • Next change all google client IDs and passwords in the main.py file according to your google client profile.
  • Also copy the client secret as a json to the client_secret.json file.
  • Finally run the project on your localhost.

Reflection and Learning

  • Through this project, I enhanced my Python skills, effectively utilizing the language to build dynamic and interactive features within the scopes of user authentication, user account management and mailing systems.
  • Improved the knowledge in Flask web framework and its libraries.
  • Understanding of User-Centric and User-Friendly Design.
  • Gained the database Management skills.
  • Learned more about using Google APIs and Google Cloud Console with Flask.
  • Awareness of Security principles such like sessions and built-in user authentication functions in Flask.
  • Experience with Version Control (GitHub).
  • Improved Time Management, Testing and Quality Assurance skills.