Wednesday, March 30, 2022

Book Shop Management Software- Sample Project

Book Shop Management

Book Shop Management: The project is a command line interface based Book shop management software, which can recored a book shop transaction along with the employee details as well. The functionality implemented are listed below:

  1. Sign/Login
  2. Add Books
  3. Delete Books
  4. Search Books
  5. Staff Details
  6. Sell Books
  7. Sales Record
  8. Available Books
  9. Total Income after the Latest Reset

The module used is python-mysql-Connectore which helps to establish connection between python program and MySql database.

Source Code Of the Project:

In [ ]:
import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",password="root")

#print(mydb)

#CREATING DATABASE AND TABLE

mycursor=mydb.cursor()
mycursor.execute("create database if not exists store")
mycursor.execute("use store")
mycursor.execute("create table if not exists signup(username varchar(20),password varchar(20))")

while True:
    

    print("""
    1:Signup 
    2:Login
    Enter anything else to exit""")

    ch=int(input("SIGNUP/LOGIN(1,2):"))

#SIGNUP

    if ch==1:

        username=input("USERNAME:")
        pw=input("PASSWORD:")

        mycursor.execute("insert into signup values('"+username+"','"+pw+"')")
        mydb.commit()
#------------------------------------------------------------------------------------------------------------------------------
#LOGIN
    elif ch==2:

        username=input("USERNAME:")

        mycursor.execute("select username from signup where username='"+username+"'")
        pot=mycursor.fetchone()

        if pot is not None:
            print("VALID USERNAME!!!!!!")

            pw=input("PASSWORD:")

            mycursor.execute("select password from signup where password='"+pw+"'")
            a=mycursor.fetchone()

            if a is not None:
                print("""++++++++++++++++++++++++++LOGIN SUCCESSFULL++++++++++++++++++++++++++""")

                print("""======================================================================
++++++++++++++++++++++++++    BOOK STORE     +++++++++++++++++++++++++
==========================================================================""")

                mycursor.execute("create table if not exists Available_Books(BookName varchar(30), Genre varchar(20),Quantity int(3),Author varchar(20),Publication varchar(30),Price int(4),ISBN bigint primary key)")
                mycursor.execute("create table if not exists Sell_rec(CustomerName varchar(20),PhoneNumber char(10) unique, BookName varchar(30),Quantity int(100),Price int(4),ISBN bigint,foreign key (ISBN) references Available_Books(ISBN))")
                mycursor.execute("create table if not exists Staff_details(Name varchar(30), Gender varchar(10),Age int(3), PhoneNumber char(10) unique key , Address varchar(40))") 
                mydb.commit()

                while(True):
                    print("""
                    1:Add Books
                    2:Delete Books
                    3:Search Books
                    4:Staff Details
                    5:Sell Books
                    6:Sell Record
                    7:Available Books
                    8:Total Income after the Latest Reset 
                    9:Exit""")

                    a=int(input("Enter your choice:"))
                    
#-------------------------------------------------------------------------------------------------------------------------------
    #ADD BOOKS

                    if a==1:

                        print("All information prompted are mandatory to be filled")
                    
                        book=str(input("Enter Book Name: "))
                        genre=str(input("Genre: "))
                        quantity=int(input("Enter quantity: "))        
                        author=str(input("Enter author name: "))
                        publication=str(input("Enter publication house: "))
                        price=int(input("Enter the price: "))
                        isbn=int(input("Enter the ISBN number: "))

                        mycursor.execute("select * from Available_Books where isbn='"+str(isbn)+"'")
                        row=mycursor.fetchone()

                        if row is not None:
                            mycursor.execute("update Available_Books set quantity=quantity+'"+str(quantity)+"' where isbn='"+str(isbn)+"'")
                            mydb.commit()

                            print("""++++++++++++++++++++++++SUCCESSFULLY ADDED++++++++++++++++++++++++""")
                        
                        
                        else:
                            mycursor.execute("insert into Available_Books(bookname,genre,quantity,author,publication,price,isbn) values('"+book+"','"+genre+"','"+str(quantity)+"','"+author+"','"+publication+"',"+str(price)+","+str(isbn)+")")
                            mydb.commit()

                            print("""++++++++++++++++++++++++SUCCESSFULLY ADDED++++++++++++++++++++++++""") 
                   
