Social networking and Accounted management system software

View with charts and images

Social networking and Accounted management system software

Introduction

1.1 Background and Motivation

Bangladesh has made significant progress in recent times in many of its social development indicators particularly in IT site.

Many kinds of people live in an area. A team, who maintain the area, can not know about the all people. But it is so important for the security system to gather the all information of all peoples’. So it is so important to collect the all information of all people.

On the other hand, we have a government system to collect the information of all local people in the polish station. But it is no maintained in our country. It is so easy and secured to store the all information of all people on the online in a website.

1.2 Project Overview

This project is Web based people data collection information. It contains the information of all peoples of an area.

Information like contacts and addresses of all peoples and their occupations, their permanent address their earning source and others.

A person or a team who controls an area can know the information of all people of his area. Then he can know what kind of person live in his area.

There are a account part in my system. Some person want to help the poor people of his area. Then the poor fund will be maintain by the account software.

1.3 Objectives

? The entry level users can easily entry the information of any peoples data.

? The top level users can easily visit the all information and access that information.

? The accounted part will be easily count the dropped money of any kindness peoples.

1.4 Features

? There are three user levels.

? The top user can edit, delete or entry of any information.

? The people’s information must be collect in the online.

? There is a counted part in which financial side is maintained in this side.

? a person can dropped his information by the online.

1.5 Resource Requirements

System Requirements:

? Microsoft Windows XP (service pack 2)/ Server 2003/ Linux/ Unix.

Software Requirements:

? PHP 4.x or Better Required (Front End Tool).

? My SQL 4.x or Better Required (Back End Tool).

? Apache 1.3.x or Better Recommended.

? CodeIgniter or Better Recommended.

? XAMPP 1.5.x Server for developing the project under localhost.

Hardware Requirements:

? Pentium class CPU.

? 32MB RAM.

? 50MB+ Hard Drive Space for Database / Attachments.

Analysis

2.1 Preface

Our communication system & technology is developing day by day. It is getting more interactive, more user-friendly, more manageable at the same time more secure. So, we have to adapt the new technology/system to adjust us with the global world.

2.2 System Analysis

Rapid improvement in hardware and software along with the effort of organizations to have a global reach, necessitates business systems that can respond fast and provide high performance. And this necessity and rapid changes in technologies make the task of developing software products more and more difficult. The main cause of failure of any software development projects is the lack of proper communication between the user and the developer. So before starting the development, the analysis of the current state is really necessary. In absence of proper analysis, a project will fail to satisfy its requirements.

A requirements analysis can be categorized as follows:

2.2.1 Analysis of Traditional and Modern System

2.2.2 Analysis of User Requirements

2.2.3 Analysis of System Requirements

2.2.4 Analysis System Performance

2.2.5 Analysis of the Proposed System

2.2.6 Analyzing Security Requirements

2.2.1 Analysis of Traditional and Modern Systems

To analyze the evolution of Web from its traditional to modern form we have to look at the historical development of web pages.

Conceptually, there are two aspects to a web page: Its content and the presentation of that content. Over the last decade, there has been an evolution of how these two pieces interact:

• Static web pages— The content and presentation are in the same file.

• Cascading Style Sheet web pages— Content and presentation are separated.

• Dynamic web pages— Content and presentation are separated from the web page itself.

Static Web Pages

For the last 10 years, static sites have dominated the Internet landscape, and site maintenance has been a laborious and often frustrating process. Web masters had to cope with thousands of line of HTML code across a mass of Web page files. However, employing a dynamic site required a large amount of custom coding and potential unforeseen security loopholes.

Then Comes —eXtensible Hypertext Markup Language (XHTML)—that tells your browser how to present the content of a web page. For example, the code might say, “Take this title ‘This is a web page,’ make it large, and make it bold.” The results will look something like in the figure 2.2.1.a:

Figure 2.1.1.a Results of code on a web page

This way of creating a web page is outdated, but it’s astonishing how many designers still create sites using this outdated method. It has two main drawbacks:

· All of the content shown on the page (“This is a web page”) and the presentation (big and bold) are tied together. If you want to change the color of all your titles, you have to go through all the pages in your site to do so.

· The pages have large file sizes. Because each bit of content is individually styled, the pages are big, which means it takes forever to load. Most experts agree that this also penalizes your search engine optimization efforts as large pages are harder for search engines to index.

Cascading Style Sheet Web Pages

