Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 55

ACKNOWLEDGEMENT

I would like to express our gratitude towards our mentor Mr.


Ankit Agrawal for exposing me to this topic and moreover for
being the guiding light all this while. Furthermore, I would like
to thank other teachers for their valuable suggestions for
presenting me with this golden opportunity of making
this project. Finally, I would like to thank my friends for
being the constant support system and encouraging force all this
while.
ABSTRACT
Chatting is a method of using technology to bring people and
ideas together despite of the geographical barriers. The
technology has been available for years but the acceptance was
quite recent. Our project is an example of a chat server. Itis
made up of two applications -
the client application, which runs on the user’s
web browser and server application, runs on any hosting servers
on the network. To start chatting client should get connected to
server where they can do private and group chat.
TABLE OF CONTENTS

I. Acknowledgement
II. Abstract
1. Introduction of the project: -
1.1 Introduction
1.2 Purpose
1.3 Scope
1.4 Overview
1.5 Goals of Proposed System
1.6 Background
1.7 Project Requirements
1.8 Technologies Used
1.9 User Characteristics
1.10 Constraints

2. Feasibility Study
2.1 Technical Feasibility
2.2 Economical Feasibility
2.3 Operational Feasibility
2.4 Schedule Feasibility

3. System Analysis
3.1 Working of Present System
3.2 Disadvantages of Present System
3.3 Proposed System
3.4 Architectural Design
3.5 E-R Diagram
3.6 Data Flow Diagram
3.7 Use Case Model
3.8 Class Diagram

4.Specific Requirements
4.1 System requirement
4.1.1 Software requirement
4.1.2 Hardware requirement
4.2 maintenance

4.3.5Activity diagram
4.3.6Entity relationship diagram
5.Data Analysis
5.1 Data flow diagram
5.2 Data Dictionary
6 Software Design
6.1 Software Engineering
7. Software product attributes-
7.1 Advantages
7.2 Flexibility
7.3 Security
8. Software Testing
8.1 Testing
8.2 Types of software testing
8.2.1 Manual testing
8.2.2 black box testing
8.2.3 white box testing
8.2.4 Gray box testing
8.2.5 Alpha testing
9. Testing & modification
9.1 Implementation
9.2 Maintenance
10. Cost Estimation of project
11. Future work
11.1 Registration for new member
11.2 Login Features
11.3 Private Chatting
11.4 Adding Friend
11.5 Chat Forms
11.6 Block Friend
12. Introduction of PHP
12.2 What can PHP do
12.3 PHP Installation
12.4 Why PHP use
12.5 PHP Feature
12.6 What is MySQL?
13. conclusion

1.INTRODUCTION OF THE PROJECT


TITLE OF THE PROJECT

“Chat Application”
1.1 Introduction of chat application

A chat application is a software platform designed to facilitate


real-time communication between users over the internet.
CHATY is a social-networking tool that leverages on
technology advancement thereby allowing its users
communicate and share media.

It offers a wonderful one stop shop experience for keeping in


touch with people you know. It can be used for messaging,
placing voice messages, making voice and video calls, share
updates and photos, share locations, enhance local socializing in
pidgin English, play games and make monetary financial
transactions.

It allows individuals to exchange text-based messages,


multimedia files, and sometimes even voice or video calls
instantly, regardless of geographical distances. Chat applications
are popular for both personal and professional use, offering
features such as group chats, file sharing, emoticons, and
encryption for enhanced privacy and security. With the advent
of mobile technology, chat applications have become
indispensable tools for staying connected in today's fast-paced
digital world.
3.1.1 Chat interface

Chat UI (User Interface) is the design and layout for a chat


application. These applications range from peer-to-peer
messaging like WhatsApp and Slack to web chat (live chat)
between company representatives and users, like Intercom and
Zen desk.

Peer-to-peer chat has also come a long way. People use apps like
WhatsApp, Slack, Facebook Messenger, and social media DMs
for personal and professional conversations, including video
calling and the ability to send images, documents, videos, and
other attachments.
The chat interface primarily consists of two segments: the
message header and the chat box. We can further subdivide
these sections.

Message-Header- The message header resides at the top of the


chat box. It includes the user's name, avatar or profile image,
and the user's last seen. Last seen is the last time the user was
active.

The Chat-Box- The chat box consists of the message page and
the message bottom sections.