#--------------------------------------------------------------------------------------------------------------------------------
    #DELETE BOOKS
                    elif a==2:
                        print("Avalaible Books...")
                        mycursor.execute("select * from available_books ")
                        lt=mycursor.fetchone()
                        if lt is None:
                            print("No book to delete")
                        else:
                            mycursor.execute("select * from available_books ")
                            for x in mycursor:
                                print(x)
                            isbn=0
                            isbn=int(input("Enter the isbn number to delete the book record"))
                            mycursor.execute("select bookname from available_books where isbn='"+str(isbn)+"'")
                            log=mycursor.fetchone()
                            if log is not None:
                                mycursor.execute("DELETE FROM available_books WHERE isbn = "+str(isbn))
                                mydb.commit()
                                print("Book deleted")
                            else:
                                print("The book is not available or Incorrect ISBN number")
                            
 #------------------------------------------------------------------------------------------------------------------------------                           
      #SELL BOOKS      
                    elif a==5:                

                        print("AVAILABLE BOOKS...")

                        mycursor.execute("select * from Available_Books ")
                        for x in mycursor:
                            print(x)
                      
                        cusname=str(input("Enter customer name:"))
                        phno=int(input("Enter phone number:"))
                        book=str(input("Enter Book Name:"))
                        price=int(input("Enter the price:"))
                        n=int(input("Enter quantity:"))
                        isbn=int(input("Enter the ISBN "))

                        mycursor.execute("select quantity from Available_Books where isbn="+str(isbn))
                        lk=mycursor.fetchone()

                        if max(lk)<n:
                            print(n,"Books are not available!!!!")

                        else:
                            mycursor.execute("select bookname from available_books where isbn="+str(isbn))
                            log=mycursor.fetchone()

                            if log is not None:
                                mycursor.execute("insert into Sell_rec values('"+cusname+"','"+str(phno)+"','"+book+"',"+str(n)+","+str(price)+","+str(isbn)+")")
                                mycursor.execute("update Available_Books set quantity = quantity - "+str(n)+" where isbn = "+str(isbn))
                                mydb.commit()

                                print("""++++++++++++++++++++++++BOOK HAS BEEN SOLD++++++++++++++++++++++++""")

                            else:
                                print("BOOK IS NOT AVAILABLE!!!!!!!")
#-------------------------------------------------------------------------------------------------------------------------------
    #SEARCH BOOKS ON THE BASIS OF GIVEN OPTIONS
                    elif a==3:

                        print("""1:Search by name
                                2:Search by genre
                                3:Search by author""")

                        l=int(input("Search by?:"))

        #BY BOOKNAME
                        if l==1:
                            o=input("Enter Book to search:")

                            mycursor.execute("select bookname from available_books where bookname='"+o+"'")
                            tree=mycursor.fetchone()

                            if tree!=None:
                                print("""++++++++++++++++++++++BOOK IS IN STOCK++++++++++++++++++++++""")

                            else:
                                print("BOOK IS NOT IN STOCK!!!!!!!")

        #BY GENRE
                        elif l==2:
                            g=input("Enter genre to search:")

                            mycursor.execute("select genre from available_books where genre='"+g+"'")
                            poll=mycursor.fetchall()

                            if poll is not None:
                                print("""++++++++++++++++++++++BOOK IS IN STOCK++++++++++++++++++++++""")

                                mycursor.execute("select * from available_books where genre='"+g+"'")

                                for y in mycursor:
                                    print(y)

                            else:
                                print("BOOKS OF SUCH GENRE ARE NOT AVAILABLE!!!!!!!!!")


        #BY AUTHOR NAME
                        elif l==3:
                            au=input("Enter author to search:")

                            mycursor.execute("select author from available_books where author='"+au+"'")
                            home=mycursor.fetchall()

                            if home is not None:
                                print("""++++++++++++++++++++++BOOK IS IN STOCK++++++++++++++++++++++""")

                                mycursor.execute("select * from available_books where author='"+au+"'")

                                for z in mycursor:
                                    print(z)

                            else:
                                print("BOOKS OF THIS AUTHOR ARE NOT AVAILABLE!!!!!!!")
                        mydb.commit()
