Top Banner
COLLEGE PROJECT MANAGEMENT SYSTEM 1. INTRODUCTION The vast growth of Internet over the past two decades has led to an enormous rise in global web content. More and more web applications are being developed to simplify human life to a great extent. Today, almost all day-to-day tasks are being done online- be it shopping, paying bills, booking tickets or learning courses. Hence, the world today is highly dependent on internet and the web. Web applications may be developed to solve any desired real-world problem. This project, College Project Management System (CPMS), is an open source, web-based software developed to help college authorities manage the project-related activities of a college. This software helps the office staff to maintain all student records and their respective project records, so that the process of project management becomes easier and less time- consuming. The main goal of this project is to replace the existing system, and to computerize the entire process. The system can store information about students’ personal and project details, and retrieve that information in a fast and accurate way. It has all the modules to manage an institute’s project-related transactions. It can generate automated project receipts for the project payments made by students. It can also generate project reports of the college, thereby Dept of CSE,MITS Page 1
76
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

1. INTRODUCTION

The vast growth of Internet over the past two decades has led to an enormous

rise in global web content. More and more web applications are being developed to

simplify human life to a great extent. Today, almost all day-to-day tasks are being

done online- be it shopping, paying bills, booking tickets or learning courses. Hence,

the world today is highly dependent on internet and the web. Web applications may

be developed to solve any desired real-world problem.

This project, College Project Management System (CPMS), is an open source,

web-based software developed to help college authorities manage the project-related

activities of a college. This software helps the office staff to maintain all student

records and their respective project records, so that the process of project management

becomes easier and less time-consuming.

The main goal of this project is to replace the existing system, and to

computerize the entire process.

The system can store information about students’ personal and project details,

and retrieve that information in a fast and accurate way. It has all the modules to

manage an institute’s project-related transactions. It can generate automated project

receipts for the project payments made by students. It can also generate project reports

of the college, thereby facilitating the college administration to take appropriate

decisions in the future.

1.1 MOTIVATION

In today’s fast-changing world, no one likes to perform calculations or

maintain data manually, when computers could do all these tasks. Everyone wants

their work to be done by the computer automatically. Hence, the motive behind this

project is to computerize all the project-related transactions of a college, and reduce

paper work to a great extent.

In the existing system used in most colleges, the records are maintained on

paper. It is very inconvenient to modify this data. Also, there is a possibility that the

same data in different registers may have different values, which means that there is a

possibility of data redundancy. This inconsistent state does not supply concrete

Dept of CSE,MITS Page 1

Page 2: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

information, and is a serious problem. The proposed system was developed to solve

this problem of redundancy.

CPMS has a database to store all the courses and branches offered by a

college, its student details, and project details of all the students. It has modules to

generate project receipts for the projects collected from a student, as well as generate

project reports from time-to-time. These reports help the college administration in

taking important decisions related to the college. Also, the office staff can get to know

the list of students who have paid the projects and who have not paid the projects at a

single glance from these reports. The main objective of using this software is for

academic institutions to simplify their administrative process involving inventory and

payments. To describe it in a nutshell, this system abates the work load of an

organization greatly.

1.2 PROBLEM DEFINITION

Today all the work related to projects management is being done using file

systems (such as Microsoft Excel) in most colleges. As the data increases, file

systems become very slow in retrieval and consume a lot of time. Also, it is very

time-consuming for the office personnel to enter data into spreadsheets. There is also

a possibility of data inconsistency. Hence, there is a need to design an automated

Student Project Management System, to speed up the process and to overcome the

drawbacks of the existing system.

The problem statement is to design a system which-

is user-friendly,

is simple to use,

restricts unauthorized people from accessing the data,

increases the productivity of the office/management staff,

decreases paper work to a great extent making the process cost effective,

helps the administrator to handle all the changes.

Dept of CSE,MITS Page 2

Page 3: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

1.3 OBJECTIVE OF PROJECT

1.3.1 General objective

To develop a web application with a database at the back end in order to store,

retrieve and update data efficiently.

1.3.2 Specific objectives

The system should be fast and convenient to use.

The system should be reliable, and must not give scope for any human errors.

The system should shorten the time of retrieving the data asked by the user.

The system should generate dynamic project reports from the data stored in it.

1.4 LIMITATIONS OF PROJECT

The limitations of this project include the need for power supply and the

storage capacity needed for large number of students. The more the students, the more

the data, and hence the need for more processing power and memory of server.

Dept of CSE,MITS Page 3

Page 4: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

2. LITERATURE SURVEY

2.1 INTRODUCTION

The modern computerized system, CPMS, was developed with the aim to

overcome the drawbacks of the existing manual system. Following is a brief

description of the existing system, its drawbacks and the advantages of the proposed

system.

2.2 EXISTING SYSTEM

At present in most colleges, all records are being maintained partly on paper

and partly using a file system (such as MS Excel). Microsoft Excel is a spreadsheet

application which allows data to be entered and stored in the form of tables. The user

needs to enter all data in rows, one after the other, which is time-consuming. We

realize that there is a need for better system.

2.3 DISADVANTAGES OF EXISTING SYSTEM

Usage of file systems for maintaining project-related data has the following

drawbacks in it-

Entering and storing of data is a very cumbersome and tiring process.

Retrieval of data becomes slow as the records increase in number.

There is no proper validation of data, and the system gives scope for human

errors.

There is very less provision for user interaction.

No report generation facility is present.

More paper work has to be done.

2.4 PROPOSED SYSTEM

The proposed system is the ‘College Project Management System’. The

following paragraph gives a detailed summary of how this system overcomes the

shortcomings of the existing one.

The new system takes into account the various needs and requirements of the

user. The drawbacks are overcome by designing the system carefully such that all the

requirements are met.

Dept of CSE,MITS Page 4

Page 5: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

It is much easier for the office personnel to enter data in this system, as it

makes use of certain latest type-ahead technologies like Ajax. This way, the

user need not type the entire word when entering data; a small phrase would

do the job.

Making use of a database system helps retrieve data very quickly and

accurately.

Use of HTML5 provides facility for data validation on the client side, before it

is sent to the server. Hence, there is not much scope for errors in data entry.

A high level of user-system interactivity is provided, where the system assists

the user in various tasks.

Project receipts are generated by the system itself, and this reduces the task of

writing the receipt manually by the user. Hence, a lot of time would be saved.

Dynamic project reports related to both project collections as well as project

