Data Basemanagement System
Data Basemanagement System
INTRODUCTION
1.1 OBJECTIVES:
The main objective of the project is to design and develop a user friendly-system
Easy to use and an efficient computerized system.
To develop an accurate and flexible system, it will eliminate data redundancy.
To study the functioning of Students management System.
To make a software fast in processing, with good user interface.
To make software with good user interface so that user can change it and it should be
used for a long time without error and maintenance.
To provide synchronized and centralized farmer and seller database.
Computerization can be helpful as a means of saving time and money.
To provide better Graphical User Interface (GUI).
Less chances of information leakage.
Provides Security to the data by using login and password method.
To provide immediate storage and retrieval of data and information.
Improving arrangements for students coordination.
Reducing paperwork.
1.2 LIMITATIONS:
Time consumption in data entry as the records are to be manually maintained facultiesa
lot of time.
Lot of paper work is involved as the records are maintained in the files and registers.
Storage Requires as files and registers are used the storage space requirement is
increased.
Less Reliable use of papers for storing valuable data information is not at all reliable.
Aadhar linkage with the official aadhar database has not been done.
CHAPTER-2
STUDY OF EXISTING SYSTEM
2.1 CASE STUDY
The success of any organization such as School of Public Health, University on itsability to acquire
accurate and timely data about its operations, to manage this data effectively, and to use it to
analyze and guide its activities. Integrated student database system offer users (Student, Registrar,
HOD) with a unified view of data from multiple sources. To provide a single consistent result for
every object represented in these data sources, data fusion is concerned with resolving data
inconsistency present in the heterogeneous sources of data. The main objective of this project is to
build a rigid and robust integrated student database system that will track and store records of
students. This easy-to-use, integrated database application is geared towards reducing time spent
on administrative tasks. The system is intended to accept process and generate report accurately
and any user can access the system at any point in time provided internet facility is available. The
system is also intended to provide better services to users, provide meaningful, consistent, and
timely data and information and finally promotes efficiency by converting paper processes to
electronic form. The system was developed using technologies such as, HTML, CSS ,JS and
MySQL. PYTHON- FLASK, HTML and CSS are used to build the user interface and database was
built using MySQL. The system is free of errors and very efficient and less time consuming due to
the care taken to develop it. All the phases of software development cycle are employed and it is
worthwhile to state that the system is very robust. Provision is made for future development in the
system.
While there has been no consensus on the definition of Students Management in the
literature, they have proposed that researchers adopt the below definition to allow for the
coherent development of theory in the colleges. In order to have a successful students
management, we need to make many decisions related to the flow of marks, attendance, and
data. Each records should be added in a way to increase the scalability. Student management
is more complex in colleges and other universities because of the impact on people’s number
requiring adequate and accurate information of students need.
CHAPTER 3
3. DATABASE DESIGN
3.1 SOFTWARE REQUIREMENTS SPECIFICATION
HARDWARE REQUIREMENTS:
Computer with a 1.1 GHz or faster processor
Minimum 2GB of RAM or more
2.5 GB of available hard-disk space
5400 RPM hard drive
1366 × 768 or higher-resolution display
DVD-ROM drive
3.2 CONCEPTUAL DESIGN:
3.2.1 E-R DIAGRAM:
3.2.2 SCHEMA DIAGRAM:
3.3 IMPLEMENTATION:
There have been and are several distinct software packages providing of what we all recognize
as Python, although some of those are more like distributions or variants of some existing
implementation than a completely new implementation of the language.
A transaction mechanism, that ideally would guarantee the ACID properties, in order to
ensure data integrity, despite concurrent user accesses (concurrency control), and faults
(fault tolerance).
It also maintains the integrity of the data in the database.
The DBMS can maintain the integrity of the database by not allowing more than
one user to update the same record at the same time. The DBMS can help prevent
duplicate records via unique index constraints; for example, no two customers with
the same customer numbers (key fields) can be entered into the database. See ACID
properties for more information (Redundancy avoidance).
When a DBMS is used, information systems can be changed much more easily as the
organization's information requirements change. to the Organizations may use one kind of
DBMS for daily transaction processing and then move the detail onto another computer that
uses another DBMS better suited for random inquiries and analysis. Overall systems design
decisions are performed by data administrators and systems analysts. Detailed database design
is performed by database administrators.
SQL:
Structured Query Language (SQL) is the language used to manipulate relational databases.
SQL is tied very closely with the relational model.
In the relational model, data is stored in structures called relations or tables.
.
4.2 : Stored Procedure
4.3: Triggers
It is the special kind of stored procedure that automatically executes when an event occurs in
the database.
Triggers used :
1: Trigger name: on insert
Table: register
Time: after
Event: insert
INSERT INTO trig VALUES(null,NEW.rid,'Farmer Inserted',NOW())
# MY db connection
local_server= True
app = Flask( name ) app.secret_key='kunal’
@login_manager.user_loader
def load_user(user_id):
return User.query.get(int(user_id))
#
app.config['SQLALCHEMY_DATABASE_URL']='mysql://username:password@localhost/databas_table_
name'
app.config['SQLALCHEMY_DATABASE_URI']='mysql://root:@localhost/students'
db=SQLAlchemy(app)
class Attendence(db.Model):
aid=db.Column(db.Integer,primary_key=True)
rollno=db.Column(db.String(100))
attendance=db.Column(db.Integer())
class Trig(db.Model):
tid=db.Column(db.Integer,primary_key=True)
rollno=db.Column(db.String(100))
action=db.Column(db.String(100))
timestamp=db.Column(db.String(100))
class User(UserMixin,db.Model):
id=db.Column(db.Integer,primary_key=True)
username=db.Column(db.String(50))
email=db.Column(db.String(50),unique=True)
password=db.Column(db.String(1000))
class Student(db.Model):
id=db.Column(db.Integer,primary_key=True)
rollno=db.Column(db.String(50))
sname=db.Column(db.String(50))
sem=db.Column(db.Integer)
gender=db.Column(db.String(50))
branch=db.Column(db.String(50))
email=db.Column(db.String(50))
number=db.Column(db.String(12))
address=db.Column(db.String(100))
@app.route('/')
def index():
return render_template('index.html')
@app.route('/studentdetails')
def studentdetails():
query=db.engine.execute(f"SELECT * FROM `student`")
return render_template('studentdetails.html',query=query)
@app.route('/triggers')
def triggers():
query=db.engine.execute(f"SELECT * FROM `trig`")
return render_template('triggers.html',query=query)
@app.route('/department',methods=['POST','GET'])
def department():
if request.method=="POST":
dept=request.form.get('dept')
query=Department.query.filter_by(branch=dept).first()
if query:
flash("Department Already Exist","warning")
return redirect('/department')
dep=Department(branch=dept)
db.session.add(dep)
db.session.commit()
flash("Department Addes","success")
return render_template('department.html')
@app.route('/addattendance',methods=['POST','GET'])
def addattendance():
query=db.engine.execute(f"SELECT * FROM `student`")
if request.method=="POST":
rollno=request.form.get('rollno')
attend=request.form.get('attend')
print(attend,rollno)
atte=Attendence(rollno=rollno,attendance=attend)
db.session.add(atte)
db.session.commit()
flash("Attendance added","warning")
return render_template('attendance.html',query=query)
@app.route('/search',methods=['POST','GET'])
def search():
if request.method=="POST":
rollno=request.form.get('roll')
bio=Student.query.filter_by(rollno=rollno).first()
attend=Attendence.query.filter_by(rollno=rollno).first()
return render_template('search.html',bio=bio,attend=attend)
return render_template('search.html')
@app.route("/delete/<string:id>",methods=['POST','GET'])
@login_required
def delete(id):
db.engine.execute(f"DELETE FROM `student` WHERE `student`.`id`={id}")
flash("Slot Deleted Successful","danger")
return redirect('/studentdetails')
@app.route("/edit/<string:id>",methods=['POST','GET'])
@login_required
def edit(id):
dept=db.engine.execute("SELECT * FROM `department`")
posts=Student.query.filter_by(id=id).first()
if request.method=="POST":
rollno=request.form.get('rollno')
sname=request.form.get('sname')
sem=request.form.get('sem')
gender=request.form.get('gender')
branch=request.form.get('branch')
email=request.form.get('email')
num=request.form.get('num')
address=request.form.get('address')
query=db.engine.execute(f"UPDATE `student` SET
`rollno`='{rollno}',`sname`='{sname}',`sem`='{sem}',`gender`='{gender}',`branch`='{branch}',`email`='{em
ail}',`number`='{num}',`address`='{address}'")
flash("Slot is Updates","success")
return redirect('/studentdetails')
return render_template('edit.html',posts=posts,dept=dept)
@app.route('/signup',methods=['POST','GET'])
def signup():
if request.method == "POST":
username=request.form.get('username')
email=request.form.get('email')
password=request.form.get('password')
user=User.query.filter_by(email=email).first()
if user:
flash("Email Already Exist","warning")
return render_template('/signup.html')
encpassword=generate_password_hash(password)
return render_template('signup.html')
@app.route('/login',methods=['POST','GET'])
def login():
if request.method == "POST":
email=request.form.get('email')
password=request.form.get('password')
user=User.query.filter_by(email=email).first()
if user and check_password_hash(user.password,password):
login_user(user)
flash("Login Success","primary")
return redirect(url_for('index'))
else:
flash("invalid credentials","danger")
return render_template('login.html')
return render_template('login.html')
@app.route('/logout')
@login_required
def logout():
logout_user()
flash("Logout SuccessFul","warning")
return redirect(url_for('login'))
@app.route('/addstudent',methods=['POST','GET'])
@login_required
def addstudent():
dept=db.engine.execute("SELECT * FROM `department`")
if request.method=="POST":
rollno=request.form.get('rollno')
sname=request.form.get('sname')
sem=request.form.get('sem')
gender=request.form.get('gender')
branch=request.form.get('branch')
email=request.form.get('email')
num=request.form.get('num')
address=request.form.get('address')
query=db.engine.execute(f"INSERT INTO `student`
(`rollno`,`sname`,`sem`,`gender`,`branch`,`email`,`number`,`address`) VALUES
('{rollno}','{sname}','{sem}','{gender}','{branch}','{email}','{num}','{address}')")
flash("Booking Confirmed","info")
return render_template('student.html',dept=dept)
@app.route('/test')
def test():
try:
Test.query.all()
return 'My database is Connected'
except:
return 'My db is not Connected'
app.run(debug=True)
FRONT END CODE
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
{% block style %}
{% endblock style %}
<link
href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,700,700i|Raleway:3
00,400,500,700,800" rel="stylesheet">
</head>
<body>
<!-- ======= Header ======= -->
<header id="header">
<div class="container">
<nav id="nav-menu-container">
<ul class="nav-menu">
<li class="{% block home %}
{% endblock home %}"><a href="/">Home</a></li>
<li><a href="/addstudent">Students</a></li>
<li><a href="/addattendance">Attendance</a></li>
<li><a href="/department">Department</a></li>
<li><a href="/triggers">Records</a></li>
<li><a href="/studentdetails">Student Details</a></li>
<li><a href="/search">Search</a></li>
<li><a href="/about">About</a></li>
{% if current_user.is_authenticated %}
<li class="buy-tickets"><a href="">Welcome</a></li>
<li class="buy-tickets"><a href="/logout">Logout</a></li>
{% else %}
<li class="buy-tickets"><a href="/signup">Signin</a></li>
{% endif %}
</ul>
</nav><!-- #nav-menu-container -->
</div>
</header><!-- End Header -->
{% block body %}
{% with messages=get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
</div>
{% endfor %}
{% endif %}
{% endwith %}
{% endblock body %}
</body>
</html>
2.Students.html
{% extends 'base.html' %}
{% block title %}
Add Students
{% endblock title %}
{% block body %}
<h3 class="text-center"><span>Add Student Details</span> </h3>
{% with messages=get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
<div class="alert alert-{{category}} alert-dismissible fade show" role="alert">
{{message}}
</div>
{% endfor %}
{% endif %}
{% endwith %}
<br>
<div class="container">
<div class="row">
<div class="col-md-4"></div>
<div class="col-md-4">
<label for="sem">Sem</label>
<input type="number" class="form-control" name="sem" id="sem">
</div>
<br>
<div class="form-group">
<select class="form-control" id="gender" name="gender" required>
<option selected>Select Gender</option>
<option value="male">Male</option>
<option value="female">Female</option>
</select>
</div>
<br>
<div class="form-group">
<select class="form-control" id="branch" name="branch" required>
<option selected>Select Branch</option>
{% for d in dept %}
<option value="{{d.branch}}">{{d.branch}}</option>
{% endfor %}
</select>
</div>
<br>
<div class="form-group">
<label for="email">Email</label>
<input type="email" class="form-control" name="email" id="email">
</div>
<br>
<div class="form-group">
<label for="num">Phone Number</label>
<input type="number" class="form-control" name="num" id="num">
</div>
<br>
<div class="form-group">
<label for="address">Address</label>
<textarea class="form-control" name="address" id="address"></textarea>
</div>
<br>
</div>
<div class="col-md-4"></div>
</div></div>
{% endblock body %}
USER INTERFACE
LOGIN PAGE:
ADD STUDENTS INFO
TRIGGERS RECORDS
DATABASE LOCALHOST
CONCLUSION
STUDENT MANAGEMENT SYSTEM successfully implemented based on online data
filling which helps us in administrating the data user for managing the tasks performed in
students. The project successfully used various functionalities of Xampp and python flask and
also create the fully functional database management system for online portals.
Using MySQL as the database is highly beneficial as it is free to download, popular and can be
easily customized. The data stored in the MySQL database can easily be retrieved and
manipulated according to the requirements with basic knowledge of SQL.
With the theoretical inclination of our syllabus it becomes very essential to take the atmost
advantage of any opportunity of gaining practical experience that comes along. The building
blocks of this Major Project “Students Management System” was one of these opportunities.
It gave us the requisite practical knowledge to supplement the already taught theoretical
concepts thus making us more competent as a computer engineer. The project from a personal
point of view also helped us in understanding the following aspects of project development:
ENGINEERING(POLYTECHNIC)
MICRO PROJECT
Academic year: 2023- 2024
Program : Course:
Program code Course code:
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
CERTIFICATE
Place : PUNE
Date:
Subject Teacher Head of the Department Principal
INDEX
SR.NO. CONTENT PAGE NO.
1
INTRODUCTION
OBJECTIVES:
LIMITATIONS:
2 STUDY OF EXISTING SYSTEM
CASE STUDY
PROPOSED SYSTEM
3
DATABASE DESIGN
SOFTWARE REQUIREMENTS SPECIFICATION
SOFTWARE REQUIREMENTS
HARDWARE REQUIREMENTS
CONCEPTUAL DESIGN:
E-R DIAGRAM:
SCHEMA DIAGRAM:
IMPLEMENTATION:
4
Back End (MySQL)
Database:
SQL:
Stored Procedure
Triggers
5
BACKEND PYHTON WITH MYSQL CODE
6
FRONT END CODE
7 USER INTERFACE
8
TRIGGERS RECORDS
9
DATABASE LOCALHOST
10 CONCULSION
Dr. D Y Patil Educational Enterprises Charitable Trust’s
Dr.AJEENKAY . D. Y. PATIL SCHOOL OF
ENGINEERING, (POLYTECHNIC)
Approved by AICTE NO. West / 1-3847411/2010/ New Dated 13
July 2010/DTE/Affiliated to MSBTE, Mumbai.
Dr. D Y Patil Knowledge City, Charholi Bk, Via Lohegaon, Pune –
412105
Annexure - I
MICRO-PROJECT PROPOSAL
Title of Micro-project:
3 Literature Review
4 Collection of data
5 Collection of data
7 Formulation of content
8 Editing of content
9 Editing of content
11 Compilation of report
12 Compilation of report
13 Presentation
14 Seminar
15 Viva voce
Sr. Name of
Specifications Quantity Remarks
No. Resource/material
1 LAPTOP 8GB RAM, 1
512GB SSD
2 NETWORK Wi-Fi 1
3 NOTES CLASS 1
NOTEBOOK
4
1. KUNAL MISTARI
2. TEJASWINI SALUNKE
3. AKASH POTE
MICRO-PROJECT REPORT
Annexure - II
Sr. Name of
Specifications Quantity Remarks
No. Resource/material
3 NOTES CLASS 1
NOTEBOOK
4