Академический Документы
Профессиональный Документы
Культура Документы
Database
Abstract
Collection of information by positions of authority often involves students
submitting redundant information that may be already available in a
previously submitted form. Multiple authorities may ask for forms
requesting the same information again and again.
1
Table of Contents
1. Introduction..................................................................................................................................3
2. Feasibility Study..........................................................................................................................4
2.1 Summary...............................................................................................................................4
2.2 Component Identification......................................................................................................4
2.3 Manpower.............................................................................................................................5
2.4 Communication and Transport..............................................................................................5
3. Software Requirements Specification of the Project...................................................................6
3.1 Introduction...........................................................................................................................6
3.1.1 Purpose..........................................................................................................................6
3.1.2 Scope.............................................................................................................................6
3.1.3 Overview of the Specification.......................................................................................7
3.2 Overall Description of the System........................................................................................7
3.2.1 Product Perspective.......................................................................................................7
3.2.2 Interfaces to the system.................................................................................................7
3.2.3 Use Case Diagram of the System..................................................................................8
3.2.4 Characteristics of the Users...........................................................................................8
3.2.5 Assumptions and Constraints on the System.................................................................8
3.3 Specific Requirements of the System...................................................................................9
3.3.1 External Interface Description.......................................................................................9
3.3.2 Data Flow Diagrams....................................................................................................10
3.3.3 Functional Requirements.............................................................................................13
3.3.4 Non Functional or Optional Requirements..................................................................13
3.3.5 Logical Database Requirements..................................................................................13
3.3.6 Project Module Breakdown and Development Time Estimation................................15
3.3.7 Maintenance, Security and Risk Analysis...................................................................17
2
1. Introduction
Students often have to frequently submit redundant information that is otherwise
readily available in previously submitted forms that may have been collected.
Secondly, information of a student may change frequently, for which an authority will
have to make more and more forms to collect this information. Authority may also
overlook whether or not this information has been collected before or not.
For example:
• Teacher A has collected names and Email IDs of students. Teacher B may also
require the Email IDs of students as well as phone numbers. Teacher A is not
in contact with Teacher B and therefore doesn’t know the emails have already
been collected. Hence another form is issued by Teacher B, collecting
information in a redundant manner.
• A field omission may have been made in a given form by a Teacher, which may
lead to the Teacher making another form with the exact same fields
All of these cases create unnecessary and inconvenient work both for the Teacher and
Student in question.
This software attempts to solve this problem by creating a facility which creates
requests for Students to update or check desired information already present in the
database for submission. These requests are issued by a Teacher.
The interface then allows the Teacher to generate a report in the desired format, such
as comma-separated variables (CSV), in excel sheets, simply in PDF format with the
values listed in tables etc.
Teachers may also create private fields for updating private information specific to the
class. For example, a teacher may require the Github accounts of all the students, all
the teachers do not want it. These fields can be promoted to public status as required
or certain private fields may be merged. This may cause conflicts and mitigation for
this is explained in detail later in the document.
3
2. Feasibility Study
2.1 Summary
Since this is mostly a small scale, organic project with most components well tested
and freely available in the ecosystem at no cost, this project is feasible with little
investment aside from manpower, methodology and maintenance.
• Web Server: A web server and server side scripting is required for
communicating with the user and the database. Flask is suggested.
"PUBLIC" : {
"email": [
"abc@def.gh",
"ghi@jkl.mno"
],
"mobile": [
"123456789",
"987654321"
]
},
"PRIVATE" : {
"teacher_213" : {
4
"github_account": "github.com/abcd"
},
"teacher_234" : {
"telegram_account": "t.me/abcd"
}
}
}
2.3 Manpower
Since this is a small scale project and most of the components are freely available,
well tested and well documented, not much man power is required for this project
provided that the staff has the knowledge of using the above technologies.
5
3. Software Requirements Specification of the Project
3.1 Introduction
This software implements a database system that allows for convenient access to
student details for people of authority. It allows convenient report generation of
student data for official work.
3.1.1 Purpose
The purpose of this project is to reduce the substantial amount of inconvenience that
a person of authority has to go through to collect student information, as well as
reduce the inconvenience of the student who has to fill in redundant information again
and again.
3.1.2 Scope
The scope of the project is to:
• Allow a teacher to prompt student for a form requiring new and existing
information.
6
3.1.3 Overview of the Specification
This SRS details the components and functions of the whole system, as well as the
requirements of the whole system.
This also requires the concerned personnel as well as the users to have internet
connectivity to their devices, which is likely considering the present scenario.
There is also a system for getting consent from a specific user. Each user will have to
input a specific PIN or password in order to give their consent to a teacher to use
their information. This will prevent bad actors from using unauthorised information
and sign up a user to an event he or she may not want to attend.
1. The User: This is the student. The student gives and updates required
information, and is also given options to supply one-time alternate information
7
when prompted.
Obtain Update
Consent from Existing
Student Information
Internal System
View List
Get Student of Filled Login
Login Details Forms
Teacher
«extend»
Student
Consent to
Give
Generate Infotmation
Formatted
Report
We also assume that the given computer runs a system with Linux deployment
8
capability, since the entire stack is built there.
1. Home Page/Landing Page: This is the first page that a user sees. This
interface allows either a teacher or student to log into their respective
dashboard pages.
3. Classroom Dashboard Page: This lists the students in the given classroom
and the data fields that have been collected from these users. The interface
allows the teacher to select all students or a number of students and send
notifications to them to update their information. It then allows a teacher to
generate a tabulated report from the information. Any number of students can
be added to a classroom by a teacher via a browsing pane present.
4. Student Dashboard Page: This allows the student to update his or her
information in a preliminary manner and view pending forms and notifications
as well as forms that have been consented to and submitted.
6. Form Input Page: This page dynamically generates forms as per Teacher
request, which is then filled up by the user.
9
3.3.2 Data Flow Diagrams
Level 1 DFD:
10
Level 2 DFD:
11
Level 3 DFD:
12
3.3.3 Functional Requirements
The system must satisfy the following objectives:
1. Allow the Teacher to look up the list of students, and assign them a form to be
filled up upto a certain time limit.
2. The system must in some way notify the student that a form needs to be filled
up, and also notify them about the time limit or deadline.
3. The system must allow the student to fill up and update new and existing
system information respectively, as well as give consent to the information
being filled. The system must store these consents.
4. The system must get the student data and present it to the teacher in a concise
manner, and then allow the teacher to generate a report out of it, such as in
the form of a table.
1. The system can have the facility of generating reports in a wide variety of
formats.
2. The system may send automated email notifications to the students for the
forms.
3. There may be a facility of doing statistical analysis over the acquired data.
Such as the mean, response rate etc.
If we were to implement such a database in SQL the whole database would consist of
nodes and pointers that are filtered and indexed from to generate the information
13
tree, which these dictionary structures represent.
The "schema" for the Student and Teacher dictionaries will look something as follows.
The form schema and notification storage is not shown here.:
14
The data that is meant to be represented is written in the form of "datatype strings",
in the schema or "template" dictionaries of each form that is sent out. For example, a
form request may be represented as such:
{
"name": {
"type": "string",
"references" : "READONLY.name" // References user name.
},
"parent_telephone_no": {
"type": "tel",
"entries": 2,
"label": "Parent's Telephone Number",
"visibility": "PRIVATE",
"references": "\0" // References nothing. New entry.
}
}
// ...
}
Technologies such as MongoDB Realms and Stitch have been considered, but
dismissed due to costs.
We now estimate the lines of code required to create the project based on the
component description as given above. We will consider the external interface pages
to break down the project into modules as follows:
1. Base Overhead
This consists of the number of lines required to set up the Flask environment
along with the Flask-PyMongo Database library for communicating with the
MongoDB database and the login system. Estimated Lines: 150 (0.15
15
KLoC)
This is the number of lines in templates that need to be created and the
amount of CSS that needs to be written to style the templates. Estimated
Lines: 200 (0.2 KLoC)
Based on the form schema, the logic of how the form is to be generated is
written here. Estimated Lines: 80 (0.08 KloC)
4. Classroom Dashboard
Mainly needs to query the database for students and their info as well as create
new forms for them. Estimated Lines: 200 (0.2 KloC)
5. User Dashboard
Mainly needs to update existing information and accept notifications for forms.
6. Sysadmin Dashboard
Total Kilo Lines of Code = 0.15 + 0.2 + 0.08 + 0.2 + 0.1 + 0.1 + 0.04
= 0.87 KloC
16
= 2.07 Person Months
= 3.29 Months
2. Information may be lost due to software bugs. However due to the small size of
the project, these may be solved quickly.
4. The database may get too big for a hard drive, and therefore must be checked
routinely such that such incidents of data entry failure are avoided.
17