software design description - ernetcs5080212/group08_(stub)_sdd_version_1.0.… · csl740 software...
TRANSCRIPT
CSL740 Software Engineering Course, IIT Delhi
Software Design Description
Submitted By Abhishek Srivastava (2011EEY7511)
Anil Kumar (2009CS10180) Jagjeet Singh Dhaliwal (2008CS50212)
Ierum Shanaya (2010SIY7570)
Supervised By Dr. S. C. Gupta
National Informatics Centre India
This document gives a detailed Design Description for a new academic portal for IIT
Delhi. The document follows the IEEE 1016 format
(STUB)Design Description
2 | P a g e
Table of Contents 1. Introduction .................................................................................................................................. 4
1.1 Purpose ................................................................................................................................... 4
1.2 Scope ....................................................................................................................................... 4
1.3 Definitions, Acronyms and Abbreviations ................................................................................. 4
1.4 References ............................................................................................................................... 5
1.5 Overview ................................................................................................................................. 5
2. System Architecture Description .................................................................................................... 5
2.1 Overview of Modules/Components.......................................................................................... 5
2.2 Brief Overview of Modules ....................................................................................................... 7
2.2.1 Database ........................................................................................................................... 7
2.2.2 File Sharing System ........................................................................................................... 7
2.2.3 Notification System ........................................................................................................... 8
2.2.4 Discussion forum ............................................................................................................... 8
2.2.5 Interface Module .............................................................................................................. 8
2.3 Module Dependencies ............................................................................................................. 8
3. Detailed Description of Components ............................................................................................. 9
3.1 Database ................................................................................................................................. 9
3.2 Data Interface ........................................................................................................................ 11
3.3 Notification ............................................................................................................................ 12
3.4 Users ..................................................................................................................................... 12
3.5 Groups ................................................................................................................................... 13
3.6 Content Sharing Module ........................................................................................................ 13
3.6.1 Content Upload (Sub-Module)......................................................................................... 13
3.6.2 Content Download (Sub-Module) .................................................................................... 14
3.7 Discussion Forum ................................................................................................................... 15
3.8 Assignment Module ............................................................................................................... 15
4. Design Decisions .......................................................................................................................... 16
4.1 Use Of PHP ............................................................................................................................ 16
4.2 Use Of MySQL ........................................................................................................................ 16
4.3 Use Of Apache ....................................................................................................................... 16
5. User Interface .............................................................................................................................. 17
(STUB)Design Description
3 | P a g e
5.1 Login Screen .......................................................................................................................... 17
5.2 Main Screen ..................................................................................................................... 18
5.3 Time Table View ............................................................................................................... 19
5.4 Assignment View .............................................................................................................. 20
5.5 Discussion Thread ............................................................................................................ 21
5.6 Notification View ............................................................................................................. 22
5.7 Seminar Info..................................................................................................................... 23
5.8 Group Info........................................................................................................................ 24
5.9 Blog View ......................................................................................................................... 25
5.10 Online Survey ................................................................................................................... 26
5.11 Search Old Paper .............................................................................................................. 27
5.12 Content Sharing ............................................................................................................... 28
(STUB)Design Description
4 | P a g e
1. Introduction
1.1 Purpose
The purpose of this document is to propose the Detailed Software Design of the Academic portal that we are going to build (STUB).
1.2 Scope This software system will be an online academic portal for any university wishing to
manage their academic needs online. More specifically to design and develop a simple
and intuitive system which shall cater the academic needs of any institute. The system
shall provide features to the user of an educational institute to be part of different types
of groups, share data and documents amongst different users, have discussion threads,
instant notifications via email/message, assignment submissions, blogs, share old
papers, availability of books and other useful stuff (buy/sell), online survey etc
1.3 Definitions, Acronyms and Abbreviations
1.3.1 Academic Portal
Academic Portal is software meant to help facilitate electronic classroom management
and provide for electronic grading, assignment submission, discussion, and other
learning tools.
1.3.2 Course Administrator
Course administrator is a user who can be a professor or system administrator and who has the ability to manage courses and course pages.
1.3.3 Academic Groups
An academic group is a set of users which can belong to the same course, same department, and same year.
1.3.4 System
System refers to the existing academic portal or a new academic portal.
1.3.4 Acronyms and abbreviations
TYPE DESCRIPTION
DB Database
HTTP Hyper Text Transfer Protocol
HTML Hyper Text Markup Language
LDAP Lightweight Directory Access Protocol
STUB Student University Board
SQL Structured Query Language
(STUB)Design Description
5 | P a g e
1.4 References
1. Moodle Requirements Brainstorming.pdf 2. University of Melbourne – Student Portal (Getting Started Guide) 3. Stakeholder Requirements for Institutional Portals by Liz Pearce, Leona
Carpenter, Ruth Martin 4. Detlor, B. (2000). "The corporate portal as information infrastructure: Towards a
framework for portal design", International Journal of Information Management, 20(2) 91-101.
5. IEEE 1016 Format for Design Description Format
1.5 Overview This is a working document and, as such, is subject to change. In its initial form, it is incomplete by definition, and will require continuing refinement. Requirements may be modified and additional requirements may be added as development progresses and the system description becomes more refined. This information will serve as a framework for the current definition and future evolution of the University Academic Portal.
2. System Architecture Description
2.1 Overview of Modules/Components
(STUB) system follows a n-tier design. Our system is designed with extensibility and Scalability in mind. We are taking great care in designing a framework which can be updated easily. Many of the anticipated changes to our system in future phases will only require adding few functions in the modules which we will be intuitively clear. There are four basic, logical components of the system: the Database Engine, the File Sharing System, Controller, the notification system, discussion forum system, the User Interface modules.
1. Database Engine
1..1 Existing open source software: MySQL.
1..2 Hosts the backend database which is used for storing information about
users and content
2. Content Sharing System
2..1 Stores the Content uploaded by the users.
2..2 Content retrieved from the storage for users with permission to see the
content.
3. The notification system
3..1 Provide notifications for users who want to get notifications
(STUB)Design Description
6 | P a g e
3..2 Provide settings for getting notifications
4. The User Module
4..1 Provide functions for user management and user settings.
5. The Groups Module
5..1 Provides functions for groups management.
6. Discussion Forum system
6..1 Discussion Forum interface to discuss on different topics
6..2 Reply functionality for threads
7. User Interface module
7..1 User Interface to interact with users, groups
7..2 Reply functionality for thread
8. Assignment module
8..1 Professor puts up an assignment as a discussion thread with a submission
link
8..2 Students submits the assignment via submission link
9. Seminar Info module
9..1 Information about the Upcoming Seminar/Conference with Data, Time and
Venue
10. FAQ module
10..1 FAQ questions about the usage of the portal and also the Institute where used
11. Campus News
11..1 Campus News
12. Time Table
(STUB)Design Description
7 | P a g e
Figure 1: System Architecture View
2.2 Brief Overview of Modules
2.2.1 Database
Provides data management and stores information about users, files, directories.
It is divided into two logical partitions, User database and file database. These
two partitions do not interact with each other and are different in nature.
Metadata of files is managed in Database and not in the file system.
Database used is MySQL.
Exploits transaction processing capability to avoid race conditions.
All modifications in the database will be performed through PHP
2.2.2 File Sharing System
It stores files uploaded by users.
(STUB)Design Description
8 | P a g e
There is a root directory in which the main directory of each user is present.
All files of a user are stored in the user’s main directory.
There is a user permission database that has file ID and user permission
information.
2.2.3 Notification System
This module will provide notifications for users who want to get notifications
Notification will be in the form of email.
2.2.4 Discussion forum
Provide an interface for Discussion Forum interface to discuss on different
topics.
Discussion thread will be stored on the database with the access permission
information
2.2.5 Interface Module
It acts as an interface to the database, providing simple methods to access data in
database in logical manner.
It is divided into two logical partitions, User Interface and File Interface, which
do not interact with each other. These logical partitions interact with their
corresponding sections in the Backend Database.
It has classes like Database class, User class which provide a set of accessor and
mutator methods as well as logic for retrieving, inserting, updating, and deleting
data from the database.
The module does processing to abstract out the underlying database design.
It requires PHP for connection to Database.
It also provides classes to logically represent Attribute Collections.
2.3 Module Dependencies Some modules are dependent on other modules. For instance, the Database Module
will get request, it will process them and constitute queries for Database or
manipulate the data Storage. Once results to a query are obtained from the Database,
they will be passed on to the user interface via Data Interface. Database and content
Sharing System are not directly related and Data Interface module provides the
required interface
(STUB)Design Description
9 | P a g e
3. Detailed Description of Components
3.1 Database Identification Database Type Module Purpose Provides means of Data Management Function Takes SQL QUERY and UPDATE commands from the
User and File data modules, and stores and retrieves the data according to those commands
Subordinates The database will store the following data in tables. ● Users ○ user_id* ○ group_id# ○ permission_level ○ 0: Student ○ 1: Professor ○ 2: Administrator ○ notification_setting ○ user_quota ○ user_password(encoded) ○ department_name ○ personal_info ● Groups ○ group_id* ○ user_nos ○ group_name ○ department name ○ course name ○ year (These groups will be added at the startof the semester by System Administrator.) ● Files ○ global_file_id* ○ owner_id# ○ file_name ○ file_path ○ date ○ size ○Shared_group_id ○ Shared_user_id ● Discussion ○ thread_id* ○ heading ○ user_id# ○ thread_permission ○ Shared_group_id# ○ Shared_user_id# ○ start_time ○ end_time ● Comment
(STUB)Design Description
10 | P a g e
○ comment_id* ○ thread_id ○ user_id ○ comment ○ time ● Notification ○ notification_id* ○ group_id ○ notification * table primary key # foreign key.
Dependencies An administrator must perform database setup functions, adding and modifying the structure of tables so that the backend can store the data as appropriate.
Interfaces Apart from administrative setup, all modification of the database items will be performed via PHP. There are two separate partitions in data interfaces to handle the two types of database, User, Discussion and File database
Resources The database we are using is MySQL. All tables will be created by an administrator (us). We will use the MySQL interface to set up and enter initial data in the following tables: Users, Files, Discussion Threads, Access Permissions, Shared Files. These tables are broadly classified into two logical partitions, User Database and File Database. Once these are entered, we will use the data held in these fields as a baseline for our backend processing and retrieval. Our Data Interface module will connect to the database using PHP language. Once the server gets a request for a certain data type from a client it will create a valid SQL statement. Once it has generated a valid SQL statement, the server will connect to the database, execute the query and get a Result Set back. At this point, it will convert the Result Set to the Object which will be passed on to the Controller module.
Data The data in the database will be filled by the server. We will use valid SQL statements called through PHP to execute these commands. In every case we will get a Result Set (for queries) or a SQL Exception if the command does not work for any reason. We will handle these appropriately
(STUB)Design Description
11 | P a g e
Figure 2: Entity Relation Diagram
3.2 Data Interface
Identification (STUB) Data Interface Type Package Purpose Acts as an interface to the database,
providing simple methods to access data in database in logical manner
Function This class has a set of accessor and mutator methods as well as logic for retrieving, inserting, updating, and deleting data from the database
Subordinates The Userdata interface includes the following functions get_record($table, $cond) get_record_sql($sql) count_records($table, $cond) count_records_sql($sql) record_exists($table, $cond) delete_records($table, $cond) insert_records($table, $data) update_record($table, $cond)
Dependencies The module depends on the database
(STUB)Design Description
12 | P a g e
and file system to be in a consistent state
Resources The specific resources required for the class library are mysql library for MYSQL
Processing The module does enough processing to abstract out the underlying database design, and also exposes some higher level functions like search etc
Data The module stores an in-memory copy of the data stored in the database
Remarks The Modules that access the database directly shall use transactions to get around the issues of race conditions
3.3 Notification Identification (STUB) Notification Type Class Purpose Abstracts away the functionalities
required to send and receive notifications Function Implements the functions related to
sending and receiving notifications Dependencies User Class
Database Class
Interfaces The class defines the following functions:
send_notifications(user_id, notification_id) get_all_notifications(user_id)
enable_notifications(user_id)
disable_notifications(user_id)
is_notification_enabled(user_id)
delete_notification(notifications_id)
delete_all_notifications(user_id)
get_notifications_text(notification_id) Resources Requires Database class to connect with the
database
3.4 Users Identification (STUB) User Type Class
(STUB)Design Description
13 | P a g e
Purpose Abstracts away the functionalities required for user management and authentications
Function Implements the functions related to user management and authentication
Dependencies Group Class Database Class
Interfaces The class defines the following functions: login(username, password) logout(user_id) get_user(user_id) get_username(user_id) get_name(user_id) get_email(user_id) get_userid(username) set_email(new_email, user_id) set_password(new_password, user_id) set_name(new_name, user_id)
3.5 Groups Identification (STUB) Group Type Class Purpose Abstracts away the functionalities
required for group management Function Implements the functions related to group
management
Depedency User Class Database Class
Interfaces class defines the following functions: get_groupList(user_id) get_group(group_id) get_group_email(group_id) set_group_email(new_email, group_id) set_group_password(new_password, group_id) set_group_name(new_name, group_id) add_new_member(group_id,user_id) delete_existing_member(group_id,user_id)
Resources Requires Database class to connect to database
3.6 Content Sharing Module
3.6.1 Content Upload (Sub-Module)
Identification Content Sharing Upload
(STUB)Design Description
14 | P a g e
Type Class Purpose Provides means for Uploading data Function
Implements the functions related to content uploading and content permission.
Dependency User Class
Group Class
Content Sharing Super class
Database Class Interfaces
The class defines the following functions:
Send_content(content_name, sender user_id, receiver userid)
add_content(content_name,user_id,group_ids)
delete_content(user_id,group_id,content_name)
is_duplicate(content_name,group_id)
update_content(new_name, old_content_name) Resources
Requires Database class to connect to database Data
The uploaded files will be saved on the server
3.6.2 Content Download (Sub-Module)
Identification Content Sharing Download Type Class Function Implements the functions related to
content downloading Dependency User Class
Group Class Content Sharing Super Class Database Class
Interfaces The class defines the following functions: download_content(content_name, user_id) is_content_downladable(content_name, user_id) download_multiple_copies(content_name, no. of copies)
Resources Requires Database class to connect to database
Data The downloaded files will be saved on the machine
(STUB)Design Description
15 | P a g e
3.7 Discussion Forum
Identification (STUB) Discussion Forum Type Module Purpose Provides means for hosting a discussion forum
Function Implements the functions related to discussion forums and required permission level
Dependency User Class
Group Class
Database Class
Interfaces
The Module provides the functionality to start a discussion
thread.
The corresponding functions are:
Start_discussion(user_id,group_id,topic,data)
Delete_discussion(user_id,group_id,topic_id)
Post_comment(user_id,discussion_id,comment)
Delete_comment(user_id, discussion_id,
comment_id) Resources
None Data
Requires Database class to connect to database
3.8 Assignment Module Identification (STUB) Assignment Type Module Purpose Provides means for Assignment Submission
Function Implements the functions related to Posting Assignment Question by the professor using a higher permission level and student Submitting the Assignment file with a lower permission level
Dependency Group Class Discussion Class Database Class Content Sharing Super class Content Sharing Upload class
Interfaces The Module provides the functionality for assignment submission. The corresponding functions are: Start_assignment(user_id,group_id,topic,data,fi le,end_time)
(STUB)Design Description
16 | P a g e
Submit_assignment(thread_id,user_id,data,file) is_assignment_active(thread_id)
Resources None Data Requires Database class to connect to
database
4. Design Decisions
4.1 Use of PHP We decided to use PHP for our website because it provides for more flexibility in
comparison to JSP in terms of design and background processing. We could also have
used ASP.NET but decided instead to use PHP, because our team-members are more
familiar with PHP than .NET
4.2 Use of MySQL We decided to use MySQL for our website because it provides more speed and is
lightweight in comparison to other database engines. It is also free and open-source
4.3 Use of Apache We decided to use Apache for our website because it’s free, open-source and extremely
stable web server. Several modules are already available for apache. It is also used by
most large websites