Académique Documents
Professionnel Documents
Culture Documents
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 institutes 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 todays 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
information, and is a serious problem. The proposed system was developed to solve
this problem of redundancy.
Dept of CSE,MITS
Page 1
is user-friendly,
is simple to use,
Page 2
2. LITERATURE SURVEY
2.1 INTRODUCTION
Dept of CSE,MITS
Page 3
There is no proper validation of data, and the system gives scope for human
errors.
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
Dept of CSE,MITS
Page 4
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.
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.
net.
Simple and convenient to use.
Decreases paper work to a large extent.
Increases the productivity of the office staff greatly.
3. ANALYSIS
Dept of CSE,MITS
Page 5
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
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
Language
Servers
Supporting Tools
RAM
: 512 MB
Hard disk
: 20 GB
Page 7
4. DESIGN
Dept of CSE,MITS
Page 8
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 users requirements.
Page 9
4.2.1.Class Diagram
cc component
get()
set()
iset()
c base controller
create widget()
begin clip()
opname()
c controller
consrtuct()
init()
filter()
actions()
student
st_name
st_num
admin
ad_name
ad_id
project guide
pg_ name
pg_ branch
update()
delete()
view()
modify()
Page 10
login/logout
user
admin
login
register
view
project details
update
view
project guide
modify
suggestions
Page 11
Dept of CSE,MITS
Page 12
user
register
profie
dataupload
datadownload
logout
Page 13
student
admin
project guide
register
view deatails
upload project
view modifications
provide suggestions
Page 14
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 customers 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.
Page 15
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
Scheduler (on Windows). These scripts can also be used for simple text processing
task.
Dept of CSE,MITS
Page 16
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.3 HTML5
Dept of CSE,MITS
Page 17
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.
<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
</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
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
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
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()
// ...
Page 22
course_id,
branch_id,
stud_cat,
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,
array('updated_on',
'on'=>'update'),
'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,
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
Dept of CSE,MITS
Page 23
relationship
is
established
between
the
tables
(models)
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("@")),
array('deny',
'actions'=>array('create','update','delete'),
Dept of CSE,MITS
Page 24
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 codepublic function actionCreate() {
$model = new Student_master;
if(isset($_POST['Student_master'])) {
$model>attributes=$_POST['Student_master'];
if($model->save()) {
Dept of CSE,MITS
Page 25
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
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
Page 27
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>
<?php
Dept of CSE,MITS
Page 28
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);
Dept of CSE,MITS
Page 29
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
{
echo '<br />
Dept of CSE,MITS
Page 30
Page 31
Page 32
Page 33
?>
</div>
<?php $this->endWidget(); ?></div>
Page 34
?>
Dept of CSE,MITS
Page 35
include("functions.php");
echo '<title>Edit Project</title></head><body>';
Page 36
if ($total == 0)
die("<p>No project exists with this id.</p>");
Page 37
Page 38
Dept of CSE,MITS
Page 39
}
elseif ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$id = clean($_POST['id']);
$status = clean($_POST['status']);
$name = clean($_POST['name']);
Dept of CSE,MITS
Page 40
$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.");
if ($priv == 'on')
$priv = 1;
else
$priv = 0;
Dept of CSE,MITS
Page 41
$set =
"name='$name',`date`='$date',des='$des',cat='$cat',sort='
$sort',last_changed='$change',private='$priv',last_user='
$n',status='$status'";
if ($delete == 'on')
{
admin();
$link = "DELETE FROM projects WHERE id='$id'";
$res = mysql_query($link) or
die(mysql_error());
if ($res)
die('<br /><br />Project Succesfully
Deleted.<br />Click <a href="index.php">here</a> to go
back.');
}
Page 42
Dept of CSE,MITS
Page 43
Dept of CSE,MITS
Page 44
Dept of CSE,MITS
Page 45
Dept of CSE,MITS
Page 46
Dept of CSE,MITS
Page 47
Dept of CSE,MITS
Page 48
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.
Dept of CSE,MITS
Page 49
Functional test
Invalid Input
Functions
Output
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 50
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.
Dept of CSE,MITS
Page 51
Features to be tested
Description
Input required
Expected value
Test Result
CPMS_1
Registration
successful.
Pass
Login successful.
Pass
Valid
student
details.
Valid
project
commitments.
Valid
project
collection.
Valid pay date.
Store in database.
Pass
Store in database.
Pass
Pass
Store details in
database.
Accept and store
date in database.
Do not accept the
date.
CPMS_2
CPMS_3
CPMS_4
CPMS_5
CPMS_6
CPMS_7
Pass
Fail
Dept of CSE,MITS
Page 52
Page 53
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 54
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 55
8. REFERENCES
1.
2.
3.
4.
5.
6.
7.
8.
Dept of CSE,MITS
Page 56