dues are generated from the data stored in the database.The following are the

additional plus points of CPMS-

User-friendly, with an attractive GUI (Graphical User Interface).

Open-source web application, which can be accessed from anywhere over the

net.

Simple and convenient to use.

Decreases paper work to a large extent.

Increases the productivity of the office staff greatly.

Dept of CSE,MITS Page 5

Page 6: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

3. ANALYSIS

3.1 INTRODUCTION

The analysis process is adopted when the project development personnel

decide that a particular existing system needs improvement. To know the

requirements of the system to be developed and understand its context, we need to

perform a set of activities. The first activity in this phase is to study the existing

system, and the other is to understand the requirements and domain of the new

system. Both the activities are equally important, but the first activity serves as a basis

for giving the successful design of the proposed system.

Understanding the properties and requirements of a new system is difficult and

requires creative thinking as well as understanding of the existing system also.

Improper understanding of present system can lead to diversion from the solution.

The System Development Life Cycle (SDLC) is the set of activities carried out

by the analysts, designers and developers to develop and implement a software

system. The entire process of system development is described in this life cycle

pattern. The general activities that form the life cycle of the system are given below-

Requirement Analysis

System Design

Detail Design

Coding

Unit Testing

System Integration & Testing

The Waterfall Model (or the Linear Sequential model) has been used for

developing this project, as the requirements of the system were known clearly

beforehand. Also, since this system is an enhancement of the already existing system,

much of its requirements were obtained from the existing system itself. Hence,

waterfall model was the choice for this project. The following diagram depicts the

various activities of the waterfall model.

Dept of CSE,MITS Page 6

Page 7: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

Figure 1: Waterfall Process Model

3.2 SOFTWARE REQUIREMENTS SPECIFICATION (SRS)

3.2.1 User Requirements

Automate all the manual operations during the time of project payments.

Eliminate paper work.

Efficiently manage the students’ (personal, academic & project) details.

3.2.2 Software Requirements

Operating System : Any contemporary Microsoft Windows OS

Language : PHP language, Yii Framework

Servers : Apache Web Server, MySQL Database Server

Supporting Tools : HTML5, JavaScript, CSS, Ajax

3.2.3 Hardware Requirements

Processor : Pentium III and above

RAM : 512 MB

Hard disk : 20 GB

Dept of CSE,MITS Page 7

Page 8: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

3.3 CONTEXT DIAGRAM OF PROJECT

A System Context Diagram (SCD) in software engineering is a diagram that

defines the boundary between the system, or part of a system, and its environment,

showing the entities that interact with it. This diagram is a high level view of a

system. It is similar to a block diagram.

Figure 2: Context Diagram for CPMS

Dept of CSE,MITS Page 8

Page 9: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

4. DESIGN

4.1 INTRODUCTION

In this project, we propose a web-based software system that is supposed to

replace the existing file system. To provide the desired functionalities for the new

system, we need to go for a careful design plan. Hence, design is the most crucial step

in the development of any software.

System design is a solution, a ‘how-to’ approach to the creation of a new

system. It translates system requirements into ways by which they can be made

operational. It provides the understanding and procedural details necessary for

implementation of the actual system. Here we use various diagrams to describe the

working of the new system. The system thus made should be reliable, durable and

above all should have least possible maintenance cost. It should overcome all the

drawbacks of the old existing system and meet the user’s requirements.

4.2 UML DIAGRAMS

Unified Modeling Language (UML) is a standardized general-purpose

modeling language in the field of software engineering. The UML includes a set of

graphic notation techniques to create visual models of object-oriented software-

intensive systems.

.

The UML represents a collection of best engineering practices that have

proven successful in the modeling of large and complex systems.

The UML is a very important part of developing objects oriented software

and the software development process. The UML uses mostly graphical notations to

express the design of software projects.

GOALS:

The Primary goals in the design of the UML are as follows:

1. Provide users a ready-to-use, expressive visual modeling Language so that

they can develop and exchange meaningful models.

Dept of CSE,MITS Page 9

Page 10: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

2. Provide extendibility and specialization mechanisms to extend the core

concepts.

3. Be independent of particular programming languages and development

process.

4. Provide a formal basis for understanding the modeling language.

5. Encourage the growth of OO tools market.

6. Support higher level development concepts such as collaborations,

frameworks, patterns and components.

7. Integrate best practices.

4.2.1.Class Diagram

cc component

get()set()iset()

c base controller

create widget()begin clip()opname()

studentst_namest_num

action get name()action report()

adminad_namead_id

update()delete()

project guidepg_ namepg_ branch

view()modify()

c controller

consrtuct()init()filter()actions()

Figure 3: Class Diagram for CPMS

Dept of CSE,MITS Page 10

Page 11: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

4.2.2 Use-Case Diagram

UML stands for Unified Modeling Language. UML is a standardized general-

purpose modeling language in the field of object-oriented software engineering. The

standard is managed, and was created by, the Object Management Group.

The goal is for UML to become a common language for creating models of

object oriented computer software. In its current form UML is comprised of two

major components: a Meta-model and a notation. In the future, some form of method

or process may also be added to; or associated with, UML.

update

view

login/logout

project details

modify

suggestions

project guide

admin

login

register

view

user

Figure 4: Use-case diagram for CPMS

Dept of CSE,MITS Page 11

Page 12: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

4.2.3 Activity Diagram

Activity diagrams are graphical representations of workflows of stepwise

activities and actions. They are intended to model both computational and

organisational processes (i.e. workflows). Activity diagrams show the overall flow of

control. These diagrams are constructed from a limited number of shapes, connected

with arrows. The most important shape types:

rounded rectangles represent actions;

diamonds represent decisions;

bars represent the start (split) or end (join) of concurrent activities;

a black circle represents the start (initial state) of the workflow;

an encircled black circle represents the end (final state).

Dept of CSE,MITS Page 12

Page 13: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

Activity diagram of admin

user

register

profie

dataupload

datadownload

logout

Figure 5: Activity Diagram of admin

4.2.4 Sequence Diagram

A sequence diagram is a kind of interaction diagram that shows how processes

operate with one another and in what order. It shows object interactions arranged in

time sequence. It depicts the objects and classes involved in the scenario and the

sequence of messages exchanged between the objects needed to carry out the

functionality of the scenario.

A sequence diagram shows, as parallel vertical lines (lifelines), different

processes or objects that live simultaneously, and, as horizontal arrows, the messages

