Professional Documents
Culture Documents
Studen Record System Project Report
Studen Record System Project Report
S. NO CONTENTS
1 RATIONAL
3 LITERATURE REVIEW
The Student Records System (SRS) provides online access to information about
students and courses, and how this information interacts. For example, how the class
rosters and students’ transcripts connect. The data you see are live data: all changes to a
student’s record take effect immediately the information is entered.
Student record System can be used by education institutes to maintain the records
of students easily. Achieving this objective is difficult using a manual system as the
information is scattered, can be redundant and collecting relevant information may be
very time consuming. All these problems are solved using this project.
1. Hardware Specifications:
Processor | Intel i5
Hard Disk | 1TB HDD
RAM | 4GB RAM
2. Software Specifications:
Operating System | Window 10, 7
User interface | Python
Database | MySQL
Editors | PyCharm
Documentation Tool | MS Office
Server | Tomcat
Apache7.0 , Xampp
LITERATURE REVIEW:
1. According to old software system said that there was a time in the primitive and
barbarian days before computer, the amount of information shepherded by a group
of people could be collected in the Management of the Student.
2. It gets to a stage when the data are too much to be managed in the minds of the
elders.
3. Help to improve the Student services.
4. Increase the rate at which Tasks are completed accurately.
5. In the application of the informative systems. the concept of students record
system, their history, components, types and their applications in a real-world
situation to solve problems
ACTUAL METHODOLOGY FOLLOWED:
TKinter:
Python offers multiple options for developing GUI (Graphical User Interface).
Out of all the GUI methods, tkinter is the most commonly used method. It is a
standard Python interface to the Tk GUI toolkit shipped with Python. Python
with tkinter is the fastest and easiest way to create the GUI applications.
Creating a GUI using tkinter is an easy task.
To create a tkinter app:
XAMPP
XAMPP is a light-weight easy to install bundle that will allow you to do local
development on websites in case you don't have a server hosted already. Also,
I'm being biased here, because frankly I believe in open source (ironical that I
have a mac). Also, I like to scratch and build upwards so that in the long run it
helps me learn better rather than just following manuals and documentation.
Since this post is for absolute beginners, it's good to start out with XAMPP
which does the basic task of setting out the environment for you so you can
start building stuff right away.
MySQL:
It is the world's most popular open source database. It is a Relational Database
Management System (RDBMS) - data and its relationships are stored in the
form of tables that can be accessed by the use of MySQL queries in almost any
format that the user wants.
Codding:
from tkinter import *
import tkinter.ttk as ttk
import pymysql
from tkinter import messagebox
class Student:
def __init__(self, root):
self.root = root
root.title("Student Record System")
root.geometry("1400x850+0+0")
lbl = Label(root, text=" STUDENT RECORD SYSTEM ", font=("time new
roman", 40, "bold"), bg="magenta",fg="black")
lbl.pack(side=TOP, fill=X)
# ------------------Declaration Variables-----------------------------
self.roll_var = StringVar()
self.name_var = StringVar()
self.enroll_var = StringVar()
self.gender_var = StringVar()
self.branch_var = StringVar()
self.mobile_var = StringVar()
self.email_var = StringVar()
self.address_var = StringVar()
self.search_by = StringVar()
self.search_txt = StringVar()
# --------------------Manage Details------------------------------
manage_frame = Frame(self.root, bd=4, relief=RIDGE, bg="cyan")
manage_frame.place(x=10, y=100, width=450, height=700)
# --------------------Button Frame----------------------------
btn_frame = Frame(manage_frame, bd=4, relief=RIDGE, bg="cyan")
btn_frame.place(x=15, y=570, width=420)
addbtn = Button(btn_frame, text="ADD", width=10, height=2,
command=self.add_students).grid(row=0, column=0,padx=10, pady=10)
deletebtn = Button(btn_frame, text="DELETE", width=10, height=2,
command=self.delete_data).grid(row=0, column=1,padx=10,pady=10)
updatebtn = Button(btn_frame, text="UPDATE", width=10, height=2,
command=self.update_data).grid(row=0, column=2,padx=10,pady=10)
clearbtn = Button(btn_frame, text="CLEAR", width=10, height=2,
command=self.clear).grid(row=0, column=3,padx=10, pady=10)
# --------------------Detail Frame-----------------------
detail_frame = Frame(self.root, bd=4, relief=RIDGE, bg="cyan")
detail_frame.place(x=500, y=100, width=840, height=700)
scroll_x.pack(side=BOTTOM, fill=X)
scroll_y.pack(side=RIGHT, fill=Y)
scroll_x.config(command=self.student_table.xview)
scroll_y.config(command=self.student_table.yview)
self.student_table.heading("roll", text="Roll No")
self.student_table.heading("name", text="Name")
self.student_table.heading("enroll", text="Enroll No.")
self.student_table.heading("branch", text="Branch")
self.student_table.heading("gender", text="Gender")
self.student_table.heading("email", text="Email ID")
self.student_table.heading("mobile", text="Mobile No.")
self.student_table.heading("address", text="Address")
self.student_table.column("roll", width=3)
self.student_table.column("name", width=40)
self.student_table.column("enroll", width=10)
self.student_table.column("branch", width=7)
self.student_table.column("gender", width=7)
self.student_table.column("email", width=90)
self.student_table.column("mobile", width=20)
self.student_table.column("address", width=100)
self.student_table['show'] = 'headings'
self.student_table.pack(fill=BOTH, expand=1)
self.student_table.bind("<ButtonRelease -1>", self.get_cursor)
self.fetch_data()
def add_students(self):
if self.roll_var.get()=="" or self.enroll_var.get()=="" or self.name_var.get()=="" or
self.branch_var.get()=="" or self.gender_var.get()=="":
messagebox.showerror("Error","All Fields are Required")
else:
con = pymysql.connect(host="localhost", user="root", password="",
database="stud")
cur = con.cursor()
cur.execute("insert into students values(%s,%s,%s,%s,%s,%s,%s,%s)",
(self.roll_var.get(),
self.enroll_var.get(),
self.name_var.get(),
self.branch_var.get(),
self.gender_var.get(),
self.email_var.get(),
self.mobile_var.get(),
self.txt_address.get('1.0', END)
))
con.commit()
self.fetch_data()
self.clear()
con.close()
messagebox.showinfo("Success","Record has been inserted")
def fetch_data(self):
con = pymysql.connect(host="localhost", user="root", password="",
database="stud")
cur = con.cursor()
cur.execute("select * from students")
rows = cur.fetchall()
if len(rows) != 0:
self.student_table.delete(*self.student_table.get_children())
for row in rows:
self.student_table.insert('', END, values=row)
con.commit()
con.close()
def clear(self):
self.roll_var.set("")
self.enroll_var.set("")
self.name_var.set("")
self.branch_var.set("")
self.gender_var.set("")
self.email_var.set("")
self.mobile_var.set("")
self.txt_address.delete('1.0', END)
def update_data(self):
con = pymysql.connect(host="localhost", user="root", password="",
database="stud")
cur = con.cursor()
cur.execute("update students set enroll_no=%s,name=%s,branch=%s,gender=
%s,email=%s,mobile=%s,address=%s where roll_no=%s ",(
self.enroll_var.get(),
self.name_var.get(),
self.branch_var.get(),
self.gender_var.get(),
self.email_var.get(),
self.mobile_var.get(),
self.txt_address.get('1.0', END),
self.roll_var.get()
))
con.commit()
self.fetch_data()
self.clear()
con.close()
def delete_data(self):
con = pymysql.connect(host="localhost", user="root", password="",
database="stud")
cur = con.cursor()
cur.execute("delete from students where roll_no=%s", self.roll_var.get())
con.commit()
con.close()
self.fetch_data()
self.clear()
def search_data(self):
con = pymysql.connect(host="localhost", user="root", password="",
database="stud")
cur = con.cursor()
cur.execute("select * from students where "+str(self.search_by.get())+ " LIKE '%"
+str(self.search_txt.get())+ "%'")
rows = cur.fetchall()
if len(rows) != 0:
self.student_table.delete(*self.student_table.get_children())
for row in rows:
self.student_table.insert('', END, values=row)
con.commit()
con.close()
root = Tk()
ob = Student(root)
root.mainloop()
OUTPUTS OF THE MICRO-PROJECT:
Fig2. Database
LEARNING OUT / SKILL DEVELOPED OF THIS MICRO-
PROJECT: