Upload
madhu-giri
View
236
Download
0
Tags:
Embed Size (px)
DESCRIPTION
nothing
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 'index' 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
COLLEGE PROJECT MANAGEMENT SYSTEM
5.3.2.2 Add Students Page
Dept of CSE,MITS Page 44
COLLEGE PROJECT MANAGEMENT SYSTEM
5.3.2.3 Add Project Collections Page
Dept of CSE,MITS Page 45
COLLEGE PROJECT MANAGEMENT SYSTEM
5.3.2.4 Status
Dept of CSE,MITS Page 46
COLLEGE PROJECT MANAGEMENT SYSTEM
Dept of CSE,MITS Page 47
COLLEGE PROJECT MANAGEMENT SYSTEM
5.3.2.5 Category
Dept of CSE,MITS Page 48
COLLEGE PROJECT MANAGEMENT SYSTEM
5.3.2.6 References
Dept of CSE,MITS Page 49
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
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
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
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
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
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
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
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