Message page-The message page consists of incoming and


outgoing messages, as well as the avatars of the senders. It also
displays the time at which each message is sent.

The Message-Bottom-This section contains an input field


where the user can type in the messages and a send button to
send them.
1.2 Objectives
It enables you to send and receive messages. Chatting apps
make it easier, simpler, and faster to connect with everyone and
it is also easy to use. There are many types of chatting apps and
everyone has its own format, design, and functions.
 Easy login – in this app, we only need to add our name and
then the system will provide us an IP address, which will be
used only by the user under whose name it is registered.
 Open source – people which are interested to talk about a
topic which they like and people which are interested in it,
can join and communicate with others easily, as the chat is
open sourced; which means people can join and easily
leave the chat room.

 Connects people globally – as the application runs through


help of internet, it helps in connecting people easily. Not
only from a particular country, but it can connect people all
over the world.

 Different from normal chatting apps – I discuss chat app


being bit different from normal chatting applications, can
attract people easily. Not only because it takes less logging
time, but also because it has some features which are not
available in current chatting applications.

 Use of IP address – IP address is provided to the user,


after logging into the application. IP address provided to
the user is unique, as they can only be used by the user,
which is assigned to it. This saves duplication of
information of user, which may have same name.

1.3 Achievement

The chat application is built using react is deployed using chat


engine ape, and hosted on notify. The main aspect is where one
user can can send text, images from one end and the other
receives the same from their end.
Also user can create a chat group, add any number of people to
their wish and share the text, images apparently the other
members of the group receives the same in the chat room.

1.4 Project overview

The functionality of the chat application is to give the ability to


chat with whoever Is online on the application. The users will be
in a small group they can communicate with each other
individually or as a group. One of the main features we
appreciate the most is messaging.

Staying in touch with friends and family was never so easy and
seamless . a message is sent, ends up in the backend a server,
then gets sent to the addressee’s device Anyone can Sign up in
the app the users can update the status, profile pic in the settings
activity

. Functionalities of Chatting App:

 Registration and logging in


 Profile customization
 Messaging in various ways
 Deleting messages
 Life term storage of messages
 Status update

1.5 Purpose

A messaging application is a mobile-phone-based software


programmer that allows users to send and receive information
using their phone's internet connection.
Chatting app allows you to communicate with your customers
in web chat rooms. It enables you to send and receive messages.
Chatting apps make it easier, simpler, and faster to connect with
everyone and it is also easy to use.
The purpose of this chat application is to allow users be able to
the chat with each other like a normal chat application. This chat
application will be written in php, html & css.
4.Specific Requirements

4.1 System requirement

4.1.1 Software requirement

 Operating system: Window 10 or above.


 Client side scripting: Html, CSS, JavaScript.
 Tool: Visual studio.
 Database tool: MySQL.
 Server side scripting: PHP

4.1.2 Hardware requirement

 System:
 Hard Disk:
 Monitor:
 Input Devices:
 Ram:
4.2use case diagram

In UML, use-case diagrams model the behavior of a system and


help to capture the requirements of the system.
Use-case diagrams describe the high-level functions and scope
of a system. These diagrams also identify the interactions
between the system and its actors. The use cases and actors in
use-case diagrams describe what the system does and how the
actors use it, but not how the system operates internally.
Use-case diagrams illustrate and define the context and
requirements of either an entire system or the important parts of
the system. You can model a complex system with a single use-
case diagram, or create many use-case diagrams to model the
components of the system. You would typically develop use-
case diagrams in the early phases of a project and refer to them
throughout the development process.

Use-case diagrams are helpful in the following


situations:
 Before starting a project, you can create use-case diagrams
to model a business so that all participants in the project
share an understanding of the workers, customers, and
activities of the business.
 While gathering requirements, you can create use-case
diagrams to capture the system requirements and to present
to others what the system should do.
.

4.3Authentication system
Use case diagram for authentication system

4.3.1chat form

Use case diagram of chat form

4.3.2 contacts form


Use case diagram of contacts form

4.3.3 maintenance

Use case diagram of maintenance

4.3.4 monitor
Use case diagram of monitor

4.3.5Activity diagram

Activity diagram for multi user chat application


4.3.6Entity relationship diagram

Diagram ofEntity relationship

5 Data Analysis
5.1DFD(Data Flow Diagram)

DFD is the abbreviation for Data Flow Diagram. The flow of


