[
  {
    "path": "MiniProject_Backend.py",
    "content": "#backend\r\nimport sqlite3\r\n\r\ndef MovieData():\r\n    con=sqlite3.connect(\"movie1.db\") \r\n    cur=con.cursor()\r\n    cur.execute(\"CREATE TABLE IF NOT EXISTS book (id INTEGER PRIMARY KEY, Movie_ID text,Movie_Name text,Release_Date text,Director text,Cast text,Budget text,Duration text,Rating text\")\r\n    con.commit()\r\n    con.close()\r\n    \r\ndef AddMovieRec(Movie_ID,Movie_Name,Release_Date,Director,Cast,Budget,Duration,Rating):\r\n    con=sqlite3.connect(\"movie1.db\")    \r\n    cur=con.cursor()\r\n    cur.execute(\"INSERT INTO book VALUES (NULL, ?,?,?,?,?,?,?,?)\", (Movie_ID,Movie_Name,Release_Date,Director,Cast,Budget,Duration,Rating))\r\n    con.commit()\r\n    con.close()\r\n\r\ndef ViewMovieData():\r\n    con=sqlite3.connect(\"movie1.db\")    \r\n    cur=con.cursor()\r\n    cur.execute(\"SELECT * FROM book\")\r\n    rows=cur.fetchall()\r\n    con.close()    \r\n    return rows\r\n\r\ndef DeleteMovieRec(id):    \r\n    con=sqlite3.connect(\"movie1.db\")    \r\n    cur=con.cursor()\r\n    cur.execute(\"DELETE FROM book WHERE id=?\", (id,))\r\n    con.commit()\r\n    con.close()  \r\n\r\ndef SearchMovieData(Movie_ID=\"\",Movie_Name=\"\",Release_Date=\"\",Director=\"\",Cast=\"\",Budget=\"\",Duration=\"\",Rating=\"\"):  \r\n    con=sqlite3.connect(\"movie1.db\")    \r\n    cur=con.cursor()\r\n    cur.execute(\"SELECT * FROM book WHERE Movie_ID=? OR Movie_Name=? OR Release_Date=? OR Director=? OR Cast=? OR Budget=? OR Duration=? OR Rating=?\",(Movie_ID,Movie_Name,Release_Date,Director,Cast,Budget,Duration,Rating))\r\n    rows=cur.fetchall()\r\n    con.close()    \r\n    return rows\r\n\r\ndef UpdateMovieData(id,Movie_ID=\"\",Movie_Name=\"\",Release_Date=\"\",Director=\"\",Cast=\"\",Budget=\"\",Duration=\"\",Rating=\"\"):\r\n    con=sqlite3.connect(\"movie1.db\")    \r\n    cur=con.cursor()\r\n    cur.execute(\"UPDATE book SET Movie_ID=?,Movie_Name=?,Release_Date=?,Director=?,Cast=?,Budget=?,Duration=?,Rating=?, WHERE id=?\",(Movie_ID,Movie_Name,Release_Date,Director,Cast,Budget,Duration,Rating))\r\n    con.commit()\r\n    con.close()\r\n\r\n"
  },
  {
    "path": "MiniProject_Frontend.py",
    "content": "#Frontend\r\n\r\nfrom tkinter import *\r\nimport tkinter.messagebox\r\nimport MiniProject_Backend\r\n\r\nclass Movie:\r\n\tdef __init__(self, root):\r\n\t\tself.root=root\r\n\t\tself.root.title(\"Online Movie Ticket Booking System\")\r\n\t\tself.root.geometry(\"1350x750+0+0\")\r\n\t\tself.root.config(bg=\"black\")\r\n\r\n\t\tMovie_Name=StringVar()\r\n\t\tMovie_ID=StringVar()\r\n\t\tRelease_Date=StringVar()\r\n\t\tDirector=StringVar()\r\n\t\tCast=StringVar()\r\n\t\tBudget=StringVar()\r\n\t\tDuration=StringVar()\r\n\t\tRating=StringVar()\r\n\r\n\t\t#Fuctions\r\n\t\tdef iExit():\r\n\t\t\tiExit=tkinter.messagebox.askyesno(\"Online Movie Ticket Booking System\", \"Are you sure???\")\r\n\t\t\tif iExit>0:\r\n\t\t\t\troot.destroy()\r\n\t\t\treturn\r\n\r\n\t\tdef clcdata():\r\n\t\t\tself.txtMovie_ID.delete(0,END)\r\n\t\t\tself.txtMovie_Name.delete(0,END)\r\n\t\t\tself.txtRelease_Date.delete(0,END)\r\n\t\t\tself.txtDirector.delete(0,END)\r\n\t\t\tself.txtCast.delete(0,END)\r\n\t\t\tself.txtBudget.delete(0,END)\r\n\t\t\tself.txtRating.delete(0,END)\r\n\t\t\tself.txtDuration.delete(0,END)\r\n\r\n\t\tdef adddata():\r\n\t\t\tif(len(Movie_ID.get())!=0):\r\n\t\t\t\tMiniProject_Backend.AddMovieRec(Movie_ID.get(),Movie_Name.get(),Release_Date.get(),Director.get(),Cast.get(),Budget.get(),Duration.get(),Rating.get())\r\n\t\t\t\tMovieList.delete(0,END)\r\n\t\t\t\tMovieList.insert(END,(Movie_ID.get(),Movie_Name.get(),Release_Date.get(),Director.get(),Cast.get(),Budget.get(),Duration.get(),Rating.get()))\r\n\r\n\t\tdef disdata():\r\n\t\t\tMovieList.delete(0,END)\r\n\t\t\tfor row in MiniProject_Backend.ViewMovieData():\r\n\t\t\t\tMovieList.insert(END, row, str(\"\"))\r\n\r\n\t\tdef movierec(event):\r\n\t\t\tglobal sd\r\n\t\t\tsearchmovie=MovieList.curselection()[0]\r\n\t\t\tsd=MovieList.get(searchmovie)\r\n\r\n\t\t\tself.txtMovie_ID.delete(0,END)\r\n\t\t\tself.txtMovie_ID.insert(END,sd[1])\r\n\t\t\tself.txtMovie_Name.delete(0,END)\r\n\t\t\tself.txtMovie_Name.insert(END,sd[2])\r\n\t\t\tself.txtRelease_Date.delete(0,END)\r\n\t\t\tself.txtRelease_Date.insert(END,sd[3])\r\n\t\t\tself.txtDirector.delete(0,END)\r\n\t\t\tself.txtDirector.insert(END,sd[4])\r\n\t\t\tself.txtCast.delete(0,END)\r\n\t\t\tself.txtCast.insert(END,sd[5])\r\n\t\t\tself.txtBudget.delete(0,END)\r\n\t\t\tself.txtBudget.insert(END,sd[6])\r\n\t\t\tself.txtDuration.delete(0,END)\r\n\t\t\tself.txtDuration.insert(END,sd[7])\r\n\t\t\tself.txtRating.delete(0,END)\r\n\t\t\tself.txtRating.insert(END,sd[8])\r\n\r\n\t\tdef deldata():\r\n\t\t\tif(len(Movie_ID.get())!=0):\r\n\t\t\t\tMiniProject_Backend.DeleteMovieRec(sd[0])\r\n\t\t\t\tclcdata()\r\n\t\t\t\tdisdata()\r\n\r\n\t\tdef searchdb():\r\n\t\t\tMovieList.delete(0,END)\r\n\t\t\tfor row in MiniProject_Backend.SearchMovieData(Movie_ID.get(),Movie_Name.get(),Release_Date.get(),Director.get(),Cast.get(),Budget.get(),Duration.get(),Rating.get()):\r\n\t\t\t\tMovieList.insert(END, row, str(\"\"))\r\n\r\n\t\tdef updata():\r\n\t\t\tif(len(Movie_ID.get())!=0):\r\n\t\t\t\tMiniProject_Backend.DeleteMovieRec(sd[0])\r\n\t\t\tif(len(Movie_ID.get())!=0):\r\n\t\t\t\tMiniProject_Backend.AddMovieRec(Movie_ID.get(),Movie_Name.get(),Release_Date.get(),Director.get(),Cast.get(),Budget.get(),Duration.get(),Rating.get())\r\n\t\t\t\tMovieList.delete(0,END)\r\n\t\t\t\tMovieList.insert(END,(Movie_ID.get(),Movie_Name.get(),Release_Date.get(),Director.get(),Cast.get(),Budget.get(),Duration.get(),Rating.get()))\r\n\r\n\t\t#Frames\r\n\t\tMainFrame=Frame(self.root, bg=\"black\")\r\n\t\tMainFrame.grid()\r\n\r\n\t\tTFrame=Frame(MainFrame, bd=5, padx=54, pady=8, bg=\"black\", relief=RIDGE)\r\n\t\tTFrame.pack(side=TOP)\r\n\r\n\t\tself.TFrame=Label(TFrame, font=('Arial', 51, 'bold'), text=\"ONLINE MOVIE TICKET BOOKING SYSTEM\", bg=\"black\", fg=\"orange\")\r\n\t\tself.TFrame.grid() \r\n\r\n\t\tBFrame=Frame(MainFrame, bd=2, width=1350, height=70, padx=18, pady=10, bg=\"black\", relief=RIDGE)\r\n\t\tBFrame.pack(side=BOTTOM)\r\n\r\n\t\tDFrame=Frame(MainFrame, bd=2, width=1300, height=400, padx=20, pady=20, bg=\"black\", relief=RIDGE)\r\n\t\tDFrame.pack(side=BOTTOM)\r\n\r\n\t\tDFrameL=LabelFrame(DFrame, bd=2, width=1000, height=600, padx=20, bg=\"black\", relief=RIDGE, font=('Arial', 20, 'bold'), text=\"Movie Info_\\n\", fg=\"white\")\r\n\t\tDFrameL.pack(side=LEFT)\r\n\r\n\t\tDFrameR=LabelFrame(DFrame, bd=2, width=450, height=300, padx=31, pady=3, bg=\"black\", relief=RIDGE, font=('Arial', 20, 'bold'), text=\"Movie Details_\\n\", fg=\"white\")\r\n\t\tDFrameR.pack(side=RIGHT)\r\n\r\n\t\t#Labels & Entry Box\r\n\r\n\t\tself.lblMovie_ID=Label(DFrameL, font=('Arial', 18, 'bold'), text=\"Movie ID:\", padx=2, pady=2, bg=\"black\", fg=\"orange\")\r\n\t\tself.lblMovie_ID.grid(row=0, column=0, sticky=W)\r\n\t\tself.txtMovie_ID=Entry(DFrameL, font=('Arial', 18, 'bold'), textvariable=Movie_ID, width=39, bg=\"black\", fg=\"white\")\r\n\t\tself.txtMovie_ID.grid(row=0, column=1) \r\n\r\n\t\tself.lblMovie_Name=Label(DFrameL, font=('Arial', 18, 'bold'), text=\"Movie Name:\", padx=2, pady=2, bg=\"black\", fg=\"orange\")\r\n\t\tself.lblMovie_Name.grid(row=1, column=0, sticky=W) \r\n\t\tself.txtMovie_Name=Entry(DFrameL, font=('Arial', 18, 'bold'), textvariable=Movie_Name, width=39, bg=\"black\", fg=\"white\")\r\n\t\tself.txtMovie_Name.grid(row=1, column=1)\r\n\r\n\t\tself.lblRelease_Date=Label(DFrameL, font=('Arial', 18, 'bold'), text=\"Release Date:\", padx=2, pady=2, bg=\"black\", fg=\"orange\")\r\n\t\tself.lblRelease_Date.grid(row=2, column=0, sticky=W) \r\n\t\tself.txtRelease_Date=Entry(DFrameL, font=('Arial', 18, 'bold'), textvariable=Release_Date, width=39, bg=\"black\", fg=\"white\")\r\n\t\tself.txtRelease_Date.grid(row=2, column=1)\r\n\r\n\t\tself.lblDirector=Label(DFrameL, font=('Arial', 18, 'bold'), text=\"Director:\", padx=2, pady=2, bg=\"black\", fg=\"orange\")\r\n\t\tself.lblDirector.grid(row=3, column=0, sticky=W) \r\n\t\tself.txtDirector=Entry(DFrameL, font=('Arial', 18, 'bold'), textvariable=Director, width=39, bg=\"black\", fg=\"white\")\r\n\t\tself.txtDirector.grid(row=3, column=1)\r\n\r\n\t\tself.lblCast=Label(DFrameL, font=('Arial', 18, 'bold'), text=\"Cast:\", padx=2, pady=2, bg=\"black\", fg=\"orange\")\r\n\t\tself.lblCast.grid(row=4, column=0, sticky=W) \r\n\t\tself.txtCast=Entry(DFrameL, font=('Arial', 18, 'bold'), textvariable=Cast, width=39, bg=\"black\", fg=\"white\")\r\n\t\tself.txtCast.grid(row=4, column=1)\r\n\r\n\t\tself.lblBudget=Label(DFrameL, font=('Arial', 18, 'bold'), text=\"Budget (Crores INR):\", padx=2, pady=2, bg=\"black\", fg=\"orange\")\r\n\t\tself.lblBudget.grid(row=5, column=0, sticky=W) \r\n\t\tself.txtBudget=Entry(DFrameL, font=('Arial', 18, 'bold'), textvariable=Budget, width=39, bg=\"black\", fg=\"white\")\r\n\t\tself.txtBudget.grid(row=5, column=1)\r\n\r\n\t\tself.lblDuration=Label(DFrameL, font=('Arial', 18, 'bold'), text=\"Duration (Hrs):\", padx=2, pady=2, bg=\"black\", fg=\"orange\")\r\n\t\tself.lblDuration.grid(row=6, column=0, sticky=W) \r\n\t\tself.txtDuration=Entry(DFrameL, font=('Arial', 18, 'bold'), textvariable=Duration, width=39, bg=\"black\", fg=\"white\")\r\n\t\tself.txtDuration.grid(row=6, column=1)\r\n\r\n\t\tself.lblRating=Label(DFrameL, font=('Arial', 18, 'bold'), text=\"Rating (Out of 5):\", padx=2, pady=2, bg=\"black\", fg=\"orange\")\r\n\t\tself.lblRating.grid(row=7, column=0, sticky=W) \r\n\t\tself.txtRating=Entry(DFrameL, font=('Arial', 18, 'bold'), textvariable=Rating, width=39, bg=\"black\", fg=\"white\")\r\n\t\tself.txtRating.grid(row=7, column=1)\r\n\r\n\t\t#ListBox & ScrollBar\r\n\t\tsb=Scrollbar(DFrameR)\r\n\t\tsb.grid(row=0, column=1, sticky='ns')\r\n\r\n\t\tMovieList=Listbox(DFrameR, width=41, height=16, font=('Arial', 12, 'bold'), bg=\"black\", fg=\"white\", yscrollcommand=sb.set)\r\n\t\tMovieList.bind('<<ListboxSelect>>', movierec)\r\n\t\tMovieList.grid(row=0, column=0, padx=8)\r\n\t\tsb.config(command=MovieList.yview)\r\n\r\n\t\t#Buttons\r\n\t\tself.btnadd=Button(BFrame, text=\"Add New\", font=('Arial', 20, 'bold'), width=10, height=1, bd=4, bg=\"orange\", command=adddata)\r\n\t\tself.btnadd.grid(row=0, column=0)\r\n\r\n\t\tself.btndis=Button(BFrame, text=\"Display\", font=('Arial', 20, 'bold'), width=10, height=1, bd=4, bg=\"orange\", command=disdata)\r\n\t\tself.btndis.grid(row=0, column=1)\r\n\r\n\t\tself.btnclc=Button(BFrame, text=\"Clear\", font=('Arial', 20, 'bold'), width=10, height=1, bd=4, bg=\"orange\", command=clcdata)\r\n\t\tself.btnclc.grid(row=0, column=2)\r\n\r\n\t\tself.btnse=Button(BFrame, text=\"Search\", font=('Arial', 20, 'bold'), width=10, height=1, bd=4, bg=\"orange\", command=searchdb)\r\n\t\tself.btnse.grid(row=0, column=3)\r\n\r\n\t\tself.btndel=Button(BFrame, text=\"Delete\", font=('Arial', 20, 'bold'), width=10, height=1, bd=4, bg=\"orange\", command=deldata)\r\n\t\tself.btndel.grid(row=0, column=4)\r\n\r\n\t\tself.btnup=Button(BFrame, text=\"Update\", font=('Arial', 20, 'bold'), width=10, height=1, bd=4, bg=\"orange\", command=updata)\r\n\t\tself.btnup.grid(row=0, column=5)\r\n\r\n\t\tself.btnx=Button(BFrame, text=\"Exit\", font=('Arial', 20, 'bold'), width=10, height=1, bd=4, bg=\"orange\", command=iExit)\r\n\t\tself.btnx.grid(row=0, column=6)\r\n\r\n\r\nif __name__=='__main__':\r\n\troot=Tk()\r\n\tdatbase=Movie(root)\r\n\troot.mainloop()"
  },
  {
    "path": "README.md",
    "content": "# DBMS-Movie-Ticket-Booking-System\nThis repository contains the source code for Online Movie Ticket Booking System, which was a Mini Project for Database Management System (DBMS). \n\n![UI](Screenshots/OMTBS.PNG)\n"
  }
]