Dept of CSE,MITS Page 13

Page 14: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

exchanged between them, in the order in which they occur. This allows the

specification of simple runtime scenarios in a graphical manner.

student admin project guide

register

view deatails

provide user name

upload project

view modifications

provide suggestions

Figure 6: Sequence Diagram for CPMS

4.3 MODULE DESIGN AND ORGANIZATION

4.3.1 The Admin module

This module of CPMS allows a user to monitor all details of the system. It also

gives the user a privilege of creating and deleting new users. Hence, admin is the

person who has access to the entire system, can monitor all activities of other users

and is the key user of the system.

Dept of CSE,MITS Page 14

Page 15: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

4.3.2 The User module

With the help of this module an authorized user can create, delete, update and

retrieve information related to various aspects of the system.

4.3.3 The Report Generation module

This module in the project management system generates various reports

dynamically from the data stored in it. It facilitates the administrative staff to take

timely decisions related to the college in future.

4.3.4 The Project status module

This module in the project management system generates receipt dynamically

for the all project payments made by a student. This receipt is generated as soon as a

project collection is added to the database. At the bottom of the receipt, when the

‘print’ option is clicked, two copies of the receipt are rendered- one, the office copy,

and the other, the student copy. This particular module in the system converts the

manual activity of writing a receipt into an automated one. Thus, time can be saved to

a great extent during project collection process, and more project collections can be

made on a single day.

4.4 CONCLUSION

There is a need for the division of system into modules, as this increases the

efficiency of the system design greatly. Each module can be carefully designed and

implemented according to the customer’s needs.

After the system has been designed properly, it is now time for its actual

implementation. This stage involves writing the code, and verifying the results

obtained.

Dept of CSE,MITS Page 15

Page 16: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

5. IMPLEMENTATION AND RESULTS

5.1 INTRODUCTION

5.1.1 PHP

PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open

source general-purpose scripting language that is especially suited for web

development and can be embedded into HTML.

Example 1: An introductory example

<html>

<head>

<title>Example</title>

</head>

<body>

<? php

echo "Hi, I'm a PHP script!";

?>

</body>

</html>

There are three main areas where PHP scripts are used.

Server-side scripting. This is the most traditional and the main target field for PHP.

You need three things to make this work- the PHP parser (CGI or server module),

a web server and a web browser. You need to run the web server, with a connected

PHP installation. You can access the PHP program output with a web browser,

viewing the PHP page through the server. All these can run on your home machine

if you are just experimenting with PHP programming.

Command line scripting. You can make a PHP script to run it without any server or

browser. You only need the PHP parser to use it this way. This type of usage is

ideal for scripts regularly executed using Cron (on *nix or Linux) or Task

Dept of CSE,MITS Page 16

Page 17: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

Scheduler (on Windows). These scripts can also be used for simple text processing

task.

Writing desktop applications. PHP is probably not the very best language to

create a desktop application with a GUI, but if you know PHP very well, and

would like to use some advanced PHP features in your client-side applications, you

can also use PHP-GTK to write such programs. You also have the ability to write

cross-platform applications this way. PHP-GTK is an extension to PHP, not

available in the main distribution.

PHP can be used on all major operating systems, including Linux, many

UNIX variants (including HP-UX, Solaris and Open BSD), Microsoft Windows, Mac

OS X, RISC OS, and probably others. PHP also has support for most of the web

servers today. This includes Apache, IIS, and many others. PHP works as either a

module, or as a CGI processor.

So with PHP, you have the freedom of choosing an operating system and a

web server. Furthermore, you also have the choice of using procedural programming

(POP) or object-oriented programming (OOP), or a mixture of them both.

5.1.2 MySQL Database Server

A database is a structured collection of data. It may be anything from a simple

shopping list to a picture gallery or the vast amounts of information in a corporate

network. To add, access, and process data stored in a computer database, you need a

database management system such as MySQL Server. Since computers are very good

at handling large amounts of data, database management systems play a central role in

computing, either as standalone utilities, or as parts of other applications.

MySQL Server is the world's most widely-used relational database management

system (RDBMS) that runs as a server providing multi-user access to a number of databases.

MySQL is a popular choice of database for use in most web applications, and is a central

component of the widely used AMP (Apache web server, MySQL database, PHP/Perl) open-

source web application software stack.

Dept of CSE,MITS Page 17

Page 18: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

5.1.3 HTML5

HTML stands for Hypertext Markup Language, and it is the most widely-used

language to write layout information for web pages. As its name suggests, HTML is a

markup language.

Hypertext refers to the way in which web pages are linked together. When

you click a link in a web page, you are using hypertext.

Markup language describes how HTML works. With a markup language, you

simply "mark up" a text document with tags that tell a web browser how to

structure it to display.

Originally, HTML was developed with the intent of defining the structure of

documents like headings, paragraphs, lists, and so forth, to facilitate the sharing of

scientific information between researchers.

All you need to do to use HTML is to learn what type of markup to use to get the

results you want.

Creating HTML Document

Open Notepad or another text editor (like EditPlus, Notepad++ etc.).

At the top of the page type <html>.

On the next line, indent five spaces and now add the opening header tag:

<head>.

On the next line, indent ten spaces and type <title></title>.

Go to the next line, indent five spaces from the margin and insert the closing

header tag: </head>.

Five spaces in from the margin on the next line, type<body>.

Now drop down another line and type the closing tag right below its mate:

</body>.

Finally, go to the next line and type </html>.

In the File menu, choose Save As. In the Save as Type option box, choose All

Files.

Name the file template.htm or template.html.

Click Save.

Dept of CSE,MITS Page 18

Page 19: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

<html>

<head>

<title>This is the document

title

</title>

</head>

<body>

<h1>This is a heading</h1>

<p>Document description goes

here.....

</p>

</body>

</html>

HTML Document Structure

An HTML document starts and ends with <html> and </html> tags. These tags

tell the browser that the entire document is composed in HTML. Inside these two tags,

the document is split into two sections:

The <head>...</head> elements, which contain information about the

document such as title of the document, author of the document etc.

Information inside this tag does not display outside.

The <body>...</body> elements, which contain the real content of the

document that you see on your screen.

HTML5 is the fifth revision of the HTML standard and is now a candidate

recommendation of the World Wide Web Consortium (W3C). Its core aims have been

to improve the language with support for the latest multimedia, while keeping it easily