data of a system or a process is represented by DFD. It also
gives insight into the inputs and outputs of each entity and the
process itself. DFD does not have control flow and no loops or
decision rules are present. Specific operations depending on the
type of data can be explained by a flowchart. It is a graphical
tool, useful for communicating with users ,managers and other
personnel. it is useful for analyzing existing as well as proposed
system.

It provides an overview of

 What data is system processes.


 What transformation are performed.
 What data are stored.
 What results are produced , etc.

Components of DFD

The Data Flow Diagram has 4 components:


 Process: Input to output transformation in a system takes

place because of process function. The symbols of a process


are rectangular with rounded corners, oval, rectangle or a
circle. The process is named a short sentence, in one word or
a phrase to express its essence
 Data Flow: Data flow describes the information
transferring between different parts of the systems. The
arrow symbol is the symbol of data flow. A relatable name
should be given to the flow to determine the information
which is being moved. Data flow also represents material
along with information that is being moved. Material shifts
are modeled in systems thatare not merely informative. A
given flow should only transfer a single type of information.
The direction of flow is represented by the arrow which can
also be bi-directional.

 Warehouse: The data is stored in the warehouse for later


use. Two horizontal lines represent the symbol of the store.
The warehouse is simply not restricted to being a data file
rather it can be anything like a folder with documents, an
optical disc, a filing cabinet. The data warehouse can be
viewed independent of its implementation. When the data
flow from the warehouse it is considered as data reading and
when data flows to the warehouse it is called data entry or
data updating.

 Terminator: The Terminator is an external entity that


stands outside of the system and communicates with the
system. It can be, for example, organizations like banks,
groups of people like customers or different departments of
the same organization, which is not a part of the model
system and is an external entity. Modeled systems also
communicate with terminator.
DFD Flow Chart

DFD(Level 1)
5.2Data Dictionary
Data Dictionary is the major component in the structured
analysis model of the system. It lists all the data items
appearing in DFD. A data dictionary in Software Engineering
means a file or a set of files that includes a database’s metadata
(hold records about other objects in the database), like data
ownership, relationships of the data to another object, and some
other data.

Example a data dictionary entry: Gross Pay = regular pay +


overtime pay
Case Tools is used to maintain data dictionary as it captures the
data items appearing in a DFD automatically to generate the
data dictionary.
Components of Data Dictionary

 Name of the item: It can be your choice.


 Aliases: It represents another name.
 Description: Description of what the actual text is all
about.
 Related data items: with other data items.
 Range of values: It will represent all possible answers.

Data Dictionary Notations tables :


The Notations used within the data dictionary are given in the
table below as follows:
Notations Meaning

X = a+b X consists data elements a and b.

X = [a/b] X consists of either elements a or b.

X=aX X consists of optimal data elements a.

X = y[a] X consists of y or more events of data element a

X = [a] z X consists of z or less events of data element a


Notations Meaning

X = y [a] X consists of some events of data elements


z between y and z.

6 Software Design

6.1Software Engineering
What is the Spiral Model ?

The Spiral Model is a Software Development Life Cycle


(SDLC) model that provides a systematic and iterative approach
to software development. In its diagrammatic representation,
looks like a spiral with many loops. The exact number of loops
of the spiral is unknown and can vary from project to project.
Each loop of the spiral is called a Phase of the software
development process.

1. The exact number of phases needed to develop the product


can be varied by the project manager depending upon the
project risks.
2. As the project manager dynamically determines the number of
phases, the project manager has an important role in
developing a product using the spiral model.
3. It is based on the idea of a spiral, with each iteration of the
spiral representing a complete software development cycle,
from requirements gathering and analysis to design,
implementation, testing, and maintenance.

What are the Phases of Spiral Model ?


The Spiral Model is a risk-driven model, meaning that the focus
is on managing risk through multiple iterations of the software
development process. It consists of the following phases:

1. Planning

The first phase of the Spiral Model is the planning phase, where
the scope of the project is determined and a plan is created for
the next iteration of the spiral.

2. Risk Analysis

In the risk analysis phase, the risks associated with the project
are identified and evaluated.

3. Engineering

In the engineering phase, the software is developed based on the


requirements gathered in the previous iteration.
4. Evaluation
In the evaluation phase, the software is evaluated to determine if
it meets the customer’s requirements and if it is of high quality.

