This Project in Python Transportation Management System is based on the project idea of management system is developed for students and others.
A user must pass through a login to access the main system; there are two types: Login for both staff and students.
Output:
Transport Management System project in Python with source code
File: passenger.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | from tkinter import * import tkinter.messagebox import pasDatabase class Passenger: def __init__(self, root): self.root = root self.root.title("Transport Management System") self.root.geometry("1366x768+0+0") self.root.config(bg="indigo") Pno = StringVar() Pname = StringVar() PAddress = StringVar() Pmobile = StringVar() Bno = StringVar() Rname = StringVar() def iExit(): iExit = tkinter.messagebox.askyesno("Transport Management System","Confirm if you want to exit") if iExit > 0: root.destroy() return def clearData(): self.txtPno.delete(0,END) self.txtPname.delete(0,END) self.txtPAddress.delete(0,END) self.txtPMobile.delete(0,END) self.txtBno.delete(0,END) self.txtRname.delete(0,END) def addData(): if(len(Pno.get())!=0): pasDatabase.addPas(Pno.get(),Pname.get(),PAddress.get(),Pmobile.get(),Bno.get(),Rname.get()) passengerList.delete(0,END) passengerList.insert(END,(Pno.get(),Pname.get(),PAddress.get(),Pmobile.get(),Bno.get(),Rname.get())) def displayData(): passengerList.delete(0,END) for row in pasDatabase.viewDat(): passengerList.insert(END,row,str("")) def pasRec(event): global sd searchpas = passengerList.curselection()[0] sd = passengerList.get(searchpas) self.txtPno.delete(0,END) self.txtPno.insert(END,sd[1]) self.txtPname.delete(0,END) self.txtPname.insert(END,sd[2]) self.txtPAddress.delete(0,END) self.txtPAddress.insert(END,sd[3]) self.txtPMobile.delete(0,END) self.txtPMobile.insert(END,sd[4]) self.txtBno.delete(0,END) self.txtBno.insert(END,sd[5]) self.txtRname.delete(0,END) self.txtRname.insert(END,sd[6]) def deleteData(): if(len(Pno.get())!=0): pasDatabase.deleteDat(sd[0]) clearData() displayData() def searchData(): passengerList.delete(0,END) for row in pasDatabase.searchDat(Pno.get(),Pname.get(),PAddress.get(),Pmobile.get(),Bno.get(),Rname.get()): passengerList.insert(END,row,str("")) def update(): if(len(Pno.get())!=0): pasDatabase.deleteDat(sd[0]) if(len(Pno.get())!=0): pasDatabase.addPas(Pno.get(),Pname.get(),PAddress.get(),Pmobile.get(),Bno.get(),Rname.get()) passengerList.delete(0,END) passengerList.insert(END,(Pno.get(),Pname.get(),PAddress.get(),Pmobile.get(),Bno.get(),Rname.get())) MainFrame = Frame(self.root, bg='blue4') MainFrame.grid() TitFrame = Frame(MainFrame, bd=2, bg='Ghost White', relief= RIDGE) TitFrame.pack(side = TOP) self.lblTit = Label(TitFrame, font=('arial', 30, 'bold'),text="Transport Management System",bg="Ghost White") self.lblTit.grid(sticky=W) ButtonFrame = Frame(MainFrame, bd=2, width=1350,padx=20, height=70,pady=14, bg='blue4', relief= RIDGE) ButtonFrame.pack(side = BOTTOM) DataFrame = Frame(MainFrame, bd=1, width=1300, height=400, padx=23, pady=20, bg='indigo', relief= RIDGE) DataFrame.pack(side = BOTTOM) DataFrameLEFT = LabelFrame(DataFrame, bd=1, width =600, height=1000, padx=20,pady=73, bg='Ghost White', relief= RIDGE, font=('arial', 20, 'bold'), text="Passenger Information\n") DataFrameLEFT.pack(side = LEFT) DataFrameRIGHT = LabelFrame(DataFrame, bd=1, width=450, height=300, pady=31, bg='Ghost White', relief= RIDGE, font=('arial', 20, 'bold'),text = "Passenger Details\n") DataFrameRIGHT.pack(side = RIGHT) self.lblPno = Label(DataFrameLEFT, font=('arial', 20, 'bold'),text="Passenger Number : ",padx=2,pady=2,bg="Ghost White") self.lblPno.grid(row=0,column=0,sticky=W) self.txtPno = Entry(DataFrameLEFT, font=('arial', 20, 'bold'),textvariable=Pno, width=39) self.txtPno.grid(row=0,column=1) self.lblPname = Label(DataFrameLEFT, font=('arial', 20, 'bold'),text="Passenger Name : ",padx=2,pady=2,bg="Ghost White") self.lblPname.grid(row=1,column=0,sticky=W) self.txtPname = Entry(DataFrameLEFT, font=('arial', 20, 'bold'),textvariable=Pname, width=39) self.txtPname.grid(row=1,column=1) self.lblPAddress = Label(DataFrameLEFT, font=('arial', 20, 'bold'),text="Passenger Address : ",padx=2,pady=2,bg="Ghost White") self.lblPAddress.grid(row=2,column=0,sticky=W) self.txtPAddress = Entry(DataFrameLEFT, font=('arial', 20, 'bold'),textvariable=PAddress, width=39) self.txtPAddress.grid(row=2,column=1) self.lblPMobile = Label(DataFrameLEFT, font=('arial', 20, 'bold'),text="Passenger Mobile : ",padx=2,pady=2,bg="Ghost White") self.lblPMobile.grid(row=3,column=0,sticky=W) self.txtPMobile = Entry(DataFrameLEFT, font=('arial', 20, 'bold'),textvariable=Pmobile, width=39) self.txtPMobile.grid(row=3,column=1) self.lblBno = Label(DataFrameLEFT, font=('arial', 20, 'bold'),text="Bus Number : ",padx=2,pady=2,bg="Ghost White") self.lblBno.grid(row=4,column=0,sticky=W) self.txtBno = Entry(DataFrameLEFT, font=('arial', 20, 'bold'),textvariable=Bno, width=39) self.txtBno.grid(row=4,column=1) self.lblRname = Label(DataFrameLEFT, font=('arial', 20, 'bold'),text="Route Name : ",padx=2,pady=2,bg="Ghost White") self.lblRname.grid(row=5,column=0,sticky=W) self.txtRname = Entry(DataFrameLEFT, font=('arial', 20, 'bold'),textvariable=Rname, width=39) self.txtRname.grid(row=5,column=1) scrollbar = Scrollbar(DataFrameRIGHT) scrollbar.grid(row=0,column=1,sticky='ns') passengerList = Listbox(DataFrameRIGHT, width=41,height=16,font=('arial',12,'bold'),yscrollcommand=scrollbar.set) passengerList.bind('<<ListboxSelect>>',pasRec) passengerList.grid(row=0,column=0,padx=8) scrollbar.config(command = passengerList.yview) self.btnAddDate = Button(ButtonFrame,text="Add New",font=('arial', 20, 'bold'),height=1,width=10,bd=4,command=addData) self.btnAddDate.grid(row=0,column=0) self.btnDisplayDate = Button(ButtonFrame,text="Display",font=('arial', 20, 'bold'),height=1,width=10,bd=4,command=displayData) self.btnDisplayDate.grid(row=0,column=1) self.btnClearDate = Button(ButtonFrame,text="Clear",font=('arial', 20, 'bold'),height=1,width=10,bd=4,command=clearData) self.btnClearDate.grid(row=0,column=2) self.btnDeleteDate = Button(ButtonFrame,text="Delete",font=('arial', 20, 'bold'),height=1,width=10,bd=4,command=deleteData) self.btnDeleteDate.grid(row=0,column=3) self.btnSearchDate = Button(ButtonFrame,text="Search",font=('arial', 20, 'bold'),height=1,width=10,bd=4,command=searchData) self.btnSearchDate.grid(row=0,column=4) self.btnUpdateDate = Button(ButtonFrame,text="Update",font=('arial', 20, 'bold'),height=1,width=10,bd=4,command=update) self.btnUpdateDate.grid(row=0,column=5) self.btnExit = Button(ButtonFrame,text="Exit",font=('arial', 20, 'bold'),height=1,width=10,bd=4,command=iExit) self.btnExit.grid(row=0,column=6) if __name__=='__main__': root = Tk() application = Passenger(root) root.mainloop() |
File: pasDatabase.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | import sqlite3 def passengerData(): con=sqlite3.connect("passenger.db") cur=con.cursor() cur.execute("CREATE TABLE IF NOT EXISTS passenger(id INTEGER PRIMARY KEY,Pno text,Pname text,PAddress text,Pmobile text,Bno text,Rname text)") con.commit() con.close() def addPas(Pno,Pname,PAddress,Pmobile,Bno,Rname): con=sqlite3.connect("passenger.db") cur = con.cursor() cur.execute("INSERT INTO passenger VALUES(NULL,?,?,?,?,?,?)",(Pno,Pname,PAddress,Pmobile,Bno,Rname)) con.commit() con.close() def viewDat(): con=sqlite3.connect("passenger.db") cur = con.cursor() cur.execute("SELECT * FROM passenger") rows = cur.fetchall() con.close() return rows def deleteDat(id): con=sqlite3.connect("passenger.db") cur = con.cursor() cur.execute("DELETE FROM passenger WHERE id=?", (id,)) con.commit() con.close() def searchDat(Pno="",Pname="",PAddress="",Pmobile="",Bno="",Rname=""): con=sqlite3.connect("passenger.db") cur = con.cursor() cur.execute("SELECT * FROM passenger WHERE Pno=? OR Pname=? OR PAddress=? OR Pmobile=? OR Bno=? OR Rname=?",(Pno,Pname,PAddress,Pmobile,Bno,Rname)) rows=cur.fetchall() con.close() return rows def datUpdate(id,Pno="",Pname="",PAddress="",Pmobile="",Bno="",Rname=""): con=sqlite3.connect("passenger.db") cur = con.cursor() cur.execute("UPDATE passenger SET Pno=?, Pname=?, PAddress=?, Pmobile=?, Bno=?, Rname=? WHERE id=?",(Pno,Pname,PAddress,Pmobile,Bno,Rname,id)) con.commit() con.close() |