readable by humans and consistently understood by computers and devices (web

browsers, parsers, etc.). When making use of HTML5, there is no need for validating

the client data using JavaScript. This is automatically done by the HTML5 parser.

Dept of CSE,MITS Page 19

Page 20: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

5.1.4 Model-View-Controller (MVC)

Yii framework implements the model-view-controller (MVC) design pattern,

which is widely adopted in Web programming. MVC aims to separate business logic

from user interface considerations, so that developers can easily change each part

without affecting the other.

In MVC, the model represents the information and the business rules; the view

contains elements of the user interface such as text, form inputs; and the controller

manages the communication between the model and the view. Besides implementing

the MVC, Yii also introduces a front-controller called Application, which

encapsulates the execution context for the processing of a request. Application

collects some information about a user request and then dispatches it to an appropriate

controller for further handling. The following diagram shows the static structure of a

Yii application:

Figure 7: Static structure of a Yii application

The following figure shows the typical work of a Yii application when handling a

request:

Figure 8: Typical workflow of a Yii application

Dept of CSE,MITS Page 20

Page 21: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

1. A user makes a request with the URL http://www.example.com/index.php?r=post/

show&id=1 and the Web server handles the request by executing the bootstrap script

index.php.

2. The bootstrap script creates an Application instance and runs it.

3. The Application obtains detailed user request information from an application

component named request.

4. The application determines the requested controller and action with the help of an

application component named urlManager. For this example, the controller is

Post, which refers to the Post Controller class; and the action is ‘show’, whose actual

meaning is determined by the controller.

5. The application creates an instance of the requested controller to further handle the

user request. The controller determines that the action show refers to a method.

6. The action reads a Post model whose ID is 1 from the database.

7. The action renders a view named show with the Post model.

8. The view reads and displays the attributes of the Post model.

9. The view executes some widgets.

10. The view rendering result is embedded in a layout.

11. The action completes the view rendering and displays the result to the user.

Model

A model is an instance of CModel or a class that extends CModel. Models are

used to keep data and their relevant business rules.

A model represents a single data object. It could be a row in a database table

or a HTML form with user input fields. Each field of the data object is represented by

an attribute of the model. The attribute has a label and can be validated against a set of

rules. Yii implements two kinds of models: form models and active records. They

both extend from the same base class, CModel.

Views

A view is a PHP script consisting mainly of user interface elements. It can

contain PHP statements, but it is recommended that these statements should not alter

the data models and should remain relatively simple. In the spirit of separating logic

and presentation, large chunks of logic should be placed in controllers or models

rather than in views.

Dept of CSE,MITS Page 21

Page 22: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

A view has a name which is used to identify the view script file when

rendering. The name of a view is the same as the name of its view script. For

example, the view name edit refers to a view script named edit.php. To render a view,

call CController::render()with the name of the view. The method will look for the

corresponding view file under the directory protected/views/ControllerID. Inside the

view script, we can access the controller instance using $this. We can thus pull in any

property of the controller by evaluating $this->property Name in the view.

We can also use the following push approach to pass data to the view:

$this->render('edit',array('var1'=>$value1,

'var2'=>$value2));

Controller

A controller is an instance of CController or of a class that extends

CController. It is created by the application object when the user requests it. When a

controller runs, it performs the requested action, which usually brings in the needed

models and renders an appropriate view. An action, in its simplest form, is just a

controller class method whose name starts with action. The controller has a default

action. When the user request does not specify which action to execute, the default

action will be executed. By default, the default action is named as index. It can be

changed by setting the public instance variable, CController::default Action. The

following code calls a site controller, an index action (the default action), and a

contact action:

class SiteController extends CController

public function actionIndex()

/ ...

public function actionContact()

// ...

5.2 EXPLANATION OF KEY FUNCTIONS

Some of the key functions used in the project are explained below. They form

the most important part of the code.

Dept of CSE,MITS Page 22

Page 23: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

5.2.1 Customizing rules() method

We have to specify validation rules which ensure that the attribute values

entered by the user are correct before they are saved to the database.

public function rules()

