software design description - ernetcs5080212/group08_(stub)_sdd_version_1.0.… · csl740 software...

28
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

Upload: buidieu

Post on 08-Apr-2018

219 views

Category:

Documents


1 download

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

(STUB)Design Description

17 | P a g e

5. User Interface

5.1 Login Screen

Figure 3: Login Screen

(STUB)Design Description

18 | P a g e

5.2 Main Screen

Figure 4: Main View

(STUB)Design Description

19 | P a g e

5.3 Time Table View

Figure 5: Time Table View

(STUB)Design Description

20 | P a g e

5.4 Assignment View

Figure 6: Assignment View

(STUB)Design Description

21 | P a g e

5.5 Discussion Thread

Figure 7: Discussion Thread View

(STUB)Design Description

22 | P a g e

5.6 Notification View

Figure 8: Notifications View

(STUB)Design Description

23 | P a g e

5.7 Seminar Info

Figure 9: Seminar Info View

(STUB)Design Description

24 | P a g e

5.8 Group Info

Figure 10: Group Info View

(STUB)Design Description

25 | P a g e

5.9 Blog View

Figure 11: Blog View

(STUB)Design Description

26 | P a g e

5.10 Online Survey

Figure 12: Online Survey View

(STUB)Design Description

27 | P a g e

5.11 Search Old Paper

Figure 13: Search Old Paper View

(STUB)Design Description

28 | P a g e

5.12 Content Sharing

Figure 14: Content Sharing View