CHAPTER 2
SOFTWARE REQUIREMENTS ANALYSIS
2.1. Comparison of Existing Systems
Many organizations do not have competitive personnel and this negatively affects the
productivity and image of the organization. In addition, there is no effective structure to recruit
staff that is able to stand up to the responsibility of their duties. Many organizations still adopt
the manual method of recruiting and the applicants are limited to those in their immediate
environment. Organizations are unable to reach out to a wide spectrum of applicants so as to be
able to recruit the best employees. The traditional examination for recruitment is usually
characterized by cheating which hampers the credibility of recruited employees. There is need
for a more effective system that is able to reach out to a wider spectrum of employees and
thereby promoting the recruitment of well qualified staff.
2.2. PROJECT REQUIREMENTS SPECIFICATION
      Processor                      - AMD PRO
      Hard disk capacity             - 500 GB
      Internal memory capacity       - 4 GB
      Keyboard                       - STANDARD KEYBOARD
      Cpu clock                      - 1.08 GHz
      System Type                    - 64 bit Operating System
SOFTWARE REQUIREMENTS
      Operating system               - Windows10
      Front end                      - PHP
      Database                       - MYSQL
Front End (PHP)
       PHP started out as a small open source project that evolved as more and more people
found out how useful it was. Rasmus Lerdorf unleashed the first version of PHP way back in
1994.PHP is a recursive acronym for "PHP: Hypertext Preprocessor". PHP is a server side
scripting language that is embedded in HTML. It is used to manage dynamic content, databases,
session tracking, even build entire ecommerce sites. It is integrated with a number of popular
databases, including MySQL, PostgreSQL, Oracle, Sybase, Informix, and Microsoft SQL Server.
PHP is pleasingly zippy in its execution, especially when compiled as an Apache module on the
UNIX side. The MySQL server, once started, executes even very complex queries with huge
result sets in record-setting time. PHP supports a large number of major protocols such as POP3,
IMAP, and LDAP. PHP4 added support for Java and distributed object architectures (COM and
CORBA), making n-tier development a possibility for the first time. PHP is forgiving: PHP
language tries to be as forgiving as possible. PHP Syntax is C-Like.
Common Uses of PHP
    PHP performs system functions, i.e. from files on a system it can create, open, read, write
       and close them. The other uses of PHP are:
    PHP can handle forms, i.e. gather data from files, save data to a file, thru email you can
       send data, return data to the user. You add, delete and modify elements within your
       database thru PHP. Access cookies variables and set cookies. Using PHP, you can restrict
       users to access some pages of your website. It can encrypt data.
Characteristics of PHP
Five important characteristics make PHP's practical nature possible:
            Simplicity
           Efficiency
           Security
           Flexibility
           Familiarity
PHP Variables
       The main way to store information in the middle of a PHP program is by using a variable.
Here are the most important things to know about variables in PHP.
    All variables in PHP are denoted with a leading dollar sign ($).
    The value of a variable is the value of its most recent assignment.
    Variables are assigned with the = operator, with the variable on the left-hand side and the
       expression to be evaluated on the right.
    Variables can, but do not need, to be declared before assignment.
    Variables in PHP do not have intrinsic types - a variable does not know in advance
       whether it will be used to store a number or a string of characters.
    Variables used before they are assigned have default values.
    PHP does a good job of automatically converting types from one to another when
       necessary.
    PHP variables are Perl-like. PHP has a total of eight data types which we use to construct
       our variables:
           Integers: are whole numbers, without a decimal point, like 4195.
           Doubles: are floating-point numbers, like 3.14159 or 49.1.
           Booleans: have only two possible values either true or false.
           NULL: is a special type that only has one value: NULL.
           Strings: are sequences of characters, like 'PHP supports string operations.'
           Arrays: are named and indexed collections of other values.
           Objects: are instances of programmer-defined classes, which can package up
              both other kinds of values and functions that are specific to the class.
           Resources: are special variables that hold references to resources external to PHP
              (such as database connections).
Backend (MySQL)
       MySQL is the world's most used open source relational database management system
(RDBMS) as of 2008 that run as a server providing multi-user access to a number of databases.
The MySQL development project has made its source code available under the terms of the
GNU General Public License, as well as under a variety of proprietary agreements. MySQL was
owned and sponsored by a single for-profit firm, the Swedish company MySQL AB, now owned
by Oracle Corporation.
       MySQL is a popular choice of database for use in web applications, and is a central
component of the widely used LAMP open source web application software stack—LAMP is an
acronym for "Linux, Apache, MySQL, Perl/PHP/Python." Free-software-open source projects
that require a full-featured database management system often use MySQL.
       For commercial use, several paid editions are available, and offer additional functionality.