{

return array(

array('admission_no, roll_no, stud_name, fname,

batch_start, course_id, branch_id, stud_cat,

reimb_appl, caste_cat', 'length', 'max'=>40),

array('admission_no, roll_no, stud_name, fname,

batch_start, course_id, branch_id, stud_cat,

reimb_appl, caste_cat','required'),

array('created_on,updated_on','default','value'

=>new CDbExpression('NOW()'), 'setOnEmpty'=>false,

'on'=>'insert'),

array('created_by,updated_by','default','value'

=>Yii::app()->user->name, 'setOnEmpty'=>false,

'on'=>'insert'),

array('updated_by', 'default',

'value'=>Yii::app()->user->name,

'setOnEmpty'=>false, 'on'=>'update'),

array('updated_on', 'default' ,'value'=>new

CDbExpression('NOW()'),

'setOnEmpty'=>false, 'on'=>'update'),

array('ip_addr','default','value'=>Yii::app()-

>request->getUserHostAddress(), 'setOnEmpty'=>false,

'on'=>'insert'),

);

}

Based on the requirement analysis, we modify the rules() method as shown

above. In the above, we specify that the username and password attributes are

required to be entered by the user and the length of each one of them should not

exceed 40 characters. The default values for the other attributes- ‘created_on’,

Dept of CSE,MITS Page 23

Page 24: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

‘created_by’, ‘updated_on’, ‘updated_by’ & ‘ip_addr’ are also specified. These

attributes are used for the purpose of maintaining activity logs, which are useful for

security purposes. The values for these attributes are stored in the database

automatically by the system itself.

The rules declared in the rules() method are executed one-by-one when we call

the validate() or save() method of the model instance.

5.2.2 Customizing relations() Method

Next, we customize the relations() method to specify the related objects of a

post. By declaring these related objects in relations() function, we can make use of the

powerful Relational Active Record (RAR) feature to access the related object

information of a post, such as its author and comments, without the need to write

complex SQL JOIN statements. We customize the relations() method as follows:

public function relations()

{

return array('course'=>array(

self::BELONGS_TO,'Course','course_id'),

'branch'=>array(

self::BELONGS_TO,'Branch','branch_id'),

);

}

The relations declared above state that ‘course_id’ & ‘branch_id’ attributes

present in the ‘Student_master’ table belong to classes ‘Course’ and ‘Branch’

respectively. A relationship is established between the tables (models)

‘Student_master’ and ‘Course’, ‘Student_master’ and ‘Branch’.

5.2.3 accessRules()

The detailed authorization rules to perform various actions are specified by

overriding the accessRules() function in the Controller class.

public function accessRules() {

return array(

array('allow',

'actions'=>array('create','update','delete'),

'users'=>array("@")),

Dept of CSE,MITS Page 24

Page 25: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

array('deny',

'actions'=>array('create','update','delete'),

'users'=>array("?"),),

array('allow', 'actions'=>array('display'),

'users'=>array("@")),

array('deny', 'actions'=>array('display'),

'users'=>array("?")),

);

}

The above code specifies four rules, each represented as an array. The first

element of the array is either 'allow' or 'deny' and the second element specifies the

actions for which access rules have to be applied. The third parameter specifies what

types of users have access to perform these actions. The first rule defined above is

interpreted as follows- the ‘create’ ‘update’ and ‘delete’ actions can be performed by

all authenticated users. The second rule specifies that the ‘create’, ‘update’ and

‘delete’ actions cannot be performed by anonymous users. In Yii, three special

characters can be used for defining user types:

* : any user, including both anonymous and authenticated users

? : anonymous users

@ : authenticated users

The access rules are evaluated one-by-one in the order they are specified. The

first rule that matches the current pattern (e.g. username, roles, client IP, address)

determines the authorization result. If this rule is an allow rule, the action can be

executed; if it is a deny rule, the action cannot be executed; if none of the rules match

the context, the action can still be executed.

5.2.4 actionCreate()

The actionCreate() function is used to create new values for a particular table.

To illustrate how this works, let's understand the following code-

public function actionCreate() {

$model = new Student_master;

if(isset($_POST['Student_master'])) {

$model-

>attributes=$_POST['Student_master'];

Dept of CSE,MITS Page 25

Page 26: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

if($model->save()) {

$this-

>render("student_masterform",array("model"=>$model))

;

}

else {

print_r($model->errors);

}

} else {

$this-

>render("student_masterform",array("model"=>$model))

;

}

}

In the first line, we have first created an instance, $model, of the

Student_master model class. Then, we use the PHP pre-defined variable $_POST to

collect attributes from the form ‘student_master’. We check if the newly created

values are saved in the model or not. If saved, the same form is being displayed for

the addition of new students. If not, errors are displayed.

5.2.5 actionIndex()

A console command ‘action’ is a method in a console Command class. The

method name must be of the format actionXyz, where Xyz refers to the name of the

action with the first letter in upper-case. For example, a method actionIndex defines

an action named ‘index’. To execute a specific action, we use the following console

command format:

yiic<command-name><action-name>--option1=value--

option2=value2 ...

The additional option-value pairs will be passed as named parameters to the

action method. The value of a xyz option will be passed as the $xyz parameter of the

action method. For example, if we define the following command class:

class SitemapCommand extends CConsoleCommand {

public function actionIndex($type, $limit=5) ..

public function actionInit()}

Dept of CSE,MITS Page 26

Page 27: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

Then, the following console commands will all result in calling actionIndex('News',

5):

yiic sitemap index --type=News --limit=5

// $limit takes default value

yiic sitemap index --type=News

// $limit takes default value

// because &#039;index&#039; is a default action, we

can omit the action name

yiic sitemap --type=News

// the order of options does not matter

yiic sitemap index --limit=5 --type=News

If an option is given without value (e.g. --type instead of --type=News), the

corresponding action parameter value will be assumed to be boolean true.

5.2.6 loadModel()

In Yii, the view operation is implemented by the actionView() method in the

PostController. Its display is generated by the view with the view

file /wwwroot/blog/protected/views/post/view.php.

In the loadModel() method, we query the Post table according to the id GET

parameter. If the model is not found or if it is not published, we will throw a 404

HTTP error saying that the required page does not exist. Otherwise, the object is

returned to actionView() which in turn passes the post object to the viewScript for

further display.

public function loadModel($id) {

$model=Student_master::model()->findByPk($id);

if($model===null)

throw new CHttpExeception(404,"The

required page does’nt exist");

return $model; }

5.3 METHOD OF IMPLEMENTATION

Dept of CSE,MITS Page 27

Page 28: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

We first have to install the required software for the project. This includes

XAMPP (X-any OS, A-Apache, M-MySQL, P-PHP, P-Perl). XAMPP is a software

package that comes with a database server- MySQL, a web server- Apache, and

intermediate languages PHP and Perl. After installation, we need to follow the

instructions specified to deploy these applications in order to make them ready-to-use.

For this project, the first step of implementation is to design the database

tables. Then, the next step is to write a model, a view and a controller for each (or

most) of these tables in the database. The necessary constraints required must be

specified separately for each of these.

5.3.1 Forms

A form is used to collect user-given input. It is a front-end user interface

element. The following are some of the forms used in the project.

5.3.1.1 Login Form

Below, we create a LoginForm model class used to collect user input on a

login page. Because the login information is only used to authenticate the user and

does not need to be saved, we create LoginForm as a form model.

<style type="text/css">

body,td,th {

font-family: Verdana, Geneva, sans-serif;

color: #000;

font-weight: bold;

}

body {

background-color: #FFC;

}

</style>

Dept of CSE,MITS Page 28

Page 29: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

<?php

include("connect.php");

include("functions.php");

echo '<title>Login</title></head><body>';

if ($_SERVER['REQUEST_METHOD'] == 'POST')

{

$name = clean($_POST['username']);

$pass = clean($_POST['password']);

$ip = $_SERVER['REMOTE_ADDR'];

if (empty($name))

err('name');

if(empty($pass))

err('password');

$pass = $pass;

//$pass = md5($pass);

$link = "SELECT * FROM users WHERE name='$name' AND

password='$pass'";

$res = mysql_query($link) or die(mysql_error());

Dept of CSE,MITS Page 29

Page 30: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

$total = mysql_num_rows($res);

if($total == 0)

die("<br />username/password could not be verfied

please try again.");

else

{

$row = mysql_fetch_assoc($res);

$id = $row['id'];

$ip = $_SERVER['REMOTE_ADDR'];

$_SESSION['admin'] = $row['admin'];

$_SESSION['user'] = $name;

$link = "UPDATE users

SET`date`=NOW(),`ip`='$ip' WHERE id='$id'";

$res = mysql_query($link) or

die(mysql_error());

die("<p class='heading'>succesfully logged

in</p><p>choose a menu item from above</p>");

}

}

else

{

Dept of CSE,MITS Page 30

Page 31: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

echo '<br />

<form action="table1.php" method="POST">

<table align="center">

<tr><td colspan="5" align="center"

class="heading">login</td></tr>

<tr><td>Username</td><td><input type="text"

name="username"></td></tr>

<tr><td>Password</td><td><input type="text"

name="password"></td></tr>

<tr><td colspan="2"><input type="submit" align="center"

value="login"></td></tr></form>

</table >';

}

?>

5.3.1.2 Add students form

<div class="form" >

<?php

$form=$this-

>beginWidget( 'bootstrap.widgets.TbActiveForm',

array(

'id'=>'student_master-form',

'enableAjaxValidation'=>false,

'enableClientValidation'=>true,

'type'=>'horizontal',

Dept of CSE,MITS Page 31

Page 32: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

'htmlOptions'=>array('class'=>'well'),

'clientOptions'=>array(

'validateOnSubmit'=>true,

)

));

?>

<h1 style="color:maroon;font-family:calibri">Add

Students</h1><br/>

<p class="note">Fields with <span

class="required">*</span> are required.</p>

<div class="error">

<?php echo $form->errorSummary($model); ?>

</div>

<?php echo $form-

>textFieldRow($model,'admission_no'); ?>

<?php echo $form->textFieldRow($model,'roll_no'); ?>

<?php echo $form-

>textFieldRow($model,'stud_name'); ?>

<?php echo $form->textFieldRow($model,'fname'); ?>

<?php echo $form-

>textFieldRow($model,'batch_start'); ?>

<div class="control-group">

<?php echo $form->labelEx($model,'course_id',array(

'class'=>'control-label')); ?>

<?php echo $form->hiddenField($model,'course_id'); ?

>

<?php $this-

>widget( 'zii.widgets.jui.CJuiAutoComplete',array(

'name'=>'course_id',

'source'=>'?r=course/getCourses',

'options'=>array(

'minLength'=>'2',

'select'=>'js:function(event, ui) {

Dept of CSE,MITS Page 32

Page 33: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

$

("#'.CHtml::activeId($model,'course_id').'").val(ui.item.

course_id);

}'

),

'htmlOptions'=>array(

'id'=>'course_id',

'placeholder'=>'Search by part of course

name',

),

));

?>

</div>

<div class="control-group">

<?php echo $form-

>labelEx($model,'branch_id',array('class'

=>'control-label')); ?>

<?php echo $form->hiddenField($model,'branch_id'); ?

>

<?php

$this-

>widget('zii.widgets.jui.CJuiAutoComplete', array(

'name'=>'branch_id',

'source'=>'?r=branch/getBranches'

'options'=>array(

'minLength'=>'2',//min chars to start

search

'select'=>'js:function(event, ui) {

$

("#'.CHtml::activeId($model,'branch_id').'").val(ui.item.

branch_id);

}'),

'htmlOptions'=>array(

'id'=>'branch_id',

Dept of CSE,MITS Page 33

Page 34: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

'placeholder'=>'Search by part of

branch name',

),

));

?>

</div>

<?php echo $form->dropDownListRow($model,'stud_cat',

array('select'=>'Select an option', 'A'=>'Convenor(A)',

'B'=>'Management(B)')); ?>

<?php echo $form-

>dropDownListRow($model,'reimb_appl',

array('select'=>'Select an

option','Y'=>'Yes','N'=>'No')); ?>

<?php echo $form-

>dropDownListRow($model,'caste_cat',

array('select'=>'Select an option','OC'=>'OC', 'BC-

A'=>'BC-A', 'BC-B'=>'BC-B', 'BC-C'=>'BC-C','BC-D'=>'BC-

D','BC-E'=>'BC-E','SC'=>'SC','ST'=>'ST')); ?>

<div class="form-actions">

<?php $this->widget('bootstrap.widgets.TbButton',

array(

'buttonType'=>'submit',

'type'=>'success',

'label'=>($model->isNewRecord ? 'Create' :

'Save'),

)); ?>

</div>

<?php $this->endWidget(); ?></div>

5.3.1.3 Registration form

<div class="form" >

Dept of CSE,MITS Page 34

Page 35: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

<?php $form=$this-

>beginWidget( 'bootstrap.widgets.TbActiveForm',array(

'id'=>'users-form',

'enableAjaxValidation'=>false,

'enableClientValidation'=>true,

'type'=>'horizontal',

'htmlOptions'=>array('class'=>'well'),

'clientOptions'=>array(

'validateOnSubmit'=>true,

))); ?>

<h1 style="color:maroon;font-family:calibri">Create

Users</h1><br/>

<p class="note">Fields with <span

class="required">*</span> are required.</p>

<div class="error">

<?php echo $form->errorSummary($model); ?>

</div>

<?php echo $form->textFieldRow($model, 'username',

array('size'=>15, 'maxlength'=>15)); ?>

<?php echo $form->passwordFieldRow($model, 'password',

array('size'=>15, 'maxlength'=>15)); ?>

<div class="form-actions">

<?php $this->widget('bootstrap.widgets.TbButton',

array(

'buttonType'=>'submit',

'type'=>'success',

'label'=>($model->isNewRecord ? 'Create' :

'Save'),

)); ?>

</div> <?php $this->endWidget(); ?> </div>

5.3.1.4 Edit Projects

<style type="text/css">

Dept of CSE,MITS Page 35

Page 36: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

body,td,th {

font-family: Verdana, Geneva, sans-serif;

color: #900;

font-weight: bold;

}

body {

background-color: #FF9;

}

</style>

<?php

include("connect.php");

include("functions.php");

echo '<title>Edit Project</title></head><body>';

if (isset($_GET['id']) && $_SERVER['REQUEST_METHOD'] !=

'POST')

{

$id = clean($_GET['id']);

if (empty($id) || !is_numeric($id))

die("Please only follow the links on the page.");

$link = "SELECT * FROM projects WHERE id='$id'";

$res = mysql_query($link) or die(mysql_error());

$total = mysql_num_rows($res);

Dept of CSE,MITS Page 36

Page 37: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

$row = mysql_fetch_assoc($res);

$priv = $row['private'];

//print_r(array_values($row)); die;

//ho $_SESSOIN['admin'];

if ($priv == 1 && $_SESSION['admin'] != 1)

die("An admin has marked this project un-

editable.");

if ($total == 0)

die("<p>No project exists with this id.</p>");

echo '<br />

<form action="" method="POST">'

. $tablehead . '

<tr>

<td colspan="2" class="heading">

edit project

</td>

</tr>

<tr>

<td>name</td>

<td><input type="text" name="name" value="' .

$row['name'] . '">

</td>

</tr>

Dept of CSE,MITS Page 37

Page 38: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

<tr>

<td>date</td>

<td><input type="text" name="date" value="' .

$row['date'] . '">

</td>

</tr>

<tr>

<td valign="top">description</td>

<td><textarea name="des" rows="10" cols="40">' .

$row['des'] . '</textarea>' . '

</td>

</tr>

<tr>

<td>category</td>

<td><select name="cat">';

$link1 = "SELECT * FROM category";

$res1 = mysql_query($link1);

$cur = $row['cat'];

$x = 0;

while ($row1 = mysql_fetch_row($res1))

{

$cat = $row1[0];

if ($cat == $cur && $x != 1)

{

echo '<option value="' . $cat . '" selected>' .

$cat;

$x = 1;

Dept of CSE,MITS Page 38

Page 39: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

}

else

echo '<option value="' . $cat . '">' . $cat;

}

echo '</select></td></tr>

<tr><td>status</td>

<td><select name="status">';

$link2 = "SELECT * FROM status";

$res2 = mysql_query($link2);

$stat = $row['status'];

$x = 0;

while ($row2 = mysql_fetch_row($res2))

{

$status = $row2[0];

if ($stat == $status && $x != 1)

{

echo '<option value="' . $status . '"

selected>' . $status;

$x = 1;

}

else

echo '<option value="' . $status . '">' .

$status;

}

echo '</select><br />

<tr><td>sort</td>

Dept of CSE,MITS Page 39

Page 40: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

<td><input type="text" name="sort" value="' .

$row['sort'] . '"></td></tr>

<tr><td>private</td>';

if ($priv == 1)

echo '<td><input type="checkbox" name="private"

checked></td></tr>';

else

echo '<td><input type="checkbox"

name="private"></td></tr>';

echo '

<tr><td>last changed</td>

<td>' . $row['last_changed'] . '</td></tr>

<tr><td>last user</td>

<td>' . $row['last_user'] . '</td></tr>

<tr>

<td>Delete</td>

<td><input type="checkbox" name="delete"></td>

</tr>

<tr>

<td colspan="2">

<input type="hidden" name="id" value="' . $id . '">

<input type="submit" value="Update"></td></tr>

<input type="Submit"

value="Upload"></td></tr></form></table>';

}

elseif ($_SERVER['REQUEST_METHOD'] == 'POST')

Dept of CSE,MITS Page 40

Page 41: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

{

$id = clean($_POST['id']);

$status = clean($_POST['status']);

$name = clean($_POST['name']);

$date = $_POST['date'];

$des = clean($_POST['des']);

$cat = clean($_POST['cat']);

@$delete = $_POST['delete'];

$sort = clean($_POST['sort']);

@$priv = clean($_POST['private']);

$time = date("h:i:s A");

$d = date("n/j/Y");

$change = $d . " " . $time;

$n = $_SESSION['user'];

$need = array($status,$name,$date,$des,$cat,$sort);

foreach ($need as $val)

{

if (empty($val))

die("You did not fill out all required

fields.");

}

if (!is_numeric($sort))

die("The sort value must be a whole number.");

Dept of CSE,MITS Page 41

Page 42: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

if ($priv == 'on')

$priv = 1;

else

$priv = 0;

//echo "priv is " . $priv; die;

$set =

"name='$name',`date`='$date',des='$des',cat='$cat',sort='

$sort',last_changed='$change',private='$priv',last_user='

$n',status='$status'";

$link = "SELECT * FROM projects WHERE id='$id'";

$res = mysql_query($link) or die(mysql_error());

$total = mysql_num_rows($res);

if ($total == 0)

die("No Projects exist by this id.");

if ($delete == 'on')

{

admin();

$link = "DELETE FROM projects WHERE id='$id'";

$res = mysql_query($link) or

die(mysql_error());

if ($res)

Dept of CSE,MITS Page 42

Page 43: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

die('<br /><br />Project Succesfully

Deleted.<br />Click <a href="index.php">here</a> to go

back.');

}

$link = "UPDATE projects SET $set WHERE id='$id'";

$res = mysql_query($link) or die(mysql_error());

if ($res)

die('<p>succesfully updated.<br />click <a

href="projects.php">here</a> to continue.</p>');

}

else

die('You should not be seeing this.<br />Click <a

href="index.php">here</a> to go back.');

?>

5.3.2 Output Screens

5.3.2.1 Login Page

Dept of CSE,MITS Page 43

Page 44: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

5.3.2.2 Add Students Page

Dept of CSE,MITS Page 44

Page 45: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

5.3.2.3 Add Project Collections Page

Dept of CSE,MITS Page 45

Page 46: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

5.3.2.4 Status

Dept of CSE,MITS Page 46

Page 47: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

Dept of CSE,MITS Page 47

Page 48: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

5.3.2.5 Category

Dept of CSE,MITS Page 48

Page 49: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

5.3.2.6 References

Dept of CSE,MITS Page 49

Page 50: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

6. TESTING AND VALIDATION

The purpose of testing is to discover errors. Testing is the process of trying to

discover every conceivable fault or weakness in a work product. It provides a way to

check the functionality of components, sub assemblies, assemblies and/or a finished

product It is the process of exercising software with the intent of ensuring that the

Software system meets its requirements and user expectations and does not fail in an

unacceptable manner. There are various types of test. Each test type addresses a

specific testing requirement.

TYPES OF TESTS

Unit testing

Unit testing involves the design of test cases that validate that the internal

program logic is functioning properly, and that program inputs produce valid outputs.

All decision branches and internal code flow should be validated. It is the testing of

individual software units of the application .it is done after the completion of an

individual unit before integration. This is a structural testing, that relies on knowledge

of its construction and is invasive. Unit tests perform basic tests at component level

and test a specific business process, application, and/or system configuration. Unit

tests ensure that each unique path of a business process performs accurately to the

documented specifications and contains clearly defined inputs and expected results.

Integration testing

Integration tests are designed to test integrated software components to

determine if they actually run as one program. Testing is event driven and is more

concerned with the basic outcome of screens or fields. Integration tests demonstrate

that although the components were individually satisfaction, as shown by successfully

unit testing, the combination of components is correct and consistent. Integration

Dept of CSE,MITS Page 50

Page 51: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

testing is specifically aimed at exposing the problems that arise from the

combination of components.

Functional test

Functional tests provide systematic demonstrations that functions tested are

available as specified by the business and technical requirements, system

documentation, and user manuals.

Functional testing is centered on the following items:

Valid Input : identified classes of valid input must be accepted.

Invalid Input : identified classes of invalid input must be rejected.

Functions : identified functions must be exercised.

Output : identified classes of application outputs must be exercised.

Systems/Procedures: interfacing systems or procedures must be invoked.

Organization and preparation of functional tests is focused on requirements, key

functions, or special test cases. In addition, systematic coverage pertaining to identify

Business process flows; data fields, predefined processes, and successive processes

must be considered for testing. Before functional testing is complete, additional tests

are identified and the effective value of current tests is determined.

System Test

System testing ensures that the entire integrated software system meets

requirements. It tests a configuration to ensure known and predictable results. An

example of system testing is the configuration oriented system integration test.

System testing is based on process descriptions and flows, emphasizing pre-driven

process links and integration points.

Dept of CSE,MITS Page 51

Page 52: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

White Box Testing

White Box Testing is a testing in which in which the software tester has

knowledge of the inner workings, structure and language of the software, or at least its

purpose. It is purpose. It is used to test areas that cannot be reached from a black box

level.

Black Box Testing

Black Box Testing is testing the software without any knowledge of the inner

workings, structure or language of the module being tested. Black box tests, as most

other kinds of tests, must be written from a definitive source document, such as

specification or requirements document, such as specification or requirements

document. It is a testing in which the software under test is treated, as a black

box .you cannot “see” into it. The test provides inputs and responds to outputs without

considering how the software works.

6.1 Unit Testing:

Unit testing is usually conducted as part of a combined code and unit test

phase of the software lifecycle, although it is not uncommon for coding and unit

testing to be conducted as two distinct phases.

Test strategy and approach

Field testing will be performed manually and functional tests will be written in

detail.

Test objectives

All field entries must work properly.

Pages must be activated from the identified link.

The entry screen, messages and responses must not be delayed.

Dept of CSE,MITS Page 52

Page 53: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

Features to be tested

Verify that the entries are of the correct format

No duplicate entries should be allowed

All links should take the user to the correct page.

6.2 DESIGN OF TEST CASES & SCENARIOS

The objective is to design tests that systematically uncover different classes of

errors and do so with a minimum amount of time and effort.

Test cases for CPMS:

Test Case ID Description Input required Expected value Test Result

CPMS_1 Enter a valid username and password in registration page.

Valid username & password.

Registration successful.

Pass

CPMS_2 Enter the correct username and matching password in login page.

Valid username & password.

Login successful. Pass

CPMS_3 Enter valid student details.

Valid student details.

Store in database. Pass

CPMS_4 Enter correct project commitments of student.

Valid project commitments.

Store in database. Pass

CPMS_5 Enter correct project collection of student.

Valid project collection.

Store details in database.

Pass

CPMS_6 Enter a correct pay date. Valid pay date. Accept and store date in database.

Pass

CPMS_7 Enter a pay date in the future.

Valid pay date. Do not accept the date.

Fail

6.2.1 Unit Testing

Unit testing is carried out screen-wise, each screen being identified as an

object. Attention has been paid to every individual module, treating it independent of

other modules, in order to locate errors. This has enabled the detection of errors in

coding and logic. This is called the first level of testing.

Dept of CSE,MITS Page 53

Page 54: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

6.2.2 Integration Testing

This testing strategy combines all the modules involved in the system. After

the independent modules are tested, dependent modules that use independent modules

are tested. This sequence of testing layers of dependent modules continues until the

entire system is constructed.

Though each module is tested individually, they should work after linking

them together. Data maybe lost across interface and one module can have adverse

effect on another. Subroutines, after linking, may not do the desired function expected

by the main routine. Hence, the entire system, after integration, has to be tested again.

Integration testing is a systematic technique for constructing program structure

while at the same time, conducting test to uncover errors associated with the interface.

6.2.3 Validation Testing

Validation testing is aims to demonstrate that the software functions in a manner that can be reasonably expected by the customer. This tests the conformance of the software to the Software Requirements Specification (SRS).

6.2.3.1 Validation Test Criteria

A set of black box tests is done to demonstrate conformance with

requirements. Its main purpose is to check that all functional requirements are

satisfied, all performance requirements are achieved, documentation is correct and

other requirements are also met (e.g. compatibility, error recovery, and

maintainability).

6.2.3.2 Configuration Review

An audit review is done to ensure that all elements of the software

configuration are properly developed and catalogued. This review helps greatly in

correcting the faults present in the system.

6.2.3.3 System Testing

Software is only one component of a system. Software will be incorporated with other system components and system integration and validation test performance.

Dept of CSE,MITS Page 54

Page 55: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

6.3 VALIDATION

0Validation aims to demonstrate that the software functions in a manner that can be reasonably expected by the customer. This tests the conformance of the software to the Software Requirements Specification.

6.4 CONCLUSION

This software ‘College Project Management System’ was designed and

developed for the college ‘Vidya Jyothi Institute of Technology’. The system has

been tested properly and ensured that it is ready to go live.

Dept of CSE,MITS Page 55

Page 56: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

7. CONCLUSION

‘College Project Management System’ is an efficient software that reduces

the work load of the college staff in managing all project-activities. It is much faster

and more efficient than the existing system, and is very user-friendly. It automates all

activities during the time of project payments and eliminates paper work to a great

extent.

In future, we can extend this project by adding other modules like admission,

transport and so on. Also, it is only a stand-alone application right now. It can be

deployed as a web application and incorporated into the website of the college.

Dept of CSE,MITS Page 56

Page 57: CPMS doc - 4

COLLEGE PROJECT MANAGEMENT SYSTEM

8. REFERENCES

1. MySQL 5.5 Reference Manual

2. PHP manual

3. www.yiiframework.com

4. HTML5 & CSS3 by Brian P. Hogan

5. The Definitive Guide to Yii 1.1 by QiangXue and Xiang Wei Zhou

6. Yii-Booster (http://yiibooster.clevertech.biz)

7. Wikipedia (en.wikipedia.org)

8. www.w3schools.com

Dept of CSE,MITS Page 57