The next step toward understanding content management is a recent (recent meaning in the last four or five years) development of web

standards, a common set of “rules” that a web browser like Internet Explorer or Firefox uses to output a web page onto your screen. One of these standards involves using Cascading Style Sheets (CSS) to control the visual presentation of your web page. CSS is a simple mechanism for adding style (for example, fonts, colors, spacing, and so on) to web documents. All of this presentation information is contained in separate files from the content.

Now the web page generated might look something like Figure 2.2.1.b:

Figure 2.2.1.b Modern web page using CSS

Now the file containing the content is much smaller because it does not contain presentation or style information. All the styling has been placed in a separate file that the browser reads and “layers” over the content to produce the final result

Using CSS to control the presentation of the content has big advantages:

· Maintaining and revising the page is much easier. If we need to change all the title colors, we can just change one line in the CSS file.

· Both files are much smaller, which allows the data to load much more quickly than without using CSS.

· The CSS file has the additional advantage that it will be cached (saved) on a viewer’s local computer so that it won’t need to be downloaded from the Web each time the viewer visits a page.

Dynamic Web Pages

Dynamic web pages are what are created by a CMS.

A CMS does for content what CSS does for presentation.

That means, CSS separated presentation from content, a CMS separates the content from the page. This might seem like that leaves nothing, but in reality what is left can be thought of as “placeholders.” This can be represented as what’s shown in Figure 2.2.1.c :

Figure 2.2.1.c Structure of a CMS web page

The “put some content here” instruction tells the CMS to take some content from a database, the “pure content,” and place it in a designated place on the page. A question may be arise here, “So what’s so useful about that trick?” It’s actually very powerful. It separates out the responsibilities of developing a website. The web designer can concern himself with the presentation/design and the “placeholders.” This means that non-technical people can be responsible for the content—the words and pictures of a website. Most CMSs have built-in tools to manage the publication of the content.

With this in mind, it’s possible to imagine a workflow for content management that involves both designers and content authors.

See Figure 2.2.1.d in the next page.

Figure 2.2.1.d The CMS manages content publication

A CMS makes the pages dynamic- They don’t really exist until you follow a link to view them. This means that they can be updated/customized based on the viewer’s interactions with the page. For example, if we place an item in a shopping cart, that item now shows up on the shopping cart page. It got stored in a database and now gets put into the “shopping cart placeholder.” Many complex web applications are in fact mini CMSs (by this definition), like forums, shopping carts, and guest books, to name a few.

Another good example of CMSs are blogs. They have a “template” that presents all the content (or posts, in this case), and blogs are easy to edit and publish. The growth in the use of CMSs for powering websites is probably due in part to the huge rise in popularity of blogging tools such as Blogger and WordPress.

A CMS totally separates the content of the pages from their graphical design. This makes it easy to keep the site-wide design coherent and easy to change. It also makes adding content easy for non-technical people.

There is one large drawback to using a CMS. They can be extremely complex, containing thousands of files and scripts that work together in concert with databases to present a website. Normally, this means that a CMS site will be designed and created by technical staff and managed and run by non-technical users.

2.2.2 Analysis of User Requirements

A user is the person who participates in the business (profit/non-profit) activities and interacts with the application. To develop a product it is required to understand the user requirements. In our proposed system users are able to use easily.

2.2.3 Analysis of System Requirements

While planning a new system, it is required to ensure that the system meets the requirements of business (profit/non-profit) and the users. It also needs to ensure that the new system will be compatible with the existing system. There are various issues involved in analyzing system requirements. These are:

Hardware Requirement

While implementing the new system, it is required to ensure that it can be implemented without affecting the existing hardware and system performance adversely.

Software Requirement

The software requirements including the operating system and protocols also need to be considered while implementing a new system.

Functional Requirement

Apart from the hardware and software requirements, it is also necessary to ensure that the system conforms to all the requirements in terms of business (profit/non-profit) rules and security.

2.2.4 Analysis of System Performance

The application to be developed is required to provide high performance in terms of the number of transactions processed. This is to enable a large number of users to use the web site at the same time. If the response time of the application increases with the increase in the number of users, it may result in a user waiting for a long time and checking out other options. This may lead to loss of clientele. The followings are the performance requirements of the system to be developed,

• The response time should be minimizing.

• The bandwidth of the system should support the number of transaction per time slice.

• The system should be stable and should not fall under increased workload.

2.2.5 Analysis of the Proposed System

