A
Report on
Registration and login system using Python.
Under the Guidance (Mentor) of
Aishwarya Saxena
By- Vibhava S
Core- Python
College: MVSR Engineering College, Hyderabad
Internship- Apr-Jun 2021
INDEX
[Link] TOPIC PAGE NO.
1 INTRODUCTION 3
2 OBJECTIVE 3
3 BACKGROUND 4
4 HARDWARE & 5
SOFTWARE
REQUIREMENTS
5 CODE 6-8
6 OUTPUT 9-11
7 FUTURE SCOPE 12
8 CONCLUSION 12
9 BIBLIOGRAPHY AND 13
REFERENCE
INTRODUCTION
User registration systems are screens, forms, or profile pages that request information
from a user to create a web-based account or profile. A user registration system
generally asks a user to create a username and password, and possibly answer other
security questions as well. Many user registration systems allow users to personalize
their accounts and profiles; other registration systems provide users’ account
information for them. User registration systems are usually HTML and PHP programs.
Data integrity is critical for any successful online business, and a user
registration/login system is the gateway to most web applications. Your registration
system should support a comprehensive set of tools and workflows out of the box,
such as password management and reset logic, email verification workflows, inline
field validation, CAPTCHA spam prevention, dirty word filtering, Children’s Online
Privacy Protection (COPPA) flows, and terms of service acceptance.
OBJECTIVE
The main objective of the Login System is to manage the details of Login, Change
Password, Username, Register, Programmer. It manages all the information about
Login, Password, Programmer, Login. This project is to implement registration and
login system using Tkinter module in python.
BACKGROUND
Registration only happens the first time you access the system. It is a way to check
your credentials. Every time after your initial registration, you will log on to the
system using the username and password you created.
Unlike other types of user interface forms, login forms do not come in all shapes and
sizes. They are limited to the number of fields that are used. The reason for such a
minimal and capsule approach is trivial: people do not like to fill in forms. You cannot
be pushy by asking for too much information. These forms should be simple, familiar,
and straight to the point.
As a rule, the login form includes two inputs, links to alternative scenarios, and a
submit button. Even though you must be concise, still there is plenty to choose from:
Username field
Email field
Telephone number field
Password field
Alternative login options (Facebook, Twitter, Amazon, Adobe, Apple, etc.)
Forgot password link
Submit button
Show password option
Keep me logged in option
Registration link
As a rule, developers prefer to use these fields:
Email field
Password field
Alternative login options
Forgot password link
Submit button
Depending on the purpose of your login form, you may choose one or another field or
extend this default pack with other options.
HARDWARE REQUIREMENTS
Hardware Tools Minimum Requirements
Processor i5 or above
Hard Disk 10GB
RAM 8GB
Monitor 17” colored
Mouse Optical
Keyboard 122
SOFTWARE REQUIREMENTS
Software Tools Minimum Requirements
Platform Windows, Linux (or) MacOS
Operating System Windows, Linux (or) MacOS
Technology Python
Scripting Language Python
IDE PyCharm (or Jupiter)
CODE
# import modules
from tkinter import *
import os
# Designing window for registration
def register():
global register_screen
register_screen = Toplevel(main_screen)
register_screen.title("Register")
register_screen.geometry("300x250")
global username
global password
global username_entry
global password_entry
username = StringVar()
password = StringVar()
Label(register_screen, text="Please enter details below", bg="blue").pack()
Label(register_screen, text="").pack()
username_lable = Label(register_screen, text="Username * ")
username_lable.pack()
username_entry = Entry(register_screen, textvariable=username)
username_entry.pack()
password_lable = Label(register_screen, text="Password * ")
password_lable.pack()
password_entry = Entry(register_screen, textvariable=password, show='*')
password_entry.pack()
Label(register_screen, text="").pack()
Button(register_screen, text="Register", width=10, height=1, bg="blue",
command=register_user).pack()
# Designing window for login
def login():
global login_screen
login_screen = Toplevel(main_screen)
login_screen.title("Login")
login_screen.geometry("300x250")
Label(login_screen, text="Please enter details below to login").pack()
Label(login_screen, text="").pack()
global username_verify
global password_verify
username_verify = StringVar()
password_verify = StringVar()
global username_login_entry
global password_login_entry
Label(login_screen, text="Username * ").pack()
username_login_entry = Entry(login_screen, textvariable=username_verify)
username_login_entry.pack()
Label(login_screen, text="").pack()
Label(login_screen, text="Password * ").pack()
password_login_entry = Entry(login_screen, textvariable=password_verify,
show='*')
password_login_entry.pack()
Label(login_screen, text="").pack()
Button(login_screen, text="Login", width=10, height=1,
command=login_verify).pack()
# Implementing event on register button
def register_user():
username_info = [Link]()
password_info = [Link]()
file = open(username_info, "w")
[Link](username_info + "\n")
[Link](password_info)
[Link]()
username_entry.delete(0, END)
password_entry.delete(0, END)
Label(register_screen, text="Registration Success", fg="green",
font=("calibri", 11)).pack()
# Implementing event on login button
def login_verify():
username1 = username_verify.get()
password1 = password_verify.get()
username_login_entry.delete(0, END)
password_login_entry.delete(0, END)
list_of_files = [Link]()
if username1 in list_of_files:
file1 = open(username1, "r")
verify = [Link]().splitlines()
if password1 in verify:
login_sucess()
else:
password_not_recognised()
else:
user_not_found()
# Designing popup for login success
def login_sucess():
global login_success_screen
login_success_screen = Toplevel(login_screen)
login_success_screen.title("Success")
login_success_screen.geometry("150x100")
Label(login_success_screen, text="Login Success").pack()
Button(login_success_screen, text="OK", command=delete_login_success).pack()
# Designing popup for login invalid password
def password_not_recognised():
global password_not_recog_screen
password_not_recog_screen = Toplevel(login_screen)
password_not_recog_screen.title("Success")
password_not_recog_screen.geometry("150x100")
Label(password_not_recog_screen, text="Invalid Password ").pack()
Button(password_not_recog_screen, text="OK",
command=delete_password_not_recognised).pack()
# Designing popup for user not found
def user_not_found():
global user_not_found_screen
user_not_found_screen = Toplevel(login_screen)
user_not_found_screen.title("Success")
user_not_found_screen.geometry("150x100")
Label(user_not_found_screen, text="User Not Found").pack()
Button(user_not_found_screen, text="OK",
command=delete_user_not_found_screen).pack()
# Deleting popups
def delete_login_success():
login_success_screen.destroy()
def delete_password_not_recognised():
password_not_recog_screen.destroy()
def delete_user_not_found_screen():
user_not_found_screen.destroy()
# Designing Main(first) window
def main_account_screen():
global main_screen
main_screen = Tk()
main_screen.geometry("600x500")
main_screen.title("Account Login")
Label(text="Select Your Choice", bg="blue", width="300", height="2",
font=("Calibri", 13)).pack()
Label(text="").pack()
Button(text="Login", height="2", width="30", command=login).pack()
Label(text="").pack()
Button(text="Register", height="2", width="30", command=register).pack()
main_screen.mainloop()
main_account_screen()
Output:
Main Screen:
Login Page:
User not found window:
Registration window:
Registration Successful Window:
Login Successful Window:
FUTURE SCOPE
One of the practices that we see on e-commerce websites is that instead of using
username field or email field as the first option, platforms employ telephone number.
After you submit it, you get a unique code on your telephone that you need to enter the
next field. That is all. You do not have to remember a username or recall a password.
This solution is straightforward, quick, painless, and hassle-free, and it certainly leaves
a positive impression. Yes, it demands your telephone number; some people may find
it unacceptable. Chances are you will share your telephone number with the platform
eventually. Second, with cell phones becoming more secure, this tension
may disappear.
As the mobile phone industry evolves, we are starting to see other options as well,
such as login forms examples where all you need is to use your finger to enter the
website. This is just a beginning, but it is hard not to notice the potential of Touch ID
and face recognition. Therefore, it is highly recommended to keep these two
approaches in mind.
CONCLUSION
Even though login forms for websites and apps are as old as the hills, people still
experience problems with handling them properly. Many things can scare them away:
too many options, fancy input fields, confusing design, suspicious elements, to name a
few. Therefore, it is your task to convert a login form into a UI unit that provides a
comfortable user experience.
REFERENCES AND BIBLIOGRAPHY
1. Python basic functions, Tkinter and other libraries reference
([Link]
2. Information regarding Registration and login systems
([Link]