5. Planning
The next iteration of the spiral begins with a new planning
phase, based on the results of the evaluation.
The Spiral Model is often used for complex and large software
development projects, as it allows for a more flexible and
adaptable approach to software development. It is also well-
suited to projects with significant uncertainty or high levels of
risk.
The Radius of the spiral at any point represents the
expenses(cost) of the project so far, and the angular dimension
represents the progress made so far in the current phase.
diagram of maintenance spiral model

Spiral Model

Each phase of the Spiral Model is divided into four quadrants


as shown in the above figure. The functions of these four
quadrants are discussed below:
1. Objectives determination and identify
alternative solutions: Requirements are gathered from
the customers and the objectives are identified, elaborated,
and analyzed at the start of every phase. Then alternative
solutions possible for the phase are proposed in this
quadrant.
2. Identify and resolve Risks: During the second
quadrant, all the possible solutions are evaluated to select the
best possible solution. Then the risks associated with that
solution are identified and the risks are resolved using the
best possible strategy. At the end of this quadrant, the
Prototype is built for the best possible solution.

3. Develop the next version of the Product : During


the third quadrant, the identified features are developed and
verified through testing. At the end of the third quadrant, the
next version of the software is available.

4. Review and plan for the next Phase : In the fourth


quadrant, the Customers evaluate the so-far developed
version of the software. In the end, planning for the next
phase is started.
7 Software Product Attributes

7.1Advantages
A chat application makes it easy to communicate with people
anywhere in the world by sending and receiving messages in
real time. With a web or mobile chat app, users are able to
receive the same engaging and lively interactions through
custom messaging features, just as they would in person. This
also keeps users conversing on your platform instead of looking
elsewhere for a messaging solution. Whether it’s private chat,
group chat, or large-scale chat, adding personalized chat features
to your app can help ensure that your users have a memorable
experience.

6.2 Flexibility
The flexibility of a chat application refers to its ability to adapt
to various user needs and scenarios. This includes customizable
features, ease of integration with other platforms, and support
for different types of content like text, images, and files.
Additionally, flexibility involves scalability to accommodate
varying user loads and the ability to implement updates or new
functionalities seamlessly.

6.3 Security
Chat application security is crucial to protect user data and
maintain privacy. Secure chat apps typically employ end-to-end
encryption, ensuring that only the intended recipients can access
the messages. Other security measures include secure login
methods, protection against common vulnerabilities like SQL
injection, and regular security audits to identify and address
potential threats. Additionally, user authentication, secure data
storage, and compliance with industry standards contribute to a
robust security framework for a chat application.

7 Software Testing
7.1 What is Testing ?
Software testing can be stated as the process of verifying and
validating whether a software or application is bug-free, meets
the technical requirements as guided by its design and
development, and meets the user requirements effectively and
efficiently by handling all the exceptional and boundary
cases. The process of software testing aims not only at finding
faults in the existing software but also at finding measures to
improve the software in terms of efficiency, accuracy, and
usability.

Software Testing is a method to assess the functionality of the


software program. The process checks whether the actual
software matches the expected requirements and ensures the
software is bug-free. The purpose of software testing is to
identify the errors, faults, or missing requirements in contrast to
actual requirements. It mainly aims at measuring the
specification, functionality, and performance of a software
program or application.

Software testing can be divided into two steps:

1. Verification: It refers to the set of tasks that ensure that the


software correctly implements a specific function. It means
“Are we building the product right?”.

2. Validation: It refers to a different set of tasks that ensure


that the software that has been built is traceable to customer
requirements. It means “Are we building the right product?”.

7.2 Types of Software Testing

7.2.1 Manual Testing

Manual Testing includes testing software manually, i.e.,


without using any automation tool or script. In this type, the
tester takes over the role of an end-user and tests the software
to identify any unexpected behavior or bug. There are different
stages for manual testing such as unit testing, integration
testing, system testing, and user acceptance testing. Testers use
test plans, test cases, or test scenarios to test software to ensure
the completeness of testing. Manual testing also includes
exploratory testing, as testers explore the software to identify
errors in it.

7.2.2 Black Box Testing