The proposed Health Care Information System is to be developed as a web site using content management system. That will help people to get all types of health care information. At the same time, people can consult with our 24 hours online doctor for free of charge. This health service will provide people-news, tips & advice on health care at any time and from any place in an efficient and comparatively faster way. Our Health Care Information System contains the contacts, addresses of specialized doctors, hospitals/clinics, pathology/diagnostic centres, blood & eye banks, fitness centres & all sorts of health tips like first aid, fitness, diet/nutrition, diseases/cures & online advice from doctor. There are options to get registered (free) with us as member, to get the benefit of online doctor & daily health tips feedback through email. Member/guest has the opportunity to search specific topic on health in our site that she/he is looking for. Daily updated health tips are included for making conscious the member/guest about daily health care.

2.2.6 Analyzing Security Requirements

The security of the system and data is of primary concern. The two types of security policies that were considered are optimistic security policy and pessimistic security policy. The former one gives protection to only those resources, which have sensitive data and the latter one aims at protection of all resources allowing restricted access to users.

As we are going to build up web site within a framework which uses pessimistic security policy, we need not to worry about the security.

2.3 Feasibility Study

A feasibility study is an assessment of a proposed information system to determine whether the system effectively meets the specified requirements of the organization and whether a business case exist for developing such a system. It means the possibility , the scope of the project , with the help of feasibility study we can:

• Clarify the objective of a proposed system development project.

• Provide a better understanding of a business problem.

• Assess and recommend what course of action should be taken for its solution.

We can divide feasibility study into following parts :

• Technical feasibility

• Operational feasibility

• Financial feasibility

Technical feasibility

The present manual system contains no automated features. Therefore developing a computer system these things are very much necessary

· A network of computers or an online connection is must for this system.

· Reports for generating the results and other necessary information.

· High speed processors are not necessary for maintaining databases.

Operational feasibility

People who are accessing this site need not proper training . Common knowledge about computers is only necessary. With the minimum knowledge to operate computers and internet browsing is enough. Who does have any knowledge about computers, it is not hard to learn from others or can get help easily from anyone who knowledge about computers.

Financial feasibility

This is an important part of the feasibility study , cost benefit analysis has to be done to start the project. Without financial assurance a system may be taken off its analysis face. Therefore from the analysis, it can be clearly seen that the suggested system is financially feasible.

2.4 Summary

It is necessary to analyze the system before starting the development. And also a clear understanding of the system should mean a developers. Otherwise, it would be really difficult to develop an error free system.

Design

3.1 Preface

From analysis, we understand that the appropriate web development technique is using Content Management System (CMS). The range of available CMSs are extensive—from enterprise scale versions that cost $300,000 to open source versions, such as CodeIgniter! that are free. Modern CMSs are usually defined by their capability to manage and publish content. They typically have workflow processes that start at content creation and move to publishing. Most do far more: They have the capability to add on a wide range of extensions or add-ons to give the site more functionality. From forums to newsletters, CodeIgniter! has over 2000 pluggable extensions available, many of which are free and are created by volunteer developers around the world. The official repository is at extensions.joomla.org and a repository specializing in commercial extensions can be found at www.extensionprofessionals.com. Both have a rating and review system (which is itself an extension!).

CodeIgniter! is one of the key applications initiating the rebirth of the World Wide Web into what pundits are calling Web 2.0. Unlike Web 1.0, where most Web sites were manually administered and interaction was minimal, web 2.0 is defined by automated administration, intrasite and intersite communication, virtual communities and dynamic interaction. Joomla! embraces all of these new advances and provides a CMS that allows an advanced Web site to be created and managed by a small group of people (perhaps as small as one person). A CodeIgniter! Web site can rival the capabilities and presentation of a multi-million-dollar Web site.

CodeIgniter! is probably the easiest to setup among currently available CMSs, allowing users of modest technical skill to harness its power.

Best of All- CodeIgniter! Is open source software that is 100% free. It is created by a world-wide community of developers and distributed at no charge under open source license of GNU/GPL. So, CodeIgniter! Is chosen to build our Health Care Information System.

What is CodeIgniter?

CodeIgniter is an Application Development Framework – a toolkit – for people who build web sites using PHP. Its goal is to enable you to develop projects much faster than you could if you were writing code from scratch, by providing a rich set of libraries for commonly needed tasks, as well as a simple interface and logical structure to access these libraries. CodeIgniter lets you creatively focus on your project by minimizing the amount of code needed for a given task.