Applications which use MySQL databases include: TYPO3, Joomla, Word Press, phpBB,
MyBB, Drupal and other software built on the LAMP software stack. MySQL is also used in
many high-profile, large-scale World Wide Web products, including Wikipedia, Google (though
not for searches), Imagebook, Twitter, Flickr, Nokia.com, and YouTube.
Inter images
       MySQL is primarily an RDBMS and ships with no GUI tools to administer MySQL
databases or manage data contained within the databases. Users may use the included command
line tools, or use MySQL "front-ends", desktop software and web applications that create and
manage MySQL databases, build database structures, back up data, inspect status, and work with
data records. The official set of MySQL front-end tools, MySQL Workbench is actively
developed by Oracle, and is freely available for use.
Graphical
The official MySQL Workbench is a free integrated environment developed by MySQL AB,
which enables users to graphically administer MySQL databases and visually design database
structures. MySQL Workbench replaces the previous package of software, MySQL GUI Tools.
Similar to other third-party packages, but still considered the authoritative MySQL frontend,
MySQL Workbench lets users manage database design & modeling, SQL development
(replacing MySQL Query Browser) and Database administration (replacing MySQL
Administrator).MySQL Workbench is available in two editions, the regular free and open source
Community Edition which may be downloaded from the MySQL website, and the proprietary
Standard Edition which extends and improves the feature set of the Community Edition.
Command line
        MySQL ships with some command line tools. Third-parties have also developed tools to
manage a MySQL server, some listed below. Maatkit - a cross-platform toolkit for MySQL,
PostgreSQL and Memcached, developed in Perl Maatkit can be used to prove replication is
working correctly, fix corrupted data, automate repetitive tasks, and speed up servers. Maatkit is
included with several GNU/Linux distributions such as CentOS and Debian and packages are
available for Programming. MySQL works on many different system platforms, including AIX,
BSDi, FreeBSD, HP-UX, eComStation, i5/OS, IRIX, Linux, Mac OS X, Microsoft Windows,
NetBSD, Novell NetWare, OpenBSD, OpenSolaris, OS/2 Warp, QNX, Solaris, Symbian,
SunOS, SCO Open Server, SCO UnixWare, Sanos and Tru64. A port of MySQL to OpenVMS
also exists.
        MySQL is written in C and C++. Its SQL parser is written in yacc, and a home-brewed
lexical analyzer. Many programming languages with language-specific APIs include libraries for
accessing MySQL databases. These include MySQL Connector/Net for integration with
Microsoft's Visual Studio (languages such as C# and VB are most commonly used) and the
JDBC driver for Java. In addition, an ODBC interim age called MyODBCallows additional
programming languages that support the ODBC inter image to communicate with a MySQL
database, such as ASP or ColdFusion. The HTSQL - URL-based query method also ships with a
MySQL adapter, allowing direct interaction between a MySQL database and any web client via
structured URLs.
Features
    As of April 2009, MySQL offered MySQL 5.1 in two different variants: the open source
MySQL Community Server and the commercial Enterprise Server. MySQL 5.5 is offered under
the same licenses. They have a common code base and include the following features:
        A broad subset of ANSI SQL 99, as well as extensions
        Cross-platform support
        Stored procedures
        Triggers
        Cursors
        Updatable Views
        Information schema
        Strict mode (ensures MySQL does not truncate or otherwise modify data to conform to an
underlying data type, when an incompatible value is inserted into that type)
        X/Open XAdistributed transaction processing (DTP) support; two phase commit as part
of this, using Oracle's InnoDB engine
        Transactions with the InnoDB, and Cluster storage engines
        SSL support
        Query caching
        Sub-SELECTs (i.e. nested SELECTs)
        Replication support (i.e. Master-Master Replication & Master-Slave Replication) with
one master per slave, many slaves per master, no automatic support for multiple masters per
slave.
        Full-text indexing and searching using MyISAM engine
        Embedded database library
        Partitioned tables with pruning of partitions in optimizer
        Shared-nothing clustering through MySQL Cluster
        Hot backup (via mysqlhotcopy) under certain conditions
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, EXAMPLE, Maria, and
InnoDB, which was made the default as of 5.5). Partner - developed storage engines (solidDB,
NitroEDB, ScaleDB, TokuDB, Infobright (formerly Brighthouse), Kickfire, XtraDB, IBM DB2).
InnoDB used to be a partner-developed storage engine, but with recent acquisitions, Oracle now
owns both MySQL core and InnoDB.