You are on page 1of 59

E PRISON

SIXTH SEMESTER

PROJECT REPORT

Submitted to the University of Kerala in partial fulfilment of the requirements for the award of the degree of Master of Computer Applications by MEHZIN NAZAR

[Reg. No. :

Department of Computer Applications

SREE NARAYANA INSTITUTE OF TECHNOLOGY


Vadakkevila, Kollam 10.
www.snit.ac.in

2013

Sree Narayana Institute of Technology


Vadakkevila Kollam 10.

Department of Computer Applications

Certificate
Certified that the project report entitled E PRISON

is a bonafide record of the work done by MEHZIN NAZAR During the year 2013 in partial fulfilment of the requirements for the award of the degree of Master Of Computer Applications by the University of Kerala

Examiners 1. 2.

Guide

Head of Dept.

Mrs. Redhya M.
Asst. Prof.

Prof. Roby Surendran

DECLARATION
I, Mehzin Nazar hereby declare that, this project report entitled E PRISON is the bonafide work of mine carried out under the supervision of Narayana Institute Of Technology, Programmer, Reminiscent Kollam

Mrs.Redhya M., Ass. Prof., Sree and Mr.Saranch Sajeevan,

Technologies

P a r i p p a l l y, K o l l a m .

Declared further, that to the best of my knowledge, the work

reported herein does not form part of any other project report or dissertation on the basis of which a degree or award was conferred on an earlier occasion to any other candidate. The content of this report is not being presented by any other student to this or any other University for the award of a degree.

Signature MEHZIN NAZAR Register No:

Countersigned Head, Department of Computer Applications Sree Narayana Institute of Technology

ACKNOWLEDGEMENT
Before I get into the things, I would like to add a few heartfelt words for the several prominent personalities, who were part of this project in numerous ways, people who gave unending support and valuable assistance right from the project idea was conceived.

First and foremost I would like to express my thanks to the Almighty God who gave us the knowledge and strength to complete this project successfully.

express

my

deep

sense

of

gratitude

to

our

honorable

Principal

Dr.T.Mahalekshmi and Prof. Sajeev Jaladharan, Head of Department, for their cooperation in providing the required facilities and support to complete my project.

I render my profound thanks to my internal project guide Mrs.Redhya.M, Asst.Prof. Sree Narayana Institute of Technology, Vadakkevila for her valuable suggestions and support, which helped me a lot in the successful completion of this project.

It is a great pleasure for me to acknowledge the assistance external project guides Mr.Saranch Sajeevan and Mr.Vysakh V.V, Reminiscent Technologies, Parippally, Kollam for their guidance and support during the period of project.

I convey my heart thanks to teaching and non-teaching staff, parents, friends, and all well wishers for their valuable suggestions and cooperation for my project work.

MEHZIN NAZAR

ABSTRACT

The project E-PRISON is aimed at developing a prison management system that is a collection of registers and reports for the effective management of prisons. This is an efficient application for maintaining Prisoners information. More than a data storage program, it helps to manage the prisoners. It offers a wide variety of Reports that gives you exactly the information you need. Add new prisoner details and about new cases. It enables to track every prisoner and their activities.

The E-Prison also creates a safe way in the matter of managing the prisoner's information. This is due to the need of username and password in order to use the system. So, the E-Prison can be accessed only by authorized users which are the System Administrators, Police officials and Jail Administrators. Here, the system is protected from intrusion of unauthorized users.

CHAPTER 1 INTRODUCTION

1.1 About the System

E Prison is comprised of the Directorate of Prisons, prisons around the state, prisoners living in the prison. Prison officers controlling and taking care of the prisoners at different prisons. E Prison to manage the activities related to Prison activities in updation of all the jails, effective is a system

like tracking and monitoring of of records, regular

management

status of all the jails and maintenance of prison employee

details such as transfer etc. To maintain the records of the prisoner and the various cases registered against them are part of the work of the Jail authority. In fact, Jail authorities are maintaining registers to maintain the details of the prisoners. Police There are and three Jail kinds of users System System

administrator,

officials

Administrator.

Administrator is considered as Super user and he has full access and rights over the system than anybody else. He can view the details of prisoners, cases, release diary, parole register and interview requests as well as in-out register. Police officials have rights to view the whole

details of prisoners. Jail Administrator can manage the details of prisoners and the staffs in a particular prison.

1.2 COMPANY PROFILE

CHAPTER 2 SYSTEM ANALYSIS


2.1 INTRODUCTION
A system is simply a set of components to accomplish an objective. System Analysis is an important activity that takes place when we attempt to build a new system or when modifying existing ones. Analysis comprises a detailed study of the various operations performed by a system and their relationships within and outside the system. It is the process of gathering and interpreting facts, diagnosing problems and improving the system using the information obtained. The objectives of Requirement Analysis include the following. Identifying the users need. Evaluating the system concept. Performing economic and technical analysis. Establishing cost and scheduled constraints.

System analysis is finding out what happens in the existing systems, deciding on what changes and new features are required and defining exactly what the proposed system must be. This process of system analysis is largely concerned with determining developing and agreeing to the users requirements. It provides prime opportunities to communicate well with the user and conceive a joint understanding of what a system should be doing, together with a view of the relative importance of the system facilities using interactive techniques.

2.2 EXISTING SYSTEM


Firstly, a detailed study of the existing system was performed. But there are several shortcomings in the existing system. Most of the prisons have a collection of manual files and registers to store prisoner/criminal records. Inefficient organization of prison information and records.

Information look up is cumbersome and time consuming Impedes the flow of critical information .

2.3 PROPOSED SYSTEM


The proposed system is incorporated with various features that are essential for the current requirements. The following features make the proposed system efficient: All the prison as well as prisoner/criminal information will be stored in a single centralized system having complete prisoner profiles. Efficient organization of prison information and records. Information look up is easy . Substantially decreases the time in which critical information is passed on. 2.3.1 Advantages of Proposed System Ability to handle large amount of data. Quick and accurate response for the user queries. Fast processing of user requests. The users will get up-to-date information. Effective management of records. Each prison will have their own interface with the facility to deal all data related to them.

The proposed system overcomes the limitation of the existing system and is achieved by adding additional features from the existing system. The proposed system has mechanisms to handle complaints, provides a user friendly approach. The interface is extremely user friendly and designed efficiently making the search process simple.

2.4 FEASIBILITY STUDY


The main objective of feasibility study is to test the technical, social and economic feasibility of developing a system. Preliminary investigations examine project feasibility; the likelihood the system will be useful to the organization. This is done by investigating the existing system in the area under investigation and generating ideas about the new system. A feasibility study is conducted to identify the best system that meets all the requirements. This entails an identification description, an evaluation of proposed system and selection of the best system for the job. Three tests of feasibility are studied: Operational Feasibility. Technical Feasibility. Economic Feasibility.

Operational Feasibility The purpose of the operational feasibility study is to determine whether the new system would be used if it is developed and implemented. Will there be resistance from users that will undermine the possible application benefits? From the outputs of the meeting that was held with the system users, it was found that all of them support the development of new system. The positive response from them encouraged in building such a system. Technical Feasibility Technical feasibility centers on the existing system and to what extent it can support the proposed addition. Technical feasibility deals with hardware as well as software requirements. An idea from the outline design to system requirements in terms of inputs, outputs, files and procedures is drawn and the type of hardware, software, and the methods required for running the systems are analyzed. The proposed system which is

being developed is used by the users as a means to satisfy their all management activities easily and quickly through the system The website will help the Police Officers to search the details of a prisoner very easily and quickly. Only authorized department can access the related details. Economic Feasibility Economic analysis is the most frequently used method for evaluating the effectiveness of a candidate system. More commonly known as cost/benefit analysis, the procedure is to determine the benefits and savings that are expected from a candidate system and compare with costs. E Prison can be designed in a cost effective manner.

CHAPTER 3 ENVIRONMENT

3.1 SYSTEM SPECIFICATION 3.1.1 Software Specification


Operating System : 32-bit Operating System

Web Server Web Browser Front-End Tool Client side Script Server side Script Back-End Tool

: : : : : :

Apache Google Chrome PHP HTML, JavaScript PHP MY SQL

3.1.2 Hardware Specification


Processor RAM Hard Disk Display Type : : : : Intel Pentium or above. 512MB or more 40GB or more VGA Color Monitor.

3.2 SOFTWARE TECHNOLOGY REVIEW 3.2.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.

Instead of lots of commands to output HTML (as seen in C or Perl), PHP pages contain HTML with embedded code that does "something" (in this case, output "Hi, I'm a PHP script!"). The PHP code is enclosed in special start and end processing instructions <?php and ?> that allow you to jump into and out of "PHP mode." What distinguishes PHP from something like client-side JavaScript is that the code is executed on the server, generating HTML which is then sent to the client. The client would receive the results of running that script, but would not know what the underlying code was. You can even configure your web server to process all your HTML files with PHP, and then there's really no way that users can tell what you have up your sleeve. The best things in using PHP are that it is extremely simple for a newcomer, but offers many advanced features for a professional programmer. Don't be afraid reading the long list of PHP's features. You can jump in, in a short time, and start writing simple scripts in a few hours. PHP can do anything. PHP is mainly focused on server-side scripting, so you can do anything any other CGI program can do, such as collect form data, generate dynamic page content, or send and receive cookies. But PHP can do much more. There are three main areas where PHP scripts are used. Server-side scripting: This is the most traditional and 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: PHP script to run it without any server or browser. 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 tasks.

Writing desktop applications: PHP is probably not the very best language to create a desktop application with a graphical user interface, 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 can be used on all major operating systems, including Linux, many UNIX variants (including HP-UX, Solaris and OpenBSD), Microsoft Windows, Mac OS X, RISC OS, and probably others. PHP has also support for most of the web servers today. This includes Apache, Microsoft Internet Information Server, Personal Web Server, Netscape and iPlanet servers, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd, and many others. For the majority of the servers, PHP has a module, for the others supporting the CGI standard, PHP can work 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 or object oriented programming, or a mixture of them. Although not every standard OOP feature is implemented in PHP 4, many code libraries and large applications (including the PEAR library) are written only using OOP code. PHP 5 fixes the OOP related weaknesses of PHP 4, and introduces a complete object model. With PHP you are not limited to output HTML. PHP's abilities include outputting images, PDF files and even Flash movies (using libswf and Ming) generated on the fly. You can also output easily any text, such as XHTML and any other XML file. PHP can auto generate these files, and save them in the file system, instead of printing it out, forming a server-side cache for your dynamic content. One of the strongest and most significant features in PHP is its support for a wide range of databases. Writing a database-enabled web page is incredibly simple. PHP is Open Source PHP doesnt cost anything. We can use it for commercial and/or non-commercial use all we want. Any problem we encountered in our coding can be answered swiftly and easily with a little research. There is no vested interest in a particular server product or operating system. We are free to make choices that suit our needs or those of our clients. Performance Because of the oweful Zend engine, PHP4 compares well with ASP in benchmark tests, beating it in some tests. Compiled PHP leaves ASP far behind

Portability PHP is designed to run on many operating systems and to cooperate with many servers and databases. We can test a project with Personal Web Server and install it on a UNIX system running on PHP as an Apache module.

3.2.2 HTML (Hyper Text Markup Language)


Hypertext Markup Language (HTML), the languages of the World Wide Web (WWW), allows users to produces Web pages that include text, graphics and pointer to other Web pages (Hyperlinks). HTML is not a programming language but it is an application of ISO Standard 8879, SGML (Standard Generalized Markup Language), but specialized to hypertext and adapted to the Web. The idea behind Hypertext is that instead of reading text in rigid linear structure, we can easily jump from one point to another point. We can navigate through the information based on our interest and preference. A markup language is simply a series of elements, each delimited with special characters that define how text or other items enclosed within the elements should be displayed. Hyperlinks are underlined or emphasized works that load to other documents or some portions of the same document.

Advantages:
A HTML document is small and hence easy to send over the net. It is small because it does not include formatted information. HTML is platform independent. HTML tags are not case-sensitive.

3.2.3 JavaScript:
JavaScript is a script-based programming language that was developed by Netscape Communication Corporation. JavaScript was originally called Live Script and renamed as JavaScript to indicate its relationship with Java. JavaScript supports the development of both client and server components of Web-based applications. On the

client side, it can be used to write programs that are executed by a Web browser within the context of a Web page. On the server side, it can be used to write Web server programs that can process information submitted by a Web browser and then update the browsers display accordingly. Even though JavaScript supports both client and server Web programming, we prefer JavaScript at Client side programming since most of the browsers supports it. JavaScript is almost as easy to learn as HTML, and JavaScript statements can be included in HTML documents by enclosing the statements between a pair of scripting tags

<SCRIPTS>... </SCRIPT>. <SCRIPT LANGUAGE = JavaScript> JavaScript statements </SCRIPT> 3.2.4 MySQL MySQL is a database server, which supports standard SQL. MySQL is relational database management system (RDBMS) and implements a subset of SQL. The program runs as a server providing multi user access to a number of databases. MySQL is popular for web applications and act as the database component of the LAMP, BAMP, WAMP, XAMP platform(Linux/BSD/Mac/ Windows, Apache, MySQL, PHP/Perl). Its popularity for use with web applications is closely tied to the popularity of PHP and Ruby on rail, which are often combined with MySQL. PHP and MySQL are essential components of running popular content management system. MySQL compiles on a number of platforms. The main advantages are Freely available, open source, actively maintained, powerful and efficient. MySQL is generally much faster than PostgreSQL. MySQL has a much more sophisticated ALERT TABLE.

All MySQL tables are implemented as files. Upgrading MySQL is painless

3.2.4.1 Benefits Scalability and Flexibility Deeply embedded applications with a footprint of just 1 MB, or Massive data warehouses holding terabytes of information. High Performance o Table and Index Partitioning o Ultra-fast load utilities o Distinctive memory caches o Full-text indexes High Availability Run high-speed master/slave replication configurations with RowBased and Hybrid Replication Specialized Cluster servers offering instant failover. Robust Transactional Support o Complete ACID transaction support o Unlimited row-level locking o Distributed transaction capability, and o Multi-version transaction support

3.2.4.2 Uses
My SQL is used in web applications and acts as the database component of the LAMP software stack. Its popularity for use with web applications is closely tied to the

popularity of PHP, which is often combined with My SQL. Several high-traffic web sites (including Flicker, Face book, Wikipedia, Google (though not for searches), Nokia, Auction marts and YouTube) use My SQL for data storage and logging of user data. Platforms and interfaces My SQL works on many different system platforms, including AIX, BSDi, FreeBSD, HP-UX, i5/OS, Linux, Mac OS X, NetBSD, Novell NetWare, OpenBSD, Open Solaris, eComStation, OS/2 Warp, QNX, IRIX, Solaris, Symbian, SunOS, SCO Open Server, SCO UnixWare, Sanos, Tru64 and Microsoft Windows. A port of My SQL to OpenVMS is also available. Libraries for accessing My SQL databases are available in all major programming languages with language-specific APIs. In addition, an ODBC interface called My ODBC allows additional programming languages that support the ODBC interface to communicate with a My SQL database, such as ASP or ColdFusion. The My SQL server and official libraries are mostly implemented in ANSI C/ANSI C++. To administer My SQL databases one can use the included command-line tool (commands: mysql and mysqladmin). Also downloadable from the My SQL site are GUI administration tools: My SQL Administrator, My SQL Migration Toolkit and My SQL Query Browser. The GUI tools are now included in one package called My SQL GUI Tools. In addition to the above-mentioned tools developed by My SQL AB, there are several other commercial and non-commercial tools available. Examples include Navigate Free Liter Edition or SQLyog Community Edition, they are free desktop based GUI tools, and phpMyAdmin, a free Web-based administration interface implemented in PHP.

DDL

Data definition Language (DDL) statements are used to define the database structure or schema. CREATE-to create objects in the database ALTER-alters the structure of the database DROP-delete object from the database TRUNCATE-remove all records from a table, including all spaces allocated for the records are removed COMMENT-add comments to the data dictionary RENAME-rename an object

DML Data Manipulation Language (DML) statements are used for managing data

within Schema objects. SELECT-retrieve data from the database INSERT insert data into a table UPDATE-updates existing data within a table DELETE-deletes all records from a table, the space for the records remain MERGE-UPSERT operation (insert or update) CALL-call a PL/SQL or Java subprogram EXPLAIN PLAN-explain access path to data LOCK TABLE-control concurrency

DCL Data Control Language (DCL) statements.

Connecting to the database server Before we begin working with our database, we must first connect to the

server. PHP provides the mysql_connect () to do just this. Mysql_connect does not require any arguments but accepts up to three strings: the host name, username and a

password. If we omit any or all of these arguments, the function assumes local host as the host and no password or username has been set u in the My SQL user table, unless defaults has been set u in the php.ini file.

3.2.4.3 Features of MySQL Written in C and C++. Tested with a broad range of different compilers. Works on many different platforms.. Uses GNU Auto make, Autoconf, and Libtool for portability. APIs for C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and Tcl are available Fully multi-threaded using kernel threads. Provides transactional and non-transactional storage engines Relatively easy to add other storage engines. A very fast thread-based memory allocation system. Very fast joins using an optimized one-sweep multi- join. In-memory hash tables, which are used as temporary tables. SQL functions are implemented using a highly optimized class library and should be as fast as possible.

3.2.4.4 Distinguishing features The following features are implemented by MySQL but not by some other RDBMS software: Multiple storage engines, allowing one to choose the one that is most effective for each table in the application (in MySQL 5.0, storage engines must be compiled in; in MySQL 5.1, storage engines can be dynamically loaded at run time): Native storage engines (MyISAM, Falcon, Merge, Memory (heap), Federated, Archive, CSV, Blackhole, Cluster, Berkeley DB, EXAMPLE, and Maria)

Partner-developed storage engines (InnoDB, Infobright (formerly Brighthouse))

solidDB, NitroEDB,

Community-developed storage engines (memcached, httpd, PBXT, Revision Engine) Customer storage engines. Commit grouping, gathering multiple transactions from multiple connections together to increase the number of commits per second.

CHAPTER 4 SYSTEM DESIGN

4.1. INTRODUCTION
System Design involves translating system requirements and conceptual design into technical specifications and general flow of processing. After the system requirements have been identified, information has been gathered to verify the problem and after evaluating the existing system, a new system is proposed.

System Design is the process of planning of new system or to replace or complement an existing system. It must be thoroughly understood about the old system and determine how computers can be used to make its operations more effective.

System design sits at technical the kernel of system development. Once system requirements have been analyzed and specified system design is the first of the technical activities-design, code generation and test- that required build and verifying the software. System design is the most creative and challenging phases of the system life cycle. The term design describes the final system and the process by which it is to be developed.

System design is the high level strategy for solving the problem and building a solution. System design includes decisions about the organization of the system into subsystems, the allocation of subsystems to hardware and software components and major conceptual and policy decision that forms the framework for detailed design.

There are two levels of system design: Logical design. Physical design.

In the logical design, the designer produces a specification of the major features of the includes Current requirements of the following system components: Input design. Output design. Database design. Physical design takes this logical design blue print and produces the program software, files and a working system. Design specifications instruct programmers about what the system should do. The programmers in turn write the programs that accept input from users, process data, produce reports, and store data in files. Structured design is a data flow based methodology that partitions a program into a hierarchy of modules organized top-down manner with details at the bottom. Data flow diagrams are the central tool and the basis from which other components are system which meets the objectives. The delivered product of logical design

developed. The transformation of data from input to output, through processes may be described logically and independently of the physical components.

4.2 PROCESS DESIGN


The design goes through two phases of development: logical and physical design. A data flow diagram shows the logical flow of a system and defines the boundaries of the system. For a candidate system, it describes the inputs, outputs, database and procedures, all in a format that meets the users requirement. When analyst prepares the logical system design, they specify the user needs at a level of detail that virtually determines the information flow into and out of the system and the required data resources. The design covers the following: Reviews the current physical system its data flow, file content, volumes frequencies etc. Prepares output specification that is, determines the format, content and frequency of report, including terminal

4.3 INPUT DESIGN


The input design is the process of converting the user-oriented inputs in to the computer-based format. The goal of designing input data is to make automation as easy and free from errors as possible. The input design requirements such as user friendliness, consistent format and interactive dialogue for giving the right message and help for the user at right time are also considered for the development of the project. The following points should be considered while designing the input: What data to input? What medium to use? How the data should be arranged or coded? The dialogue to guide users in providing input. Data items and transactions needing validation to detect errors. Methods for performing input validation and steps to follow when errors occur.

Inaccurate input data is the most common cause of error in processing data. Errors entered by the data entry operators can be controlled by the input design. The arrangement of messages as well as placement of data, headings and titles on display screens or source document is also a part of input design. The design of input also includes specifying the means by which end user and system operators direct the system what action to take. The input design is the link between the information system and the user. It comprises the developing specification and procedures for data preparation and those steps that are necessary to put transaction data into a usable form for processing data entry. In this project all the necessary text boxes are validated. The input forms are designed in Adobe Dream Weaver using GUI Controls like textboxes, list box, checkbox, frames, radio button and other controls. If any non-empty fields are not filled, it will display error message and will wait until user types the necessary and correct input. The combo boxes are used to reduce the user inputs. The user can select one of the items from combo boxes. Initially to access the services of this software, the user has to log on with a login name and password which are validated. Once logged on, he can access the various services, navigate to different profiles. Once the data are entered through the input forms, they are stored in the database. In this application the user can select the options using mouse. The user is also allowed to choose priority using predefined set of values.

4.4 OUTPUT DESIGN


Output generally refers to the results and information that are generated by the system. When designing output, system analyst must accomplish the following: Determine what information to present. Decide whether to display, print the information and select the output medium. Arrange the presentation of information in an acceptable format. Decide how to distribute the output to intended recipients. The output design is specified on layout forms, sheets that describe the location characteristics, and format of the column headings and pagination. In my project, the

output forms are designed in PHP. Each form has a heading or caption which specifies what services is been given to the users making the software user-friendly. All requests given by the user is sent to the server which is validated and accordingly the corresponding pages are given to the client users. All information are stored in the database and when the user logs on and requests for a service, the corresponding page is fetched from the server after validation and is rendered.

4.5 MODULE WISE DESCRIPTION 1. System Administrator : System Administrator is treated as a super user in this system. He can maintain different Prisons around the state. Other tasks done by the System administrator are generation of reports, maintenance of log files, backup, and recovery of data any time. He is also responsible for managing finances of prison. He provides details of all the jobs for the prisoners.

2. Police officers:

Police officers can seek information regarding prisoners and convicts. The information is used to make decisions regarding court hearings, remands, release dates etc. He is also given permission to view all the details of the prisoners.

3. Jail administrators: Jail Administrator can maintain different registers such as Nominal Rolls, Case Register, Parole Register, Duty Register and In-Out Register. He also manages details of number of cells and their usage. Jail Administrators are given permission to approve or decline the visiting requests by the relatives and friends of prisoners to meet them and also he is given superior power to overlook the in and out timings in a register where prisoner is going out of prison for various reasons such as court

hearings, family function and personal problems. He can also look over and supervise the parole register. The case register is also overviewed by the Jail administrator. The new cases and new prisoners are supervised by the administrator.

4. Nominal rolls: The details of the prisoner and his/her demographic details should be captured. A photo and the list of articles surrendered by prisoner during nominal roll are to be recorded. The particulars such as name, age, gender, nationality details and identity marks and things collected from him during arrest are noted down in the nominal roll. This nominal can be viewed by Jail administrator and police officers, but only Jail administrators can modify or delete the particulars.

5.Visitor Module: Visitor Module is to register the details of visiting made by the relations and friends of a prisoner who wishes to meet that particular prisoner. In this module the details of prisoner who they wish to meet and the details of persons who all wish to meet them are noted down with timing details. The request once made is sent to Jail administrator. The reason for the interview is also mentioned in the request along with them other details for better understandings of the need to meet the prisoner. 6. In out Module: In out register is maintained to record the details of prisoners who are all moving in and out of prison for various reasons such as court hearings, personal problems, health issues and family functions etc. The details of in out register are supervised by the administrator.

4.5 DATABASE DESIGN

The most important aspect of building software systems is database design. The highest level in the hierarchy is the database. It is a set of inter-related files for real time processing. It contains the necessary data for problem solving and can be used by several users accessing data concurrently. The general objective of database design is to make the data access easy, inexpensive and flexible to the user. Database design is used to define and then specify the structure of business used in the client/server system. A business object is nothing but information that is visible to the users of the system. The database must be a normalized one. Database management system (DBMS) allows the data to be protected and organized separately from other resources like hardware, software and programs. DBMS is a software package, which contains components that are not found in other data management packages. The significance of DBMS is the separation of data as seen by the programs and data as stored on the direct access storage devices, i.e. the difference between logical and physical data. In my project, I have used MySQL as the database to implement the data store part. The most important part in the database design is the identification of tables to be used.

4.5.1 DATA NORMALIZATION


The entities along with their attributes can be stored in many different ways into a set of tables. The methods of arranging these attributes are called normal forms. The theory behind the arrangement of attributes into table is known as normalization theory. Normalization is a series of tests which we use against the data to eliminate redundancy and make sure that the data is associated with the correct table or relationship. It helps in, Minimization of duplication data. Providing flexibility to support different functional Enabling the model to be translated to database design All relations in a relational database are required to satisfy the following conditions.

4.5.1.1 Data in First Normal Form


Remove repeating data from table From the removed data, create one or more tables and relationships.

4.5.1.2 Data in Second Normal Form


Identify tables and relationships with more than one key. Remove data that depends on only one part of the key. From the removed data, create one or more tables and relationships.

4.5.1.3 Data in Third Normal Form


Remove that depends on other hand in the table or Remove that depends on other hand in the table or relationship. From the removed data, create one or more tables and relationships.

4.5.2 Advantages of normalization


Helps in reduction in the complexity of maintaining data relationship It reduces inconsistency of data. Eliminate the repeating fields. Creates a row for each occurrence of a repeated field. Allows exploitation of column functions. The second normal form has the characteristics of the first normal form and all the attributes must fully be dependent on the primary key. The proposed system is using second normal form as it is found most suitable.

4.6 TABLE DESIGN


This is one of the major tasks in designing the database. It is important to realize that the design of the system is totally inter-related and so table design of the system is totally inter-related and so table design cannot really be considered in isolation from inputs, outputs, procedures, codes and security requirements. In Social Welfare Portal, the server has to maintain all the information. The system can extract information whenever necessary using the Structured query Language (SQL).

Table 4.6.1 inmate_details

Description: This table is used to store the prisoner details

Field prison_id prisoner_id prisoner_no f_name middle_name l_name gender date_of_birth image address address2 place street town religion caste height weight date_of_entry job case_reg_no date_of_leave status

Type int(11) int(11) bigint(20) varchar(25) varchar(50) varchar(25) varchar(10) date varchar(50000) varchar(100) varchar(500) varchar(100) varchar(50) varchar(100) varchar(100) varchar(100) float(5,2) float(5,2) date varchar(50) varchar(20) date varchar(25)

Constraints Foreign Key Primary Key Not null Not null Not null Not null Not null Not null Not null Not null Not null Not null Not null Not null Not null Not null Not null Not null Not null Not null Not null Not null Not null

Description Id of the prison Id of the prisoner Chest No of the prisoner First name of prisoner Middle name of prisoner Last name of prisoner Gender of the Prisoner Date of birth of prisoner Photo of the prisoner Address line1 of prisoner Address line2 of prisoner Place of the prisoner Street of the prisoner Town of the prisoner Religion of the prisoner Caste of the prisoner Height of the prisoner Weight of the prisoner Entry date of prisoner into prison Job given to the prisoner Case Register no of the prisoner Releasing date of the prisoner Current status of the prisoner

Table 4.6.2 Prison details

Description: This table is used to store the Prison details. Field prison_id Type int(20) Constraints Description Primary Key Id of the prison Address Line1of prison Address Line2 of the prison Place where prison situated Mail id for the prison Telephone no. of the prison Name of the prison Fax of the prison Capacity of the prison Town where prison situated Type of the prison Street where prison situated

prison_address varchar(100) Not null prison_address2 varchar(5000) Not null place mail_id phone_no prison_name fax capacity town type street varchar(100) Not null varchar(25) varchar(50) varchar(50) Not null Not null Not null

varchar(100) Not null

varchar(100) Not null varchar(100) Not null varchar(100) Not null varchar(50) Not null

Table 4.6.3 prisoner_case_details.

Description: This table is used to store all case details of the prisoner

Field accusition_id prisoner_id status case_details case_regno ordinal_no sentence

Type int(11) varchar(30) varchar(30) varchar(25) int(5)

Constraints Primary Key Foreign Key Not null

Description Accusition id of the prisoner Id of the prisoner Current status of prisoner Details of the case Register no of the case Position of the prisoner in the case Sentence details of the prisoner

varchar(5000) Not null


Foreign Key Not null

varchar(1000) Not null

Table 4.6. 4 case_details

Description: This table is used to store the case details of the prisoner Field case_regno description date_of_reg case_no station FIR Type int(11) varchar(500) date varchar(25) varchar(25) varchar(10000) Constraints Description Primary Key Register no of case Not null Not null Not null Not null Not null Not null Details of case Registration date Case number Station where the case is registered Charge sheet of case FIR of the case

charge_sheet varchar(10000)

Table 4.6.5 nominal_roll

Description: This table is used to store the basic details of the prisoner Field ID prisoner_no prisoner_id case_regno date_of_entry status Type int(11) bigint(20) Constraints Description Primary Key Nominal id for the prison Not null Id of the prisoner in the prison

varchar(30) Foreign Key Chest No of the prisoner varchar(30) Foreign Key Case Register no of the prisoner date Not null Not null Entry date of the prisoner into the prison Release date of the prisoner Current status of the prisoner

date_of_leave date

varchar(30) Not null

Table 4.6.6 prisoner_diet Description: This table is used to store the diet of the prisoner Field prisoner_id days breakfast lunch evening supper Type int(11) Null Description Name of days Food for breakfast Food for lunch Food for evening Food for supper

Foreign Key Id of prison

varchar(15) Not null varchar(100) Not null varchar(100) Not null varchar(100) Not null varchar(100) Not null

Table 4.6.7 menu_change Description: This table is used to store the special diet details of the prisoner Field sl_no prison_id date breakfast lunch evening supper Type int(11) bigint(20) date varchar(100) varchar(100) varchar(100) varchar(100) Null Primary Key Foreign Key Null Null Null Null Null Description Serial No Id of prison Date in which the menu changes Food for breakfast Food for lunch Food for evening Food for supper

4.7 ANALYSIS TOOLS


System analysis is the process of collecting and interpreting facts, understanding problems and using the information to suggest improvements on the system. This will help to understand the existing system and determine how computers make its operation more effective.

4.7.1 USE CASE DIAGRAM


In software engineering, a use case diagram in the Unified Modeling Language(UML) is a type of behavioral diagram defined by and created from a Use-case analysis. Its purpose is to present a graphical overview of the functionality provided by a system in terms of actors, their goals, and any dependencies between those use cases. The main purpose of a use case diagram is to show what system functions are performed for which actor. Roles of the actors in the system can be depicted. The use case diagram shows the position or context of the use case among other use cases. As an organizing mechanism, a set of consistent, coherent use cases promotes a useful picture of system behavior, a common understanding between the customer/owner/user and the development team. Depicts of Use case diagrams are Use cases. A use case describes a sequence of actions that provide something of measurable value to an actor and is drawn as a horizontal ellipse. Actors. An actor is a person, organization, or external system that plays a role in one or more interactions with your system. Actors are drawn as stick figures. Associations. Associations between actors and use cases are indicated in use case diagrams by solid lines. An association exists whenever an actor is involved with an interaction described by a use case. Associations are modeled as lines connecting use cases and actors to one another, with an optional arrowhead on one end of the line. The arrowhead is often used to indicating the direction of the initial invocation of the relationship or to indicate the primary actor within the use case. The arrowheads are typically confused with data flow.

System boundary boxes (optional). You can draw a rectangle around the use cases, called the system boundary box, to indicate the scope of your system. Anything within the box represents functionality that is in scope and anything outside the box is not. System boundary boxes are rarely used, although on occasion I have used them to identify which use cases will be delivered in each major release of a system.

Packages (optional). Packages are UML constructs that enable you to organize model elements (such as use cases) into groups. Packages are depicted as file folders and can be used on any of the UML diagrams, including both use case diagrams and class diagrams. I use packages only when my diagrams become unwieldy, which generally implies they cannot be printed on a single page, to organize a large diagram into smaller ones.

Fig.4.7.1.1. Use case for Admin

Fig.4.7.1.2. Use case for Jail Admin

Fig.4.7.1.3. Use case for Police Officer

4.8 DATA FLOW DIAGRAMS (DFD)


A data flow diagram is a graphical technique that depicts information flow and transforms that are applied as data move from input to output. The DFD is also known as Data Flow Graph or Bubble Chart. The DFD is used to represent increasing information flow and functional details. Also DFD can be stated as the starting point of the design phase that functionally decomposes the requirements specifications down to the lowest level of detail. A Level 0 also called a fundamental system model or a context level DFD that represent the entire software elements as a single bubble with input and output data indicated by incoming and outgoing arrows, respectively. Additional process and information flow parts are represented in the next level, i.e., level 1 DFD. Each of the processes represented at level 1 are sub functions of overall system depicted in the context model. Any processes that are complex in level 1 will be further represented into

sub functions in the next level, i.e., level 2. Data flow diagram is a means of representing a system at any level of detail with a graphic network of symbols showing data flows, data stores, data processes and data sources. The purpose of data flow diagram is to provide a semantic bridge between users and system developers. The diagram is the basis of structured system analysis. A DFD describes what data flows rather than how they are processed, so it does not depend on hardware, software, data structure or file organization.

Components of Data Flow Diagram There are four symbols that are used in the drawing of Data Flow Diagrams:

Entities

External entities represent the sources of data that enter the system or the recipients of data that leave the system.

Process

Processes represent activities in which data is manipulated by being stored or retrieved or transformed in some way. A circle represents it. The process will show the data transformation or change.

Databases

Databases represent storage of data within the system.

Data Flow

A data flow shows the flow of information from its source to its destination. A line represents a data flow, with arrowheads showing the direction of flow.

` Fig.4.8.1 Level 1 DFD Police Officer

Fig.4.8.2 Level 1 DFD Jail Admin

Fig.4.8.3 Level 1 DFD Admin

Fig.4.8.4 Level 2 DFD Police Officer

Fig.4.8.5 Level 2 DFD Jail Admin

Fig.4.8.6 Level 2 DFD Admin

CHAPTER -5

SYSTEM TESTING
Software testing is a critical element of software quality assurance and represents the ultimate review of specification, design and coding. Testing includes verification of the basic logic of each program and verification that makes entire system works properly. Testing individual programs involves an attempt to be sure that the most likely path properly. Programmers facilitate testing by coding as clearly as possible. Test case design, on a set of techniques, for the creation of test cases will meet overall testing objectives. Testing objectives are: 1. Testing is a process of executing a program with the intent of finding an error. 2. A good test case is one that has high probability of finding an as yet uncovered error. 3. A successful test is one that uncovers an as yet undiscovered error. My objective is to design test cases that systematically uncover different classes of errors and to do so with a minimum amount of time and effort. Testing demonstrates, that software functions appear to be working according to specification that performance requires appear to have been met. In addition, data collected as testing is conducted provide a good indication of software reliability and some indication of software quality as a while. 5.1 UNIT TESTING Unit testing focuses on the verification of the smallest unit of software design, the module, using the detail design description guide; important control paths are tested to uncover errors within the boundary of the module. After source level code has been developed, retrieved and verified for correct syntax, unit test case design begins. Each test case should be coupled with a set of expected results. Unit testing is simplified when a module with high cohesion is designed. When a module addresses only one function, the number of test cases is reduced and errors can be easily predicted and uncovered.

The entire purpose of unit testing is to reduce the effort of integration testing. The effort to develop stubs to unit test high level modules might swamp the benefit gained by testing them in isolation. Although u might not unit test all modules, you must plan a modules test for each module. The plan is simply what data to provide to the module, and what test result is expected. The primary source for test case for a module test plan is the module itself. Some people refer to this as black box testing. After coding each dialog ahs tested and run individually. All unnecessary coded statements were removed and it was ensured that all the functionalitys worked as expected any logical errors found were corrected. 5.2

INTEGRATION TESTING
Integration testing is a systematic technique for constructing the program structure

while at the same time conducting tests to uncover errors associated with interfacing. I.e. integration testing is the complete testing of the set of modules which makes up the product using the previously unit tested modules and build a program structure that has been dictated by design as integration. As testing is conducted the tester should identify critical modules. Critical modules should be tested as early as possible. One approach is to wait until all the units have passed testing, and then combine them and then tested. This approach is evolved from unstructured testing of small programs. Another strategy is to construct the product in increments of tested units. A small set of modules are integrated together and tested, to which another module is added and tested in combination, and, so on. The advantages of this approach are that, interface dispense that can be easily found and corrected. Errors are localized to the new module and its intercommunications. The product development can be staggered, and modules integrated in as they complete unit testing. Testing is completed when the last module is integrated and tested. 5.3

ACCEPTANCE TESTING

The objective of the acceptance test was to tell the user about the validity and reliability of the system. It verified whether the system operated as specified and the integrity of important data was maintained. User motivation was very important for the successful performance of the system. All the modules were tested individually using both test data and live data. After each module was ascertained that it was working correctly and it had been integrated with the system. Again the system was tested as a whole. We hold the system tested with different type of users. The system design, data structures, DFDs procedures etc were documented so that the system can be easily maintained and upgraded by any computer professional at the later. Acceptance testing was done with live data provided by the client to ensure that the software works satisfactorily. Acceptance testing focused on the external behavior of the system. Data was entered and acceptance testing was performed. 5.4

SYSTEM TESTING
System testing is actually a series of different tests whose primary purpose is to

fully exercise the computer based system. Although each test has a different purpose, all work should verify that all system elements have been properly integrated and perform allocated functions. 5.5 VALIDATION TESTING At the culmination of integration testing, software is completely assembled as a package, interfacing errors have been uncovered and corrected, and validation testing may begin. Validation succeeds when the software functions in a manner that can be reasonably expected by the customer. Software validations are achieved through a series of black box tests that demonstrate conformity with requirements. A test plan outlines the classes of tests to be conducted and a test procedure defines specific test cases that will be used to demonstrate conformity with requirements. Both the plan and procedure are designed to ensure that all

functional requirements are satisfied, all performance requirements are achieved, documentation is correct and human engineered, and other requirements are met. After each validation test case has been conducted, one or two possible conditions are met. After each validation test case has been conducted, one or two possible conditions exist. First is that the function or performance characteristics confirm to specification and are accepted and the other condition is that a deviation from specifications is and a deficiency test is created. Deviation or error discovered at this sage in a project can rarely be corrected prior to scheduled completion. Once the application was made free of all logical and interface errors, validation testing was done by inputting dummy data to ensure that the software developed satisfies all the requirements of the user. A test case is a set of data that the system ill process as normal input. However, the data are created with the intent of determining whether the system will process them correctly.

CHAPTER -6 IMPLEMENTATION AND MAINTENANCE

6.1 IMPLEMENTATION
Implementation is the stage of the project where the theoretical design is tuned into a working system. At this stage, the main work load, the greatest upheaval and the major impact on the existing system shifts to the user department. If the implementation is not carefully planned and controlled, it can create confusion. Implementation includes all those activities that take place to convert from the existing system to the new system. The new system may be a totally new, replacing an existing manual or automated system or it maybe a modification to an existing system. Proper implementation is essential to provide a reliable system to meet organization requirements. The process of putting the developed system in actual use is called system implementation. This includes all those activities that take place to convert from the old system to the new system. The system can be implemented only after through testing is done and if it is found to be working according to the specifications. The system personnel check the feasibility of the system. The more complex the system being implemented, the more involved will be the system analysis and design effort required to implement the three main aspects: education and training, system testing and changeover. The implementation state involves the following tasks: Careful planning. Investigation of system and constraints. Design of methods to achieve the changeover. Training of the staff in the changeover phase. Evaluation of the changeover method. The method of implementation and the time scale to be adopted are found out initially. Next the system is tested properly and the users are trained in the new procedures. Steps in implementation

Implementation of software refers to the final installation of the package in its real environment, to the satisfaction of the intended users and the operation of the system. In many organizations someone who will not be operating it, will commission the software development project. In the initial stage, people doubt about the software but we have to ensure that the resistance does not build up, as one has to make sure that, The active user must be aware of the benefits of using the new system. Their confidence in the software is built up. Proper guidance is imparted to the user so that he is comfortable in using the application. Before going ahead and viewing the system, the user must know that for viewing the result, the server program should be running in the server. If the server object is not running up on the server, the actual process wont take place. Implementation Plan The implementation of the system involves people from different departments, in effective control of implementation results in the failure of the system. The use of the committee for carrying out the implementation function may prove useful. Education and Training on the Application Software To achieve the benefits, an objective expected from computer based system, it is essential for the user to be involved with the system. If the system becomes more complex the need for education and training is more and more important. Adequate training was given to the staff at main office, regarding the use of the system, and a one day technical meet was held at the main office for all technical heads of all franchisees. The methods to be followed were taught to them for clients side. The students who are the end users of the software need not be trained because the software is very user friendly and anyone can easily handle it, by reading the instruction given, and follow it correctly. It should then cover information needed by the specific user/group to use the system or part of the system while imparting the training of the

program on the application. This training may be different across different user groups and across different levels of hierarchy. This will give the underlying philosophy of the user of the new system such as the screen flow, screen design type of help on the screen, type of errors while entering the data, the corresponding validation check at each entry and the ways to correct the data entered. Parallel Conversion In parallel conversion the existing system and new system operate simultaneously until the project team is confident that new system is working properly. The outputs from the old system continue to be distributed until the new system has proved satisfactorily. Parallel conversion is a costly method because of the amount of duplication. Direct Conversion Under direct conversion method the old system is disconnected altogether and new system becomes operational immediately. A greater risk is associated with direct

conversion is no back up in the case of system fails. Pilot Conversion A pilot would involve the changing over of the part of the system either parallel or directly. Use of the variation of the two main methods is possible when part of the system can be treated as a separate entity. Maintenance is the enigma of system development. The maintenance phase of the software cycle is the time in which a software product performs useful work. After a system is successfully implemented, it should be maintained in a proper manner. System maintenance is an important aspect in the software development life cycle. The need for system maintenance is for it to make adaptable to the changes in the system environment. Software maintenance is of course, far more than finding mistakes.

6.2 MAINTENANCE
The term maintenance is used to describe the software engineering activities that occur following the delivery of a software product to the customer. The maintenance phase of the software lifecycle is the time period in which software performs useful work. We may define maintenance by describing four activities that are undertaken after a program is released for use. During the use of any large program, errors will occur and be reported to the developer. The process that includes the diagnosis and correction of one or more error is called corrective maintenance. Thus problem correction involves modification and revalidation of software to corrective maintenance. The second activity that contributes to a definition of maintenance occurs because of the rapid change that is encountered in every aspect of computing. An activity that modifies software to properly interface with a changing environment is adaptive maintenance. The third activity occurs when a software package is successful. As software is used recommendations for new capabilities, modifications to existing function and general enhancements are received from users. To satisfy request in this category, perfective maintenance is performed. The fourth and last maintenance activity occurs when software is changed to improve future maintainability or reliability or to provide activities including correcting, coding and design, updating, documentation and test data and upgrading user support. Maintenance means restoring something to its original conditions. In contrast, enhancements mean adding or modifying or re execution.

CHAPTER -7

CONCLUSION AND FUTURE ENHANCEMENT


7.1 CONCLUSION

APPENDIX-A / SCREEN SHOTS

Fig A.1 Login Page

Fig A.2 Admin Home Page

Fig A.3 User Registration Page

Fig A.4 Jailer Home Page

Fig A.5 Prisoner Registration Page

APPENDIX-B SAMPLE CODE

// login page
<?p hp session_start(); include("../database/dbconnect.php"); $sql="SELECT * FROM `user` WHERE `username` like '$_POST[pupilname]' AND `password`=md5('$_POST[pupilpass]')"; //echo $sql; $resset=mysql_query($sql,$con); //echo $res; if($res=mysql_fetch_array($resset)) { //echo $res['username']; $_SESSION['user']=$res['username']; $_SESSION['role']=$res['role']; unset($_SESSION['login_failed']); if($_SESSION['role']=="Jailer"){ // $sql="SELECT `prison_id` as jail FROM `prison_staff` WHERE `staff_id`='jailer' and `status`='joined' order by `date_of_ joining` desc limit 1"; $sql="SELECT `prison_id` as jail FROM `staff_details` WHERE `mail_id`='$_POST[pupilname]' and `status`='joined'"; //echo $sql; $resset=mysql_query($sql,$con); $res=mysql_fetch_array($resset); $_SESSION['user_jail']=$res['jail']; } $_SESSION['message']="Successfully Login"; ?> <meta http-equiv="Refresh" content="0;url=../"> <?php } else { $_SESSION['message']="Check Your Username or Password"; $_SESSION['login_failed']=true;

?> <meta http-equiv="refresh" content="0;url=../"> <?php } ?>

You might also like