CodeIgniter uses the Model-View-Controller approach, which allows great separation between logic and presentation. This is particularly good for projects in which designers are working with your template files, as the code these file contain will be minimized. We describe MVC in more detail on its own page.

CodeIgniter Features:

Features in and of themselves are a very poor way to judge an application since they tell you nothing about the user experience, or how intuitively or intelligently it is designed. Features don’t reveal anything about the quality of the code, or the performance, or the attention to detail, or security practices. The only way to really judge an app is to try it and get to know the code. CodeIgniter is child’s play so we encourage you to do just that. In the mean time here’s a list of CodeIgniter’s main features.

Model-View-Controller Based System

PHP 4 Compatible

Extremely Light Weight

Full Featured database classes with support for several platforms.

Active Record Database Support

Form and Data Validation

Security and XSS Filtering

Session Management

Email Sending Class. Supports Attachments, HTML/Text email, multiple protocols (sendmail, SMTP, and Mail) and more.

Image Manipulation Library (cropping, resizing, rotating, etc.). Supports GD, ImageMagick, and NetPBM

File Uploading Class

FTP Class

Localization

Pagination

Data Encryption

Benchmarking

Full Page Caching

Error Logging

Application Profiling

Scaffolding

Calendaring Class

User Agent Class

Zip Encoding Class

Template Engine Class

Trackback Class

XML-RPC Library

Unit Testing Class

Search-engine Friendly URLs

Flexible URI Routing

Support for Hooks, Class Extensions, and Plugins

Large library of “helper” functions

Design and Architectural Goals:

Our goal for CodeIgniter is maximum performance, capability, and flexibility in the smallest, lightest possible package.

To meet this goal we are committed to benchmarking, re-factoring, and simplifying at every step of the development process, rejecting anything that doesn’t further the stated objective.

From a technical and architectural standpoint, CodeIgniter was created with the following objectives:

Dynamic Instantiation. In CodeIgniter, components are loaded and routines executed only when requested, rather than globally. No assumptions are made by the system regarding what may be needed beyond the minimal core resources, so the system is very light-weight by default. The events, as triggered by the HTTP request, and the controllers and views you design will determine what is invoked.

Loose Coupling. Coupling is the degree to which components of a system rely on each other. The less components depend on each other the more reusable and flexible the system becomes. Our goal was a very loosely coupled system.

Component Singularity. Singularity is the degree to which components have a narrowly focused purpose. In CodeIgniter, each class and its functions are highly autonomous in order to allow maximum usefulness.

CodeIgniter is a dynamically instantiated, loosely coupled system with high component singularity. It strives for simplicity, flexibility, and high performance in a small footprint package.

Application Flow Chart of CodeIgniter :

The following graphic illustrates how data flows throughout the system:

The index.php serves as the front controller, initializing the base resources needed to run CodeIgniter.

The Router examines the HTTP request to determine what should be done with it.

If a cache file exists, it is sent directly to the browser, bypassing the normal system execution.

Security. Before the application controller is loaded, the HTTP request and any user submitted data is filtered for security.

The Controller loads the model, core libraries, plugins, helpers, and any other resources needed to process the specific request.

The finalized View is rendered then sent to the web browser to be seen. If caching is enabled, the view is cached first so that on subsequent requests it can be served.

What is a Controller of CodeIgniter?

A Controller is simply a class file that is named in a way that can be associated with a URI.

Consider this URI:

example.com/index.php/blog/

In the above example, CodeIgniter would attempt to find a controller named blog.php and load it.

Let’s create a simple controller so you can see it in action. Using your text editor, create a file called blog.php, and put the following code in it:

<?php

class Blog extends Controller {

function index()

{

echo ‘Hello World!’;

}

}

?>

Then save the file to my application/controllers/ folder.

Now visit the site using a URL similar to this:

example.com/index.php/blog/

Views of CodeIgniter:

A view is simply a web page, or a page fragment, like a header, footer, sidebar, etc. In fact, views can flexibly be embedded within other views (within other views, etc., etc.) if you need this type of hierarchy.

Views are never called directly, they must be loaded by a controller. Remember that in an MVC framework, the Controller acts as the traffic cop, so it is responsible for fetching a particular view.

Creating a View:

Using your text editor, create a file called blogview.php, and put this in it:

<html>

<head>

<title>My Blog</title>

</head>

<body>

<h1>Welcome to my Blog!</h1>

</body>