#-------------------------------------------------------------------------------------------------------------------------------
    #STAFF DETAILS
                    elif a==4:
                        print("1:New staff entry")
                        print("2:Remove staff")
                        print("3:Existing staff details")

                        ch=int(input("Enter your choice:"))

        #NEW STAFF ENTRY
                        if ch==1:
                            fname=str(input("Enter Fullname:"))
                            gender=str(input("Gender(M/F/O):"))
                            age=int(input("Age:"))
                            phno=int(input("Staff phone no.:"))
                            add=str(input("Address:"))

                            mycursor.execute("insert into Staff_details(name,gender,age,phonenumber,address) values('"+fname+"','"+gender+"','"+str(age)+"','"+str(phno)+"','"+add+"')")
                            print("""++++++++++++++++++++++++++++++STAFF IS SUCCESSFULLY ADDED++++++++++++++++++++++++++++++""")
                            mydb.commit()

        #REMOVE STAFF
                        elif ch==2:
                            nm=str(input("Enter staff name to remove:"))
                            mycursor.execute("select name from staff_details where name='"+nm+"'")
                            toy=mycursor.fetchone()

                            if toy is not None:
                                mycursor.execute("delete from staff_details where name='"+nm+"'")
                                print("""+++++++++++++++++++++++++++++++++++STAFF IS SUCCESSFULLY REMOVED+++++++++++++++++++++++++++++++++++""")
                                mydb.commit()

                            else:
                                print("STAFF DOESNOT EXIST!!!!!!")

        #EXISTING STAFF DETAILS
                        elif ch==3:
                            mycursor.execute("select * from Staff_details")
                            run=mycursor.fetchone()
                            for t in mycursor:
                                print(t)
                            if run is not None:
                                print("EXISTING STAFF DETAILS...")                        
                                for t in mycursor:
                                    print(t)

                            else:
                                print("NO STAFF EXISTS!!!!!!!")
                            mydb.commit()
#----------------------------------------------------------------------------------------------------------------------------
    #SELL HISTORY                                
                    elif a==6:
                        print("1:Sell history details")
                        print("2:Reset Sell history")

                        ty=int(input("Enter your choice:"))

                        if ty==1:
                            mycursor.execute("select * from sell_rec")
                            for u in mycursor:
                                print(u)

                        if ty==2:
                            bb=input("Are you sure(Y/N):")

                            if bb=="Y":
                                mycursor.execute("delete from sell_rec")
                                mydb.commit()

                            elif bb=="N":
                                pass
#-------------------------------------------------------------------------------------------------------------------------------
    #AVAILABLE BOOKS
                    elif a==7:
                        mycursor.execute("select * from available_books order by bookname")
                        for v in mycursor:
                            print(v)
#------------------------------------------------------------------------------------------------------------------------------
    #TOTAL INCOME AFTER LATEST UPDATE
                    elif a==8:
                        mycursor.execute("select sum(price) from sell_rec")
                        for x in mycursor:
                            print(x)
#-------------------------------------------------------------------------------------------------------------------------------
    #EXIT                    
                    elif a==9:
                        break

#LOGIN ELSE PART
            else:
                print("""++++++++++++++++++++++++INCORRECT PASSWORD++++++++++++++++++++++++""")


        else:
            print("""++++++++++++++++++++++INVALID USERNAME++++++++++++++++++++++""")

    else:
        break

Screenshot:

Signup/ Login Screen:

Capture1.JPG

Capture2.JPG

Capture3.JPG

Add Books Delete Books Search Books Staff Details Sell Books Sales Record Available Books Total Income after the Latest Reset The module used is python-mysql-Connec

Home Screen:

image.png

Add Books:

Capture5.JPG

Search Books:

Capture6.JPG

Staff Details:

Capture7.JPG

Sales Book:

Capture8.JPG

Sales Record:

Capture9.JPG

Available Books:

Capture10.JPG

Share: