Capstoneproject
Capstoneproject
ON
SUBMITTED BY
Student Name: Anusha GV
Register Number:21DMMCA008
GUIDED BY
Guide Name
CMR University
School of Science Studies
The satisfaction that accompanies the successful completion of any task would
be incomplete without the mention of people whose ceaseless cooperation
made it possible, whose constant guidance and encouragement crown all
efforts with success
We would take immense pleasure to express our sincere gratitude and thanks
to our Director Dr. Chitra Ravi for providing us with the resources to
complete our project successfully.
Our special thanks to grateful to our parents and friends who have been a great
support in the fortunate completion of this project.
Student Name
01 INTRODUTION
1.1 OBJECTIVE
1.2 PROBLEM DESCRIPTION
02 SYSTEM ANALYSIS
2.1 PROPOSED SYSTEM
2.2 FEASIBILITY STUDY
2.2.1 TECHNICAL FEASIBILITY
2.2.2 OPERATIONAL FEASIBILITY
2.2.3 ECONOMIC FEASIBILITY
03 REQUIREMENT SPECIFICATION
3.1 HARDWARE
3.2 SOFTWARE
04 SYSTEM DESIGN
4.1 ER DIAGRAM
4.2 USECASE DIAGRAM
4.3 SEQUENCE DIAGRAM
4.4 STATE TRANSITION DIAGRAM
05 IMPLEMENTATION
5.1 MODULE DESCRIPTION
5.2 SCREEN SHOTS
06 CODING
6.1 SOURCE CODE
07 TESTING
7.1 UNIT TESTING
7.2 INTEGRATION
7.3 SYSTEM TESTING
7.4 ACCEPTANCE TESTING
08 CONCLUSION
09 FUTURE SCOPE
10 REFERENCES
INTRODUCTION
1.1 OBJECTIVE
The primary objective of the School Information System is to establish a centralized and
efficient platform for managing, organizing, and accessing crucial student-related data within
an organization. This system aims to streamline teachers and administrative processes,
enhancing productivity and data accuracy by providing a user-friendly interface for teacher
departments and management to easily create, update, and retrieve student records. By
centralizing student information, the system ensures that essential details, such as personal
data, and performance evaluations, are readily accessible and up-to-date. Additionally, it
promotes effective decision-making and resource allocation through the provision of
comprehensive reports and analytics. Furthermore, the system bolsters data security through
role-based access control, safeguarding sensitive information and ensuring that only
authorized personnel can access specific data. Ultimately, the school Information System is
designed to foster student engagement, improve teacher management, and support the overall
efficiency of an organization by optimizing workforce management and resource allocation.
The problem that necessitates the development of an school Information System arises from
the growing complexity of managing student data within organizations. Traditional manual
record-keeping processes have become inefficient and error-prone, leading to challenges such
as data inconsistency, difficulty in accessing information, and time-consuming administrative
tasks. Teacher departments and management often struggle with the need to maintain
accurate student records, handle numerous details associated with each student, and ensure
data security. In this context, the absence of a centralized and automated system can lead to
inefficiencies, reduced productivity, and potential data security risks. Additionally, the lack
The school Information System seeks to address these challenges by providing a holistic
solution that centralizes student data, streamlines administrative processes, and enhances data
accuracy. It aims to simplify the management of student information, reduce manual labor,
and empower organizations with data-driven insights, ultimately fostering improved teacher
management and organizational efficiency.
MODULES
Home/Dashboard Page:The Home/Dashboard Page serves as the central hub of the application,
displaying key information, summaries, and shortcuts to various modules. It provides an at-a-
glance overview of the organization's workforce and activities.
Login Page:The Login Page is the initial point of entry to the system. It allows authorized users
to log in securely by providing their username and password. It ensures that only authenticated
users gain access to the system.
Add New Department:This functionality permits administrators to create and add new
departments within the organization, including specifying names, descriptions, and any
additional relevant information.
List All Departments:List All Departments provides a comprehensive view of all existing
departments, including their names and descriptions. It offers quick access to department
information.
Update Department Details:Administrators can use this function to modify department
records, accommodating changes in department names, descriptions, or other relevant
details.
Delete Department Details:In situations where a department becomes obsolete or is no
longer needed, authorized users can delete department records. Any employees associated
with the department should be reassigned to other departments before deletion.
Add New Position:This functionality enables administrators to create and add new job
positions, defining position titles, descriptions, and other relevant information.
Add New student:This function allows authorized users to create and add new employee
profiles, gathering essential information such as names, contact details, department,
course, and more.
List All students:List All student provides an overview of all employee profiles within the
organization, offering details like names, contact information, department, and course. It
simplifies access to employee records.
Update student Details:Administrators can use this function to edit and update employee
records as necessary, ensuring that student information remains accurate and up to date.
View student Details:This functionality enables users to access and view comprehensive
details of an individual student's profile, including all recorded information.
Delete student Details:When an student leaves the organization or their record is no
longer needed, authorized users can delete the student's record, maintaining data accuracy
and security.
Logout:The Logout function ensures that users can securely log out of the system, terminating
their active session and preventing unauthorized access to their account.
User Authentication:User Authentication is a critical aspect of the system that validates the
identity of users. It involves verifying usernames and passwords to grant access to authorized
individuals while maintaining data security.
2.SYSTEM ANALYSIS
Technical Feasibility
Economic Feasibility
Operational Feasibility
Schedule Feasibility
Feasibility studies are almost always conducted where large sums are at stake. Also called as
feasibility analysis. Every project is feasible for given unlimited resources and infinitive time.
Feasibility study is an evaluation of the proposed system regarding its working ability, impact
Operational feasibility is a measure of how well a proposed system solves the problems, and
takes advantage of the opportunities identified during scope definition and how it satisfies the
requirements identified in the requirements analysis phase of system development.To ensure
success, desired operational outcomes must be imparted during design and development.
These include such design-dependent parameters such as reliability, maintainability,
supporting ability, usability, disposability, sustainability, affordability and others.
These parameters are required to be considered at the early stages of design if desired
operational behaviors are to be realized. A system design and development requires
appropriate and timely application of engineering and management efforts to meet the
previously mentioned parameters. A system may serve its intended purpose most effectively
when its technical and operating characteristics are engineered into the design. Therefore,
operational feasibility is a critical aspect of systems engineering that needs to be an integral
part of the early design phases.
Determines whether the proposed system conflicts with legal requirements, e.g. a data
processing system must comply with the local data protection regulations and if the proposed
venture is acceptable in accordance to the laws of the land.
3 REQUIREMENT SPECIFICATION
3.1 HARDWARE
• I3 and above
• Minimum 3 GB RAM
• Internet Connection
• Hard Disk 500 GB
3.2 SOFTWARE
• OS windows 11
• SQLITE
Front-End:
HTML
CSS
Java Script
JQUERY
AJAX
Back-End:
Frameworks: Django
Architectural design
The architectural design of a system emphasizes the design of the that describes the, and of
that system and analysis.
Logical design
The logical design of a system pertains to an abstract representation of the data flows, inputs
and outputs of the system. This is often conducted via modelling, using an over-abstract (and
sometimes graphical) model of the actual system. In the context of systems, designs are
included. Logical design includes entity-relationship diagrams (ER diagrams).
Physical design
Input requirement
Output requirements
Storage requirements
Processing requirements
System control and backup or recovery.
Put another way, the physical portion of system design can generally be broken down into
three sub-tasks:
User Interface Design is concerned with how users add information to the system and with
how the system presents information back to them. Data Design is concerned with how the
data is represented and stored within the system. Finally, Process Design is concerned with
how data moves through the system, and with how and where it is validated, secured and/or
transformed as it flows into, through and out of the system. At the end of the system design
phase, documentation describing the three sub-tasks is produced and made available for use
in the next phase.
Physical design, in this context, does not refer to the tangible physical design of an
information system. To use an analogy, a personal computer's physical design involves input
via a keyboard, processing within the CPU, and output via a monitor, printer, etc. It would
not concern the actual layout of the tangible hardware, which for a PC would be a monitor,
CPU, motherboard, hard drive, modems, video/graphics cards, USB slots, etc. It involves a
detailed design of a user and a product database structure processor and a control processor.
The H/S personal specification is developed for the proposed system.
Entities
which are represented by rectangles. An entity is an object or concept about which you want
to store information. A weak entity is an entity that must defined by a foreign key
relationship with another entity as it cannot be uniquely identified by its own attributes alone.
Actions: which are represented by diamond shapes, show how two entities share information
in the database. In some cases, entities can be self-linked. For example, employees can
supervise other employees.
Weak entity
School of Science Studies, CMRU
It is an entity that must defined by a foreign key relationship with another entity as it cannot
be uniquely identified by its own attributes alone.
Actions
which are represented by diamond shapes, show how two entities share information
in the database. In some cases, entities can be self-linked. For example, employees
can supervise other employees.
Attributes
which are represented by ovals. A key attribute is the unique, distinguishing characteristic of
the entity. For example, an employee's social security number might be the employee's key
attribute. A multivalued attribute can have more than one value. For example, an employee
entity can have multiple skill values. A derived attribute is based on another attribute. For
example, an employee's monthly salary is based on the employee's annual salary.
Multivalued attribute can have more than one value. For example, an employee entity can
have multiple skill values.
Derived attribute is based on another attribute. For example, an employee's monthly salary
is based on the employee's annual salary
It Refers to an attribute that uniquely defines an entity in an entity set. Entity keys can be
super, candidate or primary. Super key: A set of attributes (one or more) that together
define an entity in an entity set. Candidate key: A minimal super key, meaning it has the
least possible number of attributes to still be a super key. An entity set may have more
than one candidate key. Primary key: A candidate key chosen by the database designer to
uniquely identify the entity set. Foreign key: Identifies the relationship between entities.
Relationship
How entities act upon each other or are associated with each other. Think of relationships
as verbs. For example, the named student might register for a course. The two entities
would be the student and the course, and the relationship depicted is the act of enrolling,
connecting the two entities in that way. Relationships are typically shown as diamonds or
labels directly on the connecting lines.
Recursive relationship
Connecting lines
The solid lines that connect attributes to show the relationships of entities in the diagram.
Cardinality
It specifies how many instances of an entity relate to one instance of another entity.
Ordinarily is also closely linked to cardinality. While cardinality specifies the occurrences
of a relationship, ordinarily describes the relationship as either mandatory or optional. In
other words, cardinality specifies the maximum number of relationships and ordinarily
specifies the absolute minimum number of relationships.
ER models and data models are typically drawn at up to three levels of detail:
5 IMPLEMENTATION
5.1 MODULE DESCRIPTION
5.2 SCREEN SHOTS
6 CODING
6.1 SOURCE CODE
Index.html
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
</div>
</div>
Viewallstudent
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>View All Employee</title>
</head>
<body>
<div class="container">
<h1>All Student Details!</h1>
<hr>
<table class="table table-dark">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First Name</th>
<th scope="col">Last Name</th>
<th scope="col">course</th>
<th scope="col">class</th>
<th scope="col">Phone Number</th>
<th scope="col">Role</th>
<th scope="col">Department</th>
<th scope="col">Location</th>
</tr>
</thead>
{% for emp in emps %}
<tbody>
<tr>
<th scope="row">{{emp.id}}</th>
<td>{{std.first_name}}</td>
<td>{{std.last_name}}</td>
<td>{{std.course}}</td>
<td>{{std.class}}</td>
<td>{{std.phone}}</td>
<td>{{std.role.name}}</td>
<td>{{std.dept.name}}</td>
<td>{{std.dept.location}}</td>
<td>{{std.hire_date}}</td>
</tr>
</tbody>
{% endfor %}
</table>
</div>
<!-- <script
src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js"
integrity="sha384-7+zCNj/IqJ95wo16oMtfsKbZ9ccEh31eOz1HGyDuCQ6wgnyJNSYdrPa0
3rtR1zdB" crossorigin="anonymous"></script>-->
<!-- <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js"
integrity="sha384-
QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13"
crossorigin="anonymous"></script>-->
</body>
</html>
Admin.py
from django.contrib import admin
from .models import Employee, Role, Department
# Register your models here.
admin.site.register(Student)
admin.site.register(Course)
admin.site.register(Department)
app.py
class EmpAppConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'emp_app'
models.py
from django.db import models
class Department(models.Model):
name = models.CharField(max_length=100,null=False)
location = models.CharField(max_length=100)
def __str__(self):
return self.name
class Role(models.Model):
name = models.CharField(max_length=100, null=False)
def __str__(self):
return self.name
class Student(models.Model):
first_name = models.CharField(max_length=100, null=False)
last_name = models.CharField(max_length=100)
dept = models.ForeignKey(Department, on_delete=models.CASCADE)
salary = models.IntegerField(default=0)
bonus = models.IntegerField(default=0)
role = models.ForeignKey(Role, on_delete=models.CASCADE)
phone = models.IntegerField(default=0)
hire_date = models.DateField()
def __str__(self):
return "%s %s %s" %(self.first_name, self.last_name, self.phone)
urls.py
from django.contrib import admin
from django.urls import path, include
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('all_emp', views.all_emp, name='all_emp'),
path('add_emp', views.add_emp, name='add_emp'),
path('remove_emp', views.remove_emp, name='remove_emp'),
path('remove_emp/<int:emp_id>', views.remove_emp, name='remove_emp'),
path('filter_emp', views.filter_emp, name='filter_emp'),
Views.py
from django.shortcuts import render, HttpResponse
from .models import Employee, Role, Department
from datetime import datetime
from django.db.models import Q
def all_emp(request):
emps = Student.objects.all()
context = {
'emps': emps
}
print(context)
return render(request, 'view_all_emp.html', context)
def add_emp(request):
if request.method == 'POST':
first_name = request.POST['first_name']
last_name = request.POST['last_name']
salary = int(request.POST['salary'])
bonus = int(request.POST['bonus'])
phone = int(request.POST['phone'])
dept = int(request.POST['dept'])
role = int(request.POST['role'])
new_emp = Employee(first_name= first_name, last_name=last_name, salary=salary,
bonus=bonus, phone=phone, dept_id = dept, role_id = role, hire_date = datetime.now())
new_emp.save()
return HttpResponse('Employee added Successfully')
elif request.method=='GET':
return render(request, 'add_emp.html')
else:
return HttpResponse("An Exception Occured! Employee Has Not Been Added")
def filter_emp(request):
if request.method == 'POST':
name = request.POST['name']
dept = request.POST['dept']
role = request.POST['role']
emps = Employee.objects.all()
if name:
emps = emps.filter(Q(first_name__icontains = name) | Q(last_name__icontains =
name))
if dept:
emps = emps.filter(dept__name__icontains = dept)
if role:
emps = emps.filter(role__name__icontains = role)
context = {
'emps': emps
}
return render(request, 'view_all_emp.html', context)
asgi.py
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'office_emp_proj.settings')
application = get_asgi_application()
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'office_emp_proj.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
TESTING
TESTING
The common view of testing held by users is that it is performed to prove that there are no
errors in a program. It is extremely difficult since designer cannot prove to be one hundred
percent accurate. Therefore, the most useful and practical approach is with the understanding
that testing is the process of executing a program with explicit intention of finding errors that
make the program fail. Testing has its own cycle. The testing process begins with the product
requirements phase and from there parallels the entire development process. In other words,
for each phase of the development process there is an important testing activity. It is
extremely difficult since designer cannot prove to be one hundred percent accurate.
Therefore, the most useful and practical approach is with the understanding that
testing.Successful testing requires a methodical approach. It requires focusing on basic
critical factors:
Planning
Project and process control
Risk management
Inspections
Test Plan
Before going for testing, first we have to decide upon the type of testing to be carried
out. The following factors are taken into consideration:
To ensure that the module operate properly at boundaries established to limit or restrict
processing
To find out whether error - handling paths are working correctly or not
To find out whether the values are correctly updated or not
Check for validations
The test is unbiased because the designer and the tester is independent of each other
The tester needs no specific knowledge on any programming language
The test is done from the point of view of the user, not the designer.
The test can be designed as soon as the specifications are complete
The test can be redundant if the software designer has already run a test case.
The test can be difficult to design
Testing every possible input stream is unrealistic.
Unit or module testing is the process of testing the individual components (subprograms or
procedures) of a program. The purpose is to discover discrepancies between the modules
Integration testing is the process of combining and testing multiple components together. The
primary objective of integration testing is to discover errors in the interfaces between the
components. In our system each of the modules mentioned above, are tested for checking the
integration between them, after each of them are tested individually.
As the number of possible tests for even simple software components is practically infinite,
all software testing uses some strategy to select tests that are feasible for the available time
and resources. As a result, software testing typically (but not exclusively) attempts to execute
a program or application with the intent of finding software bugs (errors or other defects).
The job of testing is an iterative process as when one bug is fixed, it can illuminate other,
deeper bugs, or can even create new ones.
Software testing can provide objective, independent information about the quality of software
and risk of its failure to users or sponsors. Software testing can be conducted as soon as
System testing is an essential step for the development of a reliable and errorfreesystem.
Once source code has been generated, software must be tested to uncover andcorrect as many
errors as possible before delivery to your customer. Your goal is todesign a series of test
cases that have a high likelihood finding errors but how, thereare different methods that
provides a systematic guidance for designing tests that,Exercise the internal logic of software
components, andExercise the input and output do mains of the progra m to u ncover errors in
the program function, behaviour, and performance
Acceptance testing, in the context of the engineering and software industries, is a functional
trial performed on a product or prototype before it is put on the market or delivered, to
decide whether the specifications or contract have been met. It also makes sure the quality
and design of the product meet both contractual and regulatory obligations in terms of
functionality, usability, durability, and safety.If a product is found to be unacceptable at this
stage, it can be sent back for modification, debugging, repair, or re-design before it can
become a costly undertaking for the producer, as would be the case in a product recall.
The acceptance testing process, which is also known as end-user testing, operational
acceptance testing, or field testing acts as a form of initial quality control to identify
problems and defects while they can still be corrected relatively painlessly and
inexpensively.
It often involves trialing a prototype product or one which has not yet been mass-produced
for the consumer market. It is also one of the final stages of a piece of software’s testing
cycle and often occurs before a client or customer accepts the new application — and
encourages close collaboration between developers and customers.
CONCLUSION
FUTURE SCOPE
REFERENCES