</html>

Loading a View:

To load a particular view file you will use the following function:

$this->load->view('name');

Models of CodeIgniter:

Models are PHP classes that are designed to work with information in your database. For example, let’s say you use CodeIgniter to manage a blog. You might have a model class that contains functions to insert, update, and retrieve your blog data. Here is an example of what such a model class might look like:

class Blogmodel extends Model {

var $title = '';

var $content = '';

var $date = '';

function Blogmodel()

{

// Call the Model constructor

parent::Model();

}

function get_last_ten_entries()

{

$query = $this->db->get('entries', 10);

return $query->result();

}

function insert_entry()

{

$this->title = $_POST['title']; // please read the below note

$this->content = $_POST['content'];

$this->date = time();

$this->db->insert('entries', $this);

}

function update_entry()

{

$this->title = $_POST['title'];

$this->content = $_POST['content'];

$this->date = time();

$this->db->update('entries', $this, array('id' => $_POST['id']));

}

}

Using CodeIgniter Libraries:

All of the available libraries are located in your system/libraries folder. In most cases, to use one of these classes involves initializing it within a controller using the following initialization function:

$this->load->library('class name');

3.3.2 MySql

MySQL is a database. A database defines a structure for storing information. In a database, there are tables. Just like HTML tables, database tables contain rows, columns, and cells. Databases are useful when storing information categorically. A company may have a database with the following tables: “Employees”, “Products”, “Customers” and “Orders”. MySQL is a database server. MySQL is ideal for both small and large applications MySQL supports standard SQL MySQL compiles on a number of platforms MySQL is free to download and use.

Joomla! currently is using the database MySql. It will support other databases in near future.

3.3.3 Apache

Every website on the internet is hosted on some server. Server is simply a computer which manages the access to a centralized resource or service in a network. The main job of the web server is to serve up web pages to client. Apache is a highly configurable Web Server with a modular design.

It is very easy to extend the capabilities of Apache Web server. Anyone with decent C or Perl programming expertise can write a module to perform a special function. This means that there are tons of Apache modules available for use. Apache is a free, open source technology.

Apache works great with Perl, PHP, and other scripting languages.

Apache runs on Linux and other Unix systems. Apache also runs on Windows. Apache offers many other features including fancy directory indexing; directory aliasing; content negotiations; configurable HTTP error reporting; SetUID execution of CGI Programs; resource management for child processes; server-side image maps; URL rewriting; URL spell checking; and online manuals.

It is the prerequisite that Web Server (Apache/IIS), PHP, MySql must be integrate properly to make CodeIgniter! functions properly. In this case, it is best to use CodeIgniter! with Apache. Because, if we learn to configure/integrate Apache, PHP, MySql properly it will help us in case of switching to and from Operating Systems (Like, Windows to Linux or, Vice Versa).

The following figure 3.3.3 makes it clear to understand.

3.3.4 XAMPP

There are plenty of standalone web servers which allows us to develop & test websites locally. We don’t need to connect to internet. We can see any changes ourselves before making it live. That is, before we venture into the wilderness of the Internet, we should first develop and test our website on our local computer. This is an advantage as there are no connection fees, it is very fast, and we can practice at a leisurely pace. We can even have a small local network at home where we can install CodeIgniter! on one computer and access it from another.

XAMPP is a free, cross-platform web server, consisting mainly of the Apache, MySql, PHP and Perl programming languages. Here, X in XAMPP denotes that it can be run on different operating system like windows, linux, Mac OS X etc. In order to avoid adding entries to registry XAMPP doesn’t need to run on user computer. It offers batch files to start and stop the server and database engine. This means we can even take XAMPP on our USB drive and run the server. There is no need for admin rights & also have advantage of portability.

3.4 DNS

The Domain Name System (DNS) is a hierarchical naming system for computers, services, or any resource participating in the Internet. It associates various information with domain names assigned to such participants. Most importantly, it translates domain names meaningful to humans into the numerical (binary) identifiers associated with networking equipment for the purpose of locating and addressing these devices world-wide. An often used analogy to explain the Domain Name System is that it serves as the “phone book” for the Internet by translating human-friendly computer hostnames into IP addresses. For example, www.example.com translates to 208.77.188.166.

Figure 3.4 How DNS Works