Black box testing is a technique of software testing which
examines the functionality of software without peering into its
internal structure or coding. The primary source of black box
testing is a specification of requirements that is stated by the
customer.
In this method, tester selects a function and gives input value to
examine its functionality, and checks whether the function is
giving expected output or not. If the function produces correct
output, then it is passed in testing, otherwise failed. The test
team reports the result to the development team and then tests
the next function. After completing testing of all functions if
there are severe problems, then it is given back to the
development team for correction.

7.2.3 White Box Testing


Black box testing is a technique of software testing which
examines the functionality of software without peering into its
internal structure or coding. The primary source of black box
testing is a specification of requirements that is stated by the
customer.
In this method, tester selects a function and gives input value to
examine its functionality, and checks whether the function is
giving expected output or not. If the function produces correct
output, then it is passed in testing, otherwise failed. The test
team reports the result to the development team and then tests
the next function. After completing testing of all functions if
there are severe problems, then it is given back to the
development team for correction.
7.2.4 Gray Box Testing
Greybox testing is a software testing method to test the software
application with partial knowledge of the internal working
structure. It is a combination of black box and white box
testing because it involves access to internal coding to design
test cases as white box testing and testing practices are done at
functionality level as black box testing.
GreyBox testing commonly identifies context-specific errors
that belong to web systems. For example; while testing, if tester
encounters any defect then he makes changes in code to resolve
the defect and then test it again in real time. It concentrates on
all the layers of any complex software system to increase testing
coverage. It gives the ability to test both presentation layer as
well as internal coding structure. It is primarily used in
integration testing and penetration testing.

7.2.5 Alpha Testing


Alpha Testing is a type of software testing performed to
identify bugs before releasing the product to real users or to the
public. Alpha Testing is one of the user acceptance testing.
This is referred to as alpha testing only because it is done early
on, near the end of the development of the software. Alpha
testing is commonly performed by homestead software
engineers or quality assurance staff. It is the last testing stage
before the software is released into the real world.

1. Alpha testing is a software testing stage that takes place early


in the development process, typically after the code has been
written and before the final product is released to the public.
Alpha testing is performed by a select group of internal
stakeholders, such as developers, testers, and members of the
product team.
2. The purpose of alpha testing is to identify and resolve critical
bugs and issues in the software before it is released to the
public. Alpha testing is performed in a controlled
environment, such as a lab or a test network, and is used to
simulate real-world use cases and identify any potential
problems.
3. During alpha testing, the software is evaluated against a set
of predetermined acceptance criteria and is tested for
functionality, usability, performance, and stability. Alpha
testing provides an opportunity to identify and fix bugs and
issues before they reach end-users, ensuring that the final
product is of high quality and meets the needs of the target
audience.

8 Testing and Modification


8.1 Implementation
Implementing a chat application involves
several steps:

1. Choose a Platform: Decide whether it will be a web-


based, mobile, or desktop application.

2. Design the User Interface (UI):Create wireframes and


design the layout of your chat application.

3. Select a Technology Stack: Choose programming


languages, frameworks, and libraries based on your project
requirements. Popular choices include React.js, Angular, Vue.js
for frontend, and Node.js, Django, Flask for backend.

4. Develop Backend: Implement server-side logic for user


authentication, message handling, and database management.
Use technologies like Web Socket for real-time communication.

5. Develop Frontend: Create the client-side interface for


users to interact with the application. Implement features like
sending messages, displaying conversations, and user
authentication.
6. Implement Real-time Communication: Integrate real-
time communication protocols like Web Socket or Socket.io to
enable instant messaging between users.

7. User Authentication: Implement user authentication and


authorization mechanisms to ensure secure access to the chat
application.

8. Database Integration: Set up a database to store user


profiles, messages, and other relevant data. Common choices
include MySQL, PostgreSQL, MongoDB.

9. Testing: Perform unit testing, integration testing, and user


acceptance testing to ensure the application works as expected
across different devices and browsers.

10. Deployment: Deploy the application to a server or cloud


platform like AWS, Azure, or Hurok.

11. Continuous Improvement: Gather user feedback and


make iterative improvements to enhance the functionality and
user experience of the chat application.
12. Testing: Perform unit testing, integration testing, and user
acceptance testing to ensure the application works as expected
across different devices and browsers.

13. Deployment: Deploy the application to a server or cloud


platform like AWS, Azure, or Hurok.

14. Continuous Improvement: Gather user feedback and


make iterative improvements to enhance the functionality and
user experience of the chat application.

8.2 Maintenance
Maintaining a chat application involves several key tasks
such as:

Bug Fixing: Continuously identifying and fixing any issues


or bugs that arise in the application to ensure smooth
functionality.
Feature Updates: Adding new features and improvements
based on user feedback and market trends to enhance user
experience and stay competitive.

Security Patches: Regularly updating the application to


address any security vulnerabilities and protect user data from
potential threats.

Performance Optimization: Optimizing the performance


of the application to ensure fast response times and smooth user
interactions, especially as user base and data volume grow.

Server Maintenance: Monitoring and maintaining the


server infrastructure to ensure uptime, scalability, and reliability
of the chat service.

Data Backup and Recovery: Implementing regular data


backups and establishing protocols for disaster recovery to
prevent data loss in case of unforeseen events.

Compliance Updates: Staying up-to-date with relevant


regulations such as GDPR or CCPA and ensuring that the chat
application complies with data protection and privacy laws.
User Support: Providing timely support to users, addressing
their inquiries, troubleshooting issues, and offering guidance on
how to use the application effectively.

Performance Monitoring: Monitoring application


performance metrics, analyzing user feedback, and conducting
regular reviews to identify areas for improvement.

Continuous Testing: Conducting regular testing, including unit


testing, integration testing, and user acceptance testing, to
maintain the quality and reliability of the application.

By diligently performing these tasks, you can ensure that the


chat application remains functional, secure, and user-friendly
over time.

9. Cost Estimation of Project

Cost estimation in project management is the process of


forecasting the financial and other resources needed to complete
a project within a defined scope. Cost estimation accounts for
each element required for the project — from materials to labor
— and calculates a total amount that determines a project’s
budget.
An initial cost estimate can determine whether an organization
greenlights a project. If the project moves forward, the estimate
can be a factor in defining the project’s scope. If the cost
estimation comes in too high, an organization may decide to
pare down the project to fit what they can afford (it is also
required to begin securing funding for the project). Once the
project is in motion, the cost estimate is used to manage all of its
affiliated costs in order to keep the project on budget.

Elements of cost estimation in project


management
There are two key types of costs addressed by the cost
estimation process:

1. Direct costs: Costs associated with a single area, such


as a department or the project itself. Examples of direct
costs include fixed labor, materials, and equipment.

2. Indirect costs: Costs incurred by the organization at


large, such as utilities and quality control.

Within these two categories, here are some typical


elements that a cost estimation will take into account:
 Labor: The cost of team members working on the
project, both in terms of wages and time

 Materials and equipment: The cost of resources


required for the project, from physical tools to software to
legal permits

 Facilities: The cost of using any working spaces not


owned by the organization.

 Vendors: The cost of hiring third-party vendors or


contractors.

 Risk: The cost of any contingency plans implemented to


reduce risk.

11. Introduction of PHP

PHP(short for Hypertext Preprocessor) is the most widely used


open source and general purpose server side scripting language
used mainly in web development to create dynamic websites
and applications. It was developed in 1994 by RamusLeadoff.
A survey by W3Tech shows that almost 79% of the websites in
their data are developed using PHP.
 PHP is an acronym for "PHP: Hypertext Preprocessor
 PHP is a widely-used, open source scripting language
 PHP scripts are executed on the server
 PHP is free to download and use

11.1What Can do PHP


 PHP can generate dynamic page content
 PHP can create, open, read, write, delete, and close files on
the server
 PHP can collect form data
 PHP can send and receive cookies
 PHP can add, delete, modify data in your database
 PHP can be used to control user-access
 PHP can encrypt data
With PHP you are not limited to output HTML. You can output
images or PDF files. You can also output any text, such as
XHTML and XML.

11.2 Installation of PHP


What Do I Need?
To start using PHP, you can:
 Find a web host with PHP and MySQL support
 Install a web server on your own PC, and then install PHP
and MySQL

Use a Web Host with PHP Support


If your server has activated support for PHP, you do not need to
do anything.
Just create some. php files, place them in your web directory,
and the server will automatically parse them for you.
You do not need to compile anything or install any extra tools.
Because PHP is free, most web hosts offer PHP support.

Set Up PHP On Your Own PC


However, if your server does not support PHP, you must:
 install a web server
 install PHP
 install a database, such as MySQL
The official PHP website (PHP.net) has installation instructions
for PHP: http://php.net/manual/en/install.php
PHP Online Compiler / Editor
PHP compiler, you can edit PHP code, and view the result in
your browser.