The Domain Name System makes it possible to assign domain names to groups of Internet users in a meaningful way, independent of each user’s physical location. Because of this, World-Wide Web (WWW) hyperlinks and Internet contact information can remain consistent and constant even if the current Internet routing arrangements change or the participant uses a mobile device. Internet domain names are easier to remember than IP addresses such as 208.77.188.166 (IPv4) or 2001:db8:1f70::999:de8:7648:6e8 (IPv6). People take advantage of this when they recite meaningful URLs and e-mail addresses without having to know how the machine will actually locate them.

The Domain Name System distributes the responsibility of assigning domain names and mapping those names to IP addresses by designating authoritative name servers for each domain. Authoritative name servers are assigned to be responsible for their particular domains, and in turn can assign other authoritative name servers for their sub-domains. This mechanism has made the DNS distributed, fault tolerant, and helped avoid the need for a single central register to be continually consulted and updated.

3.5 HTTP

HTTP has been in use by the World-Wide Web global information initiative since 1990. The web protocol called Hyper Text Transfer Protocol (HTTP) is the language or format for communications from browser to Web server and back, and is therefore fundamental to many aspects of PHP. The message passed from the browser to the Web server is known as an HTTP request. The message sent from the Web server to the browser is called the HTTP response. HTTP message format, which breaks down into three sections: the request/response line, the HTTP header, and the HTTP body. Internet protocols define the format for all Internet communications between computers. For file transfers, FTP (File Transfer Protocol) is used, and for Web communications, HTTP is used.

The HTTP is an application-level protocol for distributed, collaborative, hypermedia information systems. It is a generic, stateless, protocol which can be used for many tasks beyond its use for hypertext, such as name servers and distributed object management systems, through extension of its request methods, error codes and headers. A feature of HTTP is the typing and negotiation of data representation, allowing systems to be built independently of the data being transferred.

4

Implementation

4.1 Preface

In this chapter, the implementation of my project is described. The necessary softwares and tools that are required for developing the project are XAMPP, CodeIgniter! Extensions and all are installed and integrated in Windows Platform.

4.2 Installation and Integration of Required Softwares

First we have to download XAMPP-win32-1.6.7-installer.exe from the site (http://www.apachefriends.org/en/xampp.html), then we have to follow the following installation procedures:

4.2.1 XAMPP Installation Procedures

• We have to Click the XAMPP installer.

• A window will popup looking like the following Figure 4.2.1.a

Figure 4.2.1.a XAMPP Installation Screenshot

• We will click next to continue installation.

Figure 4.2.1.b XAMPP Installation Screenshot

• A screen looking like the Figure 4.2.1.b will come, where we will select the installation path of the XAMPP and click Next to continue installation.

Figure 4.2.1.c XAMPP Installation Screenshot

• A screen looking like the Figure 4.2.1.c will come, where we will select the Apache and MySql to be run as services. Now, Click Next to continue installation.

Figure 4.2.1.d XAMPP Installation Screenshot

• Now, the installation process starts like Figure 4.2.1.d and we will wait for the next screen to come.

Figure 4.2.1.e XAMPP Installation Screenshot

• In this screen we will see that the XAMPP installation is succeed (Figure 4.2.1.d) We will click Finish to complete the installation.

• When you double-click on the xampp-control.exe file in the xampp directory, Apache and MySQL start up. PHP is launched automatically as an Apache module. XAMPP makes no entries in the Windows Registry and sets no system variables. We can see the XAMPP Control panel as shown in the Figure 4.2.1.f

Figure 4.2.1.f XAMPP Installation Screenshot

• Now, We will open our Internet browser and enter http://127.0.0.1/ or http://localhost/. If Installation is OK, then we will see the XAMMP start page. Click on the English link and browser will display a page like Figure 4.2.1.g.

Figure 4.2.1.g XAMPP Installation Screenshot

In this step, we will download CodeIgniter-Stable-Full_Package.zip from the site (http://www.CodeIgniter.org), then we have to follow the following installation procedures:

4.2.2 CodeIgniter! Installation Procedures

• We have to Unzip the CodeIgniter! zipped package.

• Rename this Unzipped folder something like peopledata

• Copy it to the XAMPP root directory “../htdocs”

• Now, we open a browser and type “localhost/peopledata in the address bar, it makes the CodeIgniter! installation procedure get started

• Here, We have to select the language of the installation procedure. We keep the default (en-US – English). Now, Click Next.

• In this step, pre-installation check has been performed. We have to make sure that all recommended options are fulfilled.

• In the next step, We have to agree with the GNU/GPL License Agreement

• In the next step, We have to assign a database for our project. It is “hcbd” and host (here, localhost) of the database is also need to be selected

• In the next step, we will be offered to enable and configure FTP facility. But as we are not using this, just click next to continue installation process

• Now, we will assign a site name to our web site and it is “CodeIgniter”. Here we will also enter our administrative password and email address of administrator

• In this step, we are given notice to completely delete the installation folder from the “CodeIgniter” to make CodeIgniter! security stronger and through deleting the installation folder we completed the CodeIgniter! installation procedures successfully.

4.2.3 CodeIgniter! Frontend and Backend

• Now, Let us open a new browser window/tab and type in the address bar “cocalhost/CodeIgniter”. This will open a web page which is the default frontend of the CodeIgniter site layout.

Fig: CodeIgniter layout

• Now, Let us open a new browser window for the user guide of CodeIgniter. This is the user guide for my CodeIgniter CodeIgniter project!

Fig: CodeIgniter User guide layout

4.2.4 CodeIgniter! Extension Installation Procedures

Now, We will install necessary CodeIgniter! Extensions to enrich CodeIgniter!’s functionality. That’s why, We first have to downloaded certain Extensions (JPFChat Module and MSComment Component) from the CodeIgniter! Extension site- “http://www.extensions.CodeIgniter.org”

• Now we enter into the backend panel through Administrator Login Page. Then We go to the “Extension” Tab à “Install/Uninstall” Option

• Here in the installation section We have to “Browse” the module and component and click to the “Upload File & Install” Button to install those module and component one after another (Figure 4.2.4.b), We can see the “installation success” message if all goes correct.

• Now, We can see the new installed module and component into the module-tab and component-tab respectively. We can enable and configure those extensions as necessary.

• In this step, we will setup a Developed/Modified template for our project. So, first we should download or have any existing template and change its Cascading Style Sheet, Images and Template Elements as necessary and as our choice; Then copy the Modified Template folder and paste it into the directory – “../htdocs/Peopledata/templates/”.

• For the frontend we write the html script in the view folder. Then we again write the php code to control the view. We called the function of the view folder. Then we can show the front page by using the url path localhast/peopledata(name of the file which is saved in the controller folder).

Figure 4.2.4.d Project Template on frontend

4.3 Project Development

In project development, we will develop the expected web project. For this, we have to develop web services like: web article, web menu, user login option, searching option, comment option etc.

The development of these web services are described as follows:

4.3.1 Web Article Development

To create Article in CodeIgniter! we go to the view folder and write code which is must be show to the websitew and for the backend we write the code in the model folder for the database.

Figure 4.3.1 Web Article Creation

• We can use any library function in the CodeIgniter.

• We created articles like,the information of local people.

4.3.2 Web Menu Development

To create menu in CodeIgniter! we go to the view folder and write the code by html to view the menu button that can be viewed by the controller of the CodeIgniter (figure 4.3.2.a).

Figure 4.3.2.a Web Menu Creation

Figure 4.3.2.b Web Menu Creation

• Now We have to add Menu Items in the “Main Menu” by writing the code again in the view folder that is controlled by the controller of the CodeIgniter.

Figure 4.3.2.b Web Menu Item Creation

• Now, We will link Menu Items by calling the appropriate function name and of view and model that coded before.

To link menu item to article we take the following steps.

• We have to first open the appropriate code and select it in to the models and view. Then called it in the controller.

4.3.3 User Login Option Development

To Develop User Login Option in CodeIgniter! is like a piece of cake. First, We go to view and write a code to create button and write the code again in the model to match the user name and password.

Figure 4.3.3.a User Logon Option Development

Figure 4.3.3.b User Login Option Development

• After inserting the username and password then a user can inter the login form.

4.3.4 Searching Option Development

To add a searching option in our project is also a simple task in CodeIgniter! This Searching code written in the controller page. In this code, called a function from the viewer and helper and load a library function. A model function and a viewer function will be called in the controller function.

Figure 4.3.4.a Searching Option Development

Figure 4.3.4.b Searching Option Development

4.4 Summary

Now we have completed our project development. Here are the developed project’s screenshots.

• Main Page’s Screen shot of our Site is given below.

Figure 4.4.a Main Page

Figure 4.4.b Main Page

• Screenshot of menu Item – “people data” is as follows.

Figure 4.4.b Menu Item – people data

• Screenshot of menu Item – “people data” is as follows.

Figure 4.4.c Menu Item – Health Tips

• Screenshot of User Registration Form

Figure 4.4.e User Registration Form

• Screenshot of Searching Form

Figure 4.4.f Searching Information Form

Testing and Debugging

5.1 Preface

System testing is the process of testing system in a controlled manner to ensure that it behaves the way it is expected to behave. System testing is, thus a critical element of assuring quality of the developed system. Testing requires that the developer discards preconceived notices of the correctness of the system just developed and overcome the conflict of interest that occurs when errors are revealed.

There are various types of testing and debugging method exists.

But we have selected the following appropriate testing methods for our project.

5.2 Functionality Testing and Debugging

This test specifies operating conditions, input values and expected results.

In our project, we tests the functionality like when we have inputted any text in the search box, the search engine perfectly find out the result exactly based on the topic.

5.3 Performance Testing and Debugging

It involves system performance testing like when we browse the site how fast the site is loaded, this performance depends basically on the coding style and the network that the user is using.

5.4 Security Testing and Debugging

Security testing involves checking system’s security holes and debug them as necessary.

In our system, we have checked our user database that cannot be accessed without proper authority.

Moreover, Unauthorized access to web resources like trying to chat without being a member is not possible.

5.5 Conclusion

As no system/software is 100% secured or bug free. So, we cannot guarantee that there is no holes or bugs in our system but common erroneous situations are checked and found no one.

The development of this robust, bug free and secured project was possible due to using the framework of CodeIgniter!

6.2 Code for forms

For home page:

<?php

class Home extends Controller {

function index()

{

$this->load->helper(array(‘form’, ‘url’, ‘html’));

////start

$this->load->library(‘session’);

$this->load->model(‘session_model’);

if($this->session_model->login_check()){

$this->load->view(‘home_view’);

}

else{

$datas[‘wrong_pass’] = 0;

$this->load->view(‘login_view’,$datas);

}

///end

}

}

?>

<?php

include_once “header.php”;

include_once “left_bar.php”;

?>

<div id=”input”>

<h3>Welcome to people data!</h3>

</div>

<?php

include_once “footer.php”;

?>

<html>

<head>

<title>Welcome to people data login</title>

<style type=”text/css”>

</style>

</head>

<body>

<center>

<div >

<object data=”<?=base_url();?>flash/flash.swf” type=”application/x-shockwave-flash”>

<param value=”<?=base_url();?>flash/flash.swf” name=”movie”/>

<param value=”high” name=”quality”/>

<param value=”transparent” name=”wmode”/>

</object><br>

<?php if($wrong_pass){echo “Wrong user name or password”;}?>

<?php echo form_error(‘user_name’); ?>

<?php echo form_error(‘user_pass’); ?><br />

<?php echo form_open(”); ?>

User Name: <input type=”text” name=”user_name”> Password: <input type=”password” name=”user_pass”> <input type=”submit” name=”submit” value=”Login”>

</form>

<p>

<h2>People data login</h2>

</p>

</div>

</center>

</body>

</html>

Code For add people data form:

<?php

class pdata extends Controller {

var $keyname=”;

function index($pg=0){

$this->load->helper(array(‘form’, ‘url’, ‘html’));

$this->load->model(‘pdata_model’);

$data[‘query’]=$this->pdata_model->view_data($pg, $this->keyname);

//print_r($query);

// echo $this->keyname;

$query_total=$this->pdata_model->total_data($this->keyname);

$this->load->library(‘pagination’);

$url=base_url().’/index.php/pdata/’;

if($this->keyname){

$url=$url.”searched/”.$this->keyname.”/”;

}

else{

$url.=”index/”;

}

$config_pg[‘base_url’] = $url;

foreach ($query_total->result() as $row){

$config_pg[‘total_rows’] = $row->total_row;

}

$config_pg[‘per_page’] = $this->config->item(‘page_data_limit’);

$config_pg[‘cur_page’]=$pg;

$this->pagination->initialize($config_pg);

$this->load->library(‘session’);

$this->load->model(‘session_model’);

if($this->session_model->login_check()){

$this->load->view(‘pdata_view’,$data);

}

else{

$datas[‘wrong_pass’] = 0;

$this->load->view(‘login_view’,$datas);

}

}

function searched($pname=”, $pg=0){

$this->load->model(‘search_model’);

if(!$pname){

$this->keyname=$this->search_model->get_pname();

}

else

{

$this->keyname=$pname;

}