PHP Version
To check your php version you can use
the phpversion() function:
11.4Why PHP Use
PHP can actually do anything related to server-side scripting or
more popularly known as the backend of a website. For
example, PHP can receive data from forms, generate dynamic
page content, can work with databases, create sessions, send
and receive cookies, send emails etc. There are also many hash
functions available in PHP to encrypt user’s data that makes
PHP secure and reliable to be used as a server-side scripting
language. So these are some of the abilities of PHP that makes
it suitable to be used as server-side scripting language

PHP is a very popular language because it is simple and is open-


source. There are many convincing reasons for why you should
be using PHP, some of them being:

 It is easy to install and learn.


 It is open-source and therefore free.
 Not only that, but it is fast and secure.
 It runs on various platforms (Windows, Linux, Unix, etc.).
 PHP can access cookies variable and set cookies.
 It supports many protocols, such as HTTP, POP3, LDAP,
IMAP, SNMP, NNTP, and many more.
 It is well-connected with databases and supports a wide
range of databases. This feature also makes it suitable for
handling forms.
 Many references and learning materials are available for
PHP are available over the internet.
PHP Feature
We have learned about PHP and its uses. But what are the
features that make PHP popular Now that we have a basic
understanding of PHP, let us see some of the most striking
features of PHP.
Simplicity
PHP is particularly famous for its simplicity. It is organized and
easy to learn. Even beginners won’t face any hard time learning
and using PHP. It is a very well-organized programming
language, and it comes with a lot of pre-defined functions,
which makes the task of the programmer easy. There is no need
to include libraries in PHP like C. With a lot of pre-defined
functions, PHP is easy to optimize as well.

Flexibility

PHP scripts can run on any device- mobile, tablet, or PC. It is


very compatible with various databases. It can be easily
embedded and integrated into HTML, XML, and JavaScript.
Likewise, it is also compatible with almost all servers used
today like Apache, IIS, etc.

Objective oriented
PHP supports object-oriented programming features like data
encapsulation, inheritance, abstraction, polymorphism, etc. The
Object-oriented programming feature was added in PHP5. This
feature helps in building complex reusable web pages and makes
PHP comparable to powerful object-oriented languages like Java
and Python.
Efficient
PHP is a versatile, reliable, and efficient programming language.
The memory management of PHP is very efficient. Great
session management, eliminating unnecessary memory
allocation, are some of the features that make PHP efficient.

Fast Performance
PHP scrips are usually faster than other scripting languages.
Users can load their web pages faster, and they love it. PHP
code runs faster than most of programming languages because it
runs in its own memory space. Not only that, but its connection
with databases is also fast and efficient.

Security
PHP has many pre-defined functions for data encryption. Users
can also use third-party applications for security. Security and
flexibility are often contrasting features, but PHP somehow
manages to offer them both, and that’s great.
Platform independent
We can run PHP on any device and operating system (Microsoft
Windows, machos, Linux, RISC OS, or Unix). We can easily
connect it with various databases and is also compatible with
almost all web servers used today (Apache, IIS, and others). It
supports a wide range of databases as well. Its cross-platform
compatibility makes really popular among its users as it saves a
lot of time and energy.

11.6 What is MySQL?


MySQL is a relational database management system based on
the Structured Query Language, which is the popular language
for accessing and managing the records in the database. MySQL
is open-source and free software under the GNU license. It is
supported by Oracle Company.
Our MySQL tutorial includes all topics of MySQL database that
provides for how to manage database and to manipulate data
with the help of various SQL queries. These queries are: insert
records, update records, delete records, select records, create
tables, drop tables, etc. There are also given MySQL interview
questions to help you better understand the MySQL database.

 MySQL is open-source
 MySQL is free
 MySQL is ideal for both small and large applications
 MySQL is very fast, reliable, scalable, and easy to use
 MySQL is cross-platform
 MySQL is compliant with the ANSI SQL standard
 MySQL was first released in 1995
 MySQL is developed, distributed, and supported by Oracle
Corporation
 MySQL is named after co-founder Monty Wideness’s
daughter: My

13 Conclusion
The main objective of the project is to develop a secure chat
application. The chat app provides a better and more flexible
chat system. The main advantage of the system is instant
messaging , real-world communication, added security group
chat ,etc.

You might also like