Flash: Bachelor of Technology Computer Science & Engineering
Flash: Bachelor of Technology Computer Science & Engineering
FLASH
Submitted to
BACHELOR OF TECHNOLOGY
in
COMPUTER SCIENCE & ENGINEERING
By
Soham Kanchalwar
Janhavi Shinde
Mr. Chennoji M. R.
“Flash”
being submitted by Mr. Soham Kanchalwar & Ms. Janhavi Shinde to the Dr. Babasaheb
Ambedkar Technological University, Lonere , for the award of the degree of Bachelor of
Technology in Computer Science and Engineering, is a record of bonafide work carried out
by him/her under my supervision and guidance. The matter contained in this report has not
been submitted to any other university or institute for the award of any degree.
Mr. Chennoji M. R.
Project Guide
We are greatly indebted to our project guide Mr. Chennoji M. R. for his able guidance throughout
this work. It has been an altogether different experience to work with him and we would like to
thank him for his help, suggestions and numerous discussions.
We gladly take this opportunity to thank Dr. Rajurkar A. M. (Head of Computer Science &
Engineering, MGM’s College of Engineering, Nanded).
We are heartily thankful to Dr. Mrs. Lathkar G. S. (Director, MGM’s College of Engineering,
Nanded) for providing facility during project; also, for her kindly help, guidance and inspiration.
Last but not least we are also thankful to all those who help directly or indirectly to develop this
project and complete it successfully.
Janhavi Shinde
Soham Kanchalwar
[BYCSE-I]
I
ABSTRACT
Privacy & Security has always been a major concern for most people, so to deal with such
problems we are developing a multi-functional app with focus on speed and security which
will be superfast, simple and free. The key feature of Flash is we can send one-time
messages which will get erased once you read it. Communication is a major driving force
in humans, we share our emotions with our fellow people by communication. Flash is an
instant messaging app which will connect people from different sides of the globe. It will
have numerous exciting features like chat themes, emojis, sharing multimedia content and
more, making it a complete package for all your communication needs.
This project is to develop a chat system based on Java multithreading and network
concept. The application allows people to transfer messages both in private and public way.
It also enables the feature of sharing resources images, one time messaging etc. This online
system is developed to interact or chat with one another on the Internet. It is much more
reliable and secure than other traditional systems available. This application is developed
with proper architecture for future enhancement. It can be deployed in all private
organizations like colleges, private institutions, etc.
II
TABLE OF CONTENTS
ACKNOWLEDGEMENT I
ABSTRACT II
TABLE OF CONTENTS III
LIST OF FIGURES V
Chapter 1. INTRODUCTION 1
1.1 Flash 1
1.2 Background 1
1.3 Objectives 2
1.4 Purpose and Scope 2
Chapter 2. TECHNOLOGIES 4
2.1 HTML (Hypertext Markup Language) 4
2.2 CSS (Cascading Style Sheets) 6
2.3 JavaScript 8
2.4 PHP 10
2.5 MySQL 12
2.6 Xampp 14
2.6.1 Definition 14
2.6.2 Usage 15
Chapter 3. WORKING OF FLASH 16
3.1 Flowchart 16
3.2 Sign Up page 18
3.3 Login page 19
3.4 Dashboard page 20
3.5 Chat Screen 21
3.6 Update Profile 22
3.7 Database and Schema 23
3.7.1 Users 24
3.7.2 Messages 26
III
Chapter 4. TESTING 27
4.1 Black Box Testing 27
4.2 Test Cases 28
4.2.1 Test case 1 29
4.2.2 Test case 2 30
4.2.3 Test case 3 34
Chapter 5. ANALYSIS OF FLASH 35
Conclusion 38
References 39
IV
LIST OF FIGURES
V
Chapter 1
INTRODUCTION
1.1 Flash
Communication is meant for people to exchange messages. It has started since the beginning
of human creation. Distance communication began as early as 1800 century with the
introduction of television, telegraph and then telephony. Interestingly enough, telephone
communication stands out as the fastest growing technology, from fixed line to mobile wireless,
from voice call to data transfer. The emergence of computer network and telecommunication
technologies bears the same objective: to allow people to communicate.
Chatting may refer to the transmission of data over the internet that offers a real-time
transmission of data from sender to receiver. Communication is essential for achieving
managerial and organisational effectiveness, employees will not be able to be aware of what
their co-workers are doing, will not have any idea about what their goals are, and will not be
able to assess their performance. In absence of channels of communication, supervisors will
not be able to give instruction to their subordinates and management will not receive the
information it requires to develop plans and make decisions.
Chatting is a method of using technology to bring people and ideas together despite the
geographical barriers. The technology has been available for years but the acceptance of it was
quite recent. Our project is an example of an android chat. It is made up of an application, the
client application which runs on the user mobile. To start the chatting our Client should get
connected to the server, where they can do group and private chatting.
1.2 Background
The first online chat system was called Talkomatic, created by Doug Brown and David R.
Woolley in 1973 on the PLATO System (Programmed Logic for Automatic Testing operations)
at the University of Illinois. It offered several channels, each of which could accommodate up
to five people, with messages appearing on all users' screens character-by-character as they
were typed. Talkomatic was very popular among PLATO users into the mid-1980s. In 2014,
Brown and Woolley released a web-based version of Talkomatic and was useful.
The first online system to use the actual command "chat" was created for The Source
in 1979 by Tom Walker and Fritz Thane of Dialcom,Inc. The first transatlantic Internet chat
took place between Oulu, Finland and Corvallis, Oregon in February 1989. The first dedicated
online chat service that was widely available to the public was the CompuServe CB Simulator
1
in 1980, created by CompuServe executive Alexander "Sandy" Trevor in Columbus, Ohio.
Ancestors include network chat software such as UNIX "talk" used in the 1970s.
Modern instant messaging and SMS both began their march to prominence in the early
and mid1990s.The difference between the two is subtle: SMS(short service message) allows
mobile phone users to send each other text messages without an Internet connection, whereas
instant messaging uses an internet connection to transfer the messages.
Chat is implemented in many video conferencing tools. A study of chat use during
work-related videoconferencing found that chat during meetings allows participants to
communicate without interrupting the meeting, plan action around common resources, and
enables greater inclusion. The study also found that chat can cause distractions and information
asymmetries between participants.
1.3 Objectives
The main objective of this system to overcome the communication gap and transfer of files
which are listed below are as follows:
1. At a time, a single user can interact with multiple- users.
2. To send messages like text,audios,videos,images,documents online as well as offline.
3. To handle multiple users at the same time.
4. To support for file transfer (Example: -audio,video,images,documents,etc )
5. To show the last online status of the user to the other users (last seen).
6. Simple UI (user-interface) and user-friendly.
7. Secure database for the privacy of the users.
8. All the fields are validated so it cannot take any invalid input.
9. One-time messages can be sent considering the aspect of privacy, security and speed.
10. You can edit your profile as many times as you wish.
1.4 Purpose and Scope
The communication process has undergone a drastic change over the years. It has travelled
quite a long distance right from the era of sending handwritten letters to the present age of
instant messaging. Today business is encountering fierce competition in the market and so the
need for real-time communication has augmented. Just a decade ago, the SMS was the order of
the day, but with the evolution of time, the popular chat-based apps have substituted its place.
And to be clear-cut, one must thank the emergence of the Smartphones which has played a
dominant role in bringing these applications to the forefront.
The purpose of the chatting application is to allow users to be able to chat with each
2
other, like a normal chat application. The users will be able to chat with each other, most likely
only from user to user or with the group, group-chatting will be developed unless there is time
to do so. The main motive to build a chatting application is to provide an ease to use the
software for communication in an effective manner. Nowadays, people are busy in day-to-day
life, so they are not getting that much time to meet with their friends and relatives to overcome
this communication gap. This application acts as an intermediate.
SMS (short messaging service) are costlier than the data charges, per SMS cost one
rupees if your SMS plan is not active and the data charges are in kilobytes or megabytes. A
chat application makes it easy to communicate with people anywhere in the world by sending
and receiving messages in real time. With a 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 a 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. A chat app that’s composed of real-time messaging features enables users to have
an authentic and interactive experience. Features like message reactions, stickers, emojis, and
provide a way to engage your users directly on your app instead of external platforms–creating
a more connected experience. Other functionalities like identifying active users, typing
indicators, and message history to name a few also add to that immediacy by automatically
detecting the presence of users in a chat application is a necessary thing.
When dealing with sensitive information like compliance requirements or personal user
information, making sure that your chat application has the proper security features in place is
crucial for ensuring that the data of those using your app is protected—for instance,
implementing an in app compliant chat for a telemedicine use case. Additionally, other robust
security safeguards for chat apps can be enabled through messaging APIs and access
permissions enabled on the backend for who is able to control things at the user, device,
channel, or key level. The best way to identify the right chat solution to build for your app is
to think ahead to how it can support your users’ needs as your app evolves. Are customized
features like video calls or voice chat a must-have for your chat app? Or is pricing and time to
market important to you? Having access to the features that can accommodate your use case
not only now, but in the future, is invaluable. The purpose and scope of things here is huge and
innumerable to explain, that is why we are doing this project so we can dig a little deeper in
this messaging apps and how they work exactly so we can gain knowledge of things.
3
Chapter 2
TECHNOLOGIES
4
command developed in the early 1960s for the CTSS (Compatible Time-Sharing System)
operating system: these formatting commands were derived from the commands used by
typesetters to manually format documents. However, the SGML concept of generalised markup
is based on elements (nested annotated ranges with attributes) rather than merely print effects,
with also the separation of structure and markup; HTML has been progressively moved in this
direction with CSS. Berners-Lee considered HTML to be an application of SGML. It was
formally defined as such by the Internet Engineering Task Force (IETF) with the mid-1993
publication of the first proposal for an HTML specification, the "Hypertext Markup Language
(HTML)" Internet Draft by Berners-Lee and Dan Connolly, which included an SGML
Document type definition to define the grammar. The draft expired after six months, but was
notable for its acknowledgment of the NCSA Mosaic browser's custom tag for embedding in-
line images, reflecting the IETF's philosophy of basing standards on successful prototypes.
Similarly, Dave Raggett's competing Internet-Draft, "HTML+ (Hypertext Markup Format)",
from late 1993, suggested standardising already-implemented features like tables and fill-out
forms. After the HTML and HTML+ drafts expired in early 1994, the IETF created an HTML
Working Group, which in 1995 completed "HTML 2.0", the first HTML specification intended
to be treated as a standard against which future implementations should be based.
A webpage can contain headings, paragraphs, images, videos, and many other types of
data. Front-end developers use the HTML element to specify what kind of information each
item on a webpage contains for instance, the “p” HTML element indicates a paragraph.
Developers also write HTML language code to specify how different items relate to one another
in the page’s overall structure or document structure. Every website you open in your web
browser, from social networks to music services, uses HTML. A look under the hood of any
website would reveal a basic HTML code page, written with an HTML structure editor,
providing structure for all the page’s components, including its header element, footer element,
main content, and other inline elements. The HTML file plays a couple of significant roles in
a webpage. First, we use the structure created by our HTML code to reference, enhance, and
manipulate elements on a web page using CSS and JavaScript. For instance, you could use
HTML to mark all of the headings on a web browser page, then pick the size and color you
want to apply to those headings to reflect your organization’s branding, or simply a visual
design developed for the site. HTML text lets us indicate the roles of different structural
elements to search engines and other services that index the content and summarize it for others.
5
2.2 CSS (Cascading Style Sheets)
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of
a document written in a markup language such as HTML. CSS is a cornerstone technology of
the World Wide Web, alongside HTML and JavaScript. CSS is designed to enable the
separation of presentation and content, including layout, colours, and fonts. This separation can
improve content accessibility; provide more flexibility and control in the specification of
presentation characteristics; enable multiple web pages to share formatting by specifying the
relevant CSS in a separate .css file, which reduces complexity and repetition in the structural
content; and enable the .css file to be cached to improve the page load speed between the pages
that share the file and its formatting. Separation of formatting and content also makes it possible
to present the same markup page in different styles for different rendering methods, such as on-
screen, in print, by voice (via speech-based browser or screen reader), and on Braille-based
tactile devices. CSS also has rules for alternate formatting if the content is accessed on mobiles.
The name cascading comes from the specified priority scheme to determine which style
rule applies if more than one rule matches a particular element. This cascading priority scheme
is predictable. The CSS specifications are maintained by the World Wide Web Consortium
(W3C). Internet media type (MIME type) text/css is registered for use with CSS by RFC 2318
(March 1998). The W3C operates a free CSS validation service for CSS documents. In addition
to HTML, other markup languages support the use of CSS including XHTML, plain XML,
SVG, and XUL. A style sheet consists of a list of rules. CSS has a simple syntax and uses a
number of English keywords to specify the names of various style properties.
A style sheet consists of a list of rules. Each rule or rule-set consists of one or more
selectors, and a declaration block. Style sheets have existed in one form or another since the
beginnings of Standard Generalised Markup Language (SGML) in the 1980s, and CSS was
developed to provide style sheets for the web.One requirement for a web style sheet language
was for style sheets to come from different sources on the web. Therefore, existing style sheet
languages like DSSSL and FOSI were not suitable. CSS, on the other hand, lets a document's
style be influenced by multiple style sheets by way of "cascading" styles. As HTML grew, it
came to encompass a wider variety of stylistic capabilities to meet the demands of web
developers. This evolution gave the designer more control over site appearance, at the cost of
more complex HTML. Variations in web browser implementations, such as ViolaWWW and
WorldWideWeb,made consistent site appearance difficult, and users had less control over how
web content was displayed. The browser/editor developed by Tim Berners-Lee had style sheets
6
that were hard-coded into the program. The style sheets could therefore not be linked to
documents on the web. Robert Cailliau, also of CERN, wanted to separate the structure from
the presentation so that different style sheets could describe different presentations for printing,
screen-based presentations, and editors. Improving web presentation capabilities was a topic
of interest to many in the web community and nine different style sheet languages were
proposed on the www-style mailing list. Of these nine proposals, two were especially
influential on what became CSS: Cascading HTML Style Sheets and Stream-based Style Sheet
Proposal (SSP). Two browsers served as testbeds for the initial proposals; Lie worked with
Yves Lafon to implement CSS in Dave Raggett's Arena browser. Bert Bos implemented his
own SSP proposal in the Argo browser. Thereafter, Lie and Bos worked together to develop
the CSS standard (the 'H' was removed from the name because these style sheets could also be
applied to other markup languages besides hypertext markup language).
A web design is the soul of a website. It plays an important role in a website’s
performance and success. This is the reason why web developers pay specific attention to
business web design. A perfect web design ensures better traffic and search engine ranking for
a site. Let us see how beneficial CSS is in a web application development. CSS or cascading
style sheets have made the development of web pages a lot easier. CSS allows you to easily
link to other documents in a website. With the help of CSS, you can have a control over the
various elements in different web pages of your site. CSS only defines the structure and content
presentation of a website. It has nothing to do with the design of a website. However, the CSS
influences how the design will look like after the final process is over. You can control the font,
positioning, color and style information of an entire website with the help of a single CSS sheet.
The reason why CSS is preferred by web developers is because it is lighter than the
table layout which consumes a lot of bandwidth. The style sheet is loaded only once and is
stored in the cache memory. This way the subsequent pages load faster. Multiple Browsers
Compatible: CSS is compatible with all web browsers. Therefore, a website based on CSS will
appear similar in all the web browsers. Ability to position elements anywhere: With CSS, you
can position the elements anywhere in the web page. Thus, you can ask the developer to change
the position of a particular element if it does not go well with the way, you had wanted it to be.
Print friendly web pages: Another important feature of CSS is that it provides print friendly
web pages. This is to say that the web pages can be easily printed. The colors, images and other
things which are difficult to print can be eliminated and printed easily.
7
2.3 JavaScript
JavaScript, often abbreviated JS, is a programming language that is one of the core technologies
of the World Wide Web, alongside HTML and CSS. Over 97% of websites use JavaScript on
the client side for web page behaviour, often incorporating third-party libraries. All major web
browsers have a dedicated JavaScript engine to execute the code on users' devices.
JavaScript is a high-level, often just-in-time compiled language that conforms to the
ECMAScript standard. It has dynamic typing, prototype-based object-orientation, and first-
class functions. It is multi-paradigm, supporting event-driven, functional, and imperative
programming styles. It has application programming interfaces (APIs) for working with text,
dates, regular expressions, standard data structures, and the Document Object Model (DOM).
The ECMAScript standard does not include any input/output (I/O), such as networking,
storage, or graphics facilities. In practice, the web browser or other runtime system provides
JavaScript APIs for I/O. JavaScript engines were originally used only in web browsers, but are
now core components of some servers and a variety of applications. The most popular runtime
system for this usage is Node.js. Although Java and JavaScript are similar in name, syntax, and
respective standard libraries, the two languages are distinct and differ greatly in design.
During these formative years of the Web, web pages could only be static, lacking the
capability for dynamic behaviour after the page was loaded in the browser. There was a desire
in the burgeoning web development scene to remove this limitation, so in 1995, Netscape
decided to add a scripting language to Navigator. They pursued two routes to achieve this:
collaborating with Sun Microsystems to embed the Java programming language, while also
hiring Brendan Eich to embed the Scheme language. Netscape management soon decided that
the best option was for Rich to devise a new language, with syntax similar to Java and less like
Scheme or other extant scripting languages. Although the new language and its interpreter
implementation were called LiveScript when first shipped as part of a Navigator beta in
September 1995, the name was changed to JavaScript for the official release in December.
The choice of the JavaScript name has caused confusion, implying that it is directly
related to Java. At the time, the dot-com boom had begun and Java was the hot new language,
so Eich considered the JavaScript name a marketing ploy by Netscape. Ambitious work on the
language continued for several years, culminating in an extensive collection of additions and
refinements being formalised with the publication of ECMAScript 6 in 2015.
The creation of Node.js in 2009 by Ryan Dahl sparked a significant increase in the
usage of JavaScript outside of web browsers. Node combines the V8 engine, an event loop,
8
and I/O APIs, thereby providing a stand-alone JavaScript runtime system. As of 2018, Node
had been used by millions of developers, and npm had the most modules of any package
manager in the world. Node combines the V8 engine, an event loop. The ECMAScript draft
specification is currently maintained openly on GitHub, and editions are produced via regular
annual snapshots. Potential revisions to the language are vetted through a comprehensive
proposal process. Now, instead of edition numbers, developers check the status of upcoming
features individually. The current JavaScript ecosystem has many libraries and frameworks,
established programming practises, and substantial usage of JavaScript outside of web
browsers. Plus, with the rise of single-page applications and other JavaScript-heavy websites,
several transpilers have been created to aid the development process.
JavaScript is used to write programs that govern the HTML and CSS. HTML and CSS,
on their own, are static and unchanging JavaScript can bring them to life! It can make certain
blocks of content appear or disappear, or it can make an existing content block look completely
different among an almost limitless number of other functionalities. In other words, JavaScript
enables interactivity on websites and gives them a sense of state. The state of the website or
web application determines how it appears and what it shows and does not show. The concept
of state is the single most important aspect of building dynamic websites. One of the worst
things that can happen to a webpage is for the UI to become out of sync with the state of the
JavaScript program or the information on the server (more on that later). For instance, imagine
a settings page of a website that has many checkboxes for various settings.
How frustrating would it be if you went through and selected all of your settings, only
for you to come back later and realize they were not all saved. Something like that can easily
happen if the state of the UI gets ahead of the state of the JavaScript. It is up to the web
developer to design a good program that will prevent any out-of-sync issues from occurring. A
modern website must be able to respond to and handle all actions made by the user, and keep
the UI up to speed. When you type in a URL and receive back a web page, you are viewing a
document sent to you by the server of the website you are on. You can view and interact with
the document, but any changes you make to it will only be reflected in your own browser and
will not persist to the resource on the server. In order to update the information on the server,
additional requests or messages have to be made to the server. This is all facilitated by the same
JavaScript program that manages the state of the UI. Typically, these requests are tied to
interactions on the UI so that can be used to later to provide functionality.
9
2.4 PHP
PHP is a general-purpose scripting language geared towards web development. It was
originally created by Danish-Canadian programmer Rasmus Lerdorf in 1994. The PHP
reference implementation is now produced by The PHP Group. PHP originally stood for
Personal Home Page, but it now stands for the recursive initialism PHP: Hypertext
Preprocessor. PHP code is usually processed on a web server by a PHP interpreter implemented
as a module, a daemon or as a Common Gateway Interface (CGI) executable.
On a web server, the result of the interpreted and executed PHP code – which may be
any type of data, such as generated HTML or binary image data – would form the whole or part
of an HTTP response. Various web template systems, web content management systems, and
web frameworks exist which can be employed to orchestrate or facilitate the generation of that
response. Additionally, PHP can be used for many programming tasks outside the web context,
such as standalone graphical applications and robotic drone control. PHP code can also be
directly executed from the command line. The standard PHP interpreter, powered by the Zend
Engine, is free software released under the PHP Licence. PHP has been widely ported and can
be deployed on most web servers on a variety of operating systems and platforms. The PHP
language evolved without a written formal specification or standard until 2014, with the
original implementation acting as the de facto standard which other implementations aimed to
follow. Since 2014, work has gone on to create a formal PHP specification.
W3Techs reports that, as of January 2022, "PHP is used by 78.1% of all the websites
whose server-side programming language we know." PHP version 7.4 is the most used version.
Support for version 7.3 was dropped on 6 December 2021. PHP is loosely typed. It stores
integers in a platform-dependent range, either as a 32, 64 or 128-bit signed integer equivalent
to the C-language long type. Unsigned integers are converted to signed values in certain
situations, which is different behaviour to many other programming languages.
Integer variables can be assigned using decimal (positive and negative), octal,
hexadecimal, and binary notations. Floating point numbers are also stored in a platform-
specific range. They can be specified using floating point notation, or two forms of scientific
notation. PHP has a native Boolean type that is similar to the native Boolean types in Java and
C++. Using the Boolean type conversion rules, non-zero values are interpreted as true and zero
as false, as in Perl and C++. The null data type represents a variable that has no value; NULL
is the only allowed value for this data type. Variables of the "resource" type represent
references to resources from external sources. These are typically created by functions from a
10
particular extension, and can only be processed by functions from the same extension;
examples include file, image, and database resources that are used for creation.
Arrays can contain elements of any type that PHP can handle, including resources,
objects, and even other arrays. Order is preserved in lists of values and in hashes with both
keys and values, and the two can be intermingled. PHP also supports strings, which can be
used with single quotes, double quotes, nowdoc or heredoc syntax. The Standard PHP Library
(SPL) attempts to solve standard problems and implements efficient data access interfaces and
classes. PHP defines a large array of functions in the core language and many are also available
in various extensions; these functions are well documented in the online PHP documentation.
However, the built-in library has a wide variety of naming conventions and associated
inconsistencies, as described under history above. By default, scalar type declarations follow
weak typing principles. When you enter welcome.html the code is different from that of
‘welcome.php’. To explain it further, depending on the time of the day when you request
‘welcome.html’ you will always receive the response ‘Welcome!’ as the heading. Whereas,
when you request welcome.php depending on the time of the day you will receive ‘Good
Morning’ if it is before 12 pm and ‘Welcome!’ after 12 pm. This indicates that welcome .html
has a static behavior compared to welcome.php, which is dynamic. It is because welcome.html
always delivers the same content, whereas PHP changes are as per the time. This allows you
as a developer to improve on files thus making it more dynamic than HTML.
PHP engine outputs contents differently from that of HTML, the reason being PHP
interpreter reads the lines of the file that are tagged between and then processes that. Any
content without the PHP tag will not be processed by the PHP engine. If as a client you want
PHP to be embedded in HTML that is also possible, only you have to hire PHP developer who
is proficient in such a task and knows how to do it. PHP offers the option of running on a web
server since it is a server-side scripting language. It is also secure, reliable and fast that has
resulted in web developers preferring to work with PHP. So, it would quite beneficial for any
enterprise to hire a PHP developer than a general web developer. A PHP developer who
specializes in this language knows the dynamic nature of the scripting language that can
enhance the appearance and function of the website. Irrespective of the industry that the web
page belongs to, a web page created with PHP is more dynamic and also easy to use. It is a
well-established fact now that for any company to flourish it needs to have its presence on the
digital platform. While social media can be the right place to attract some attention but it does
not establish a brand image of that company without a proper website.
11
2.5 MySQL
MySQL is an open-source relational database management system (RDBMS). Its name is a
combination of "My", the name of co-founder Michael Widenius's daughter, and "SQL", the
abbreviation for Structured Query Language. A relational database organises data into one or
more data tables in which data types may be related to each other; these relations help structure
the data. SQL is a language programmers use to create, modify and extract data from the
relational database, as well as control user access to the database. In addition to relational
databases and SQL, an RDBMS like MySQL works with an operating system to implement a
relational database in a computer's storage system, manages users, allows for network access
and facilitates testing database integrity and creation of backups for the system.
MySQL is free and open-source software under the terms of the GNU General Public
Licence, and is also available under a variety of proprietary licences. MySQL was owned and
sponsored by the Swedish company MySQL AB, which was bought by Sun Microsystems
(now Oracle Corporation). In 2010, when Oracle acquired Sun, Widenius forked the open-
source MySQL project to create MariaDB. MySQL has stand-alone clients that allow users to
interact directly with a MySQL database using SQL, but more often, MySQL is used with other
programs to implement applications that need relational database capability. MySQL is a
component of the LAMP web application software stack (and others), which is an acronym for
Linux, Apache, MySQL, Perl/PHP/Python. MySQL is used by many database-driven web
applications, including Drupal, Joomla, phpBB, and WordPress. MySQL is also used by many
popular websites, including Facebook, Flickr, MediaWiki, Twitter, and YouTube.
MySQL is written in C and C++. Its SQL parser is written in yacc, but it uses a home-
brewed lexical analyzer. MySQL works on many system platforms, including AIX, BSDi,
FreeBSD, HP-UX, ArcaOS, eComStation, IBM i, IRIX, Linux, macOS, Microsoft Windows,
NetBSD, Novell NetWare, OpenBSD, OpenSolaris, OS/2 Warp, QNX, Oracle Solaris,
Symbian, SunOS, SCO OpenServer, SCO UnixWare, Sanos and Tru64. A port of MySQL to
OpenVMS also exists. The MySQL server software itself and the client libraries use dual-
licensing distribution. They are offered under GPL version 2, or a proprietary licence.
Support can be obtained from the official manual. Free support additionally is available
in different IRC channels and forums. Oracle offers paid support via its MySQL Enterprise
products. They differ in the scope of services and in price. Additionally, a number of third party
organisations exist to provide support and services. MySQL has received positive reviews, and
reviewers noticed it "performs extremely well in the average case" and that the "developer
12
interfaces are there, and the documentation (not to mention feedback in the real world via Web
sites and the like) is very, very good". It has also been tested to be a "fast, stable and true multi-
user, multi-threaded SQL database server". MySQL is used with other programs to implement
applications that need relational. MySQL is offered under two different editions: the open-
source MySQL Community Server and the proprietary Enterprise Server. MySQL Enterprise
Server is differentiated by a series of proprietary extensions which install as server plugins, but
otherwise share the version numbering system and are built from the same code base.
When using some storage engines other than the default of InnoDB, MySQL does not
comply with the full SQL standard for some of the implemented functionality, including
foreign key references. Check constraints are parsed but ignored by all storage engines before
MySQL version 8.0.15. Up until MySQL 5.7, triggers are limited to one per action / timing,
meaning that at most one trigger can be defined to be executed after an INSERT operation, and
one before INSERT on the same table. No triggers can be defined on views. MySQL database's
inbuilt functions like UNIX TIMESTAMP () will return 0 after 03:14:07 UTC on 19 January
2038. Recently, there had been an attempt to solve the problem which had been assigned to the
internal queue. The procedure of setting up the MySQL database varies according to the host.
Every database would require a user name and password, in order to access the database.
Database administration can be done using PHP scripts or using a program like PHPMyAdmin.
The next step is to create the database tables for storing the website information.
Creating a database table using PHPMyAdmin is also simple. In simple terms, MySQL
is a database management system. There are a lot of reasons to build databases as part of a
website infrastructure. Email accounts, blogs and content management systems (CMS) are all
great examples of highly desirable web assets that we create for our clients using MySQL-
managed databases. PHP and MySQL work hand-in-hand to create rich internet applications.
Like PHP, MySQL is also an open-source technology, a fact that should inspire a lot of
confidence for business owners. Because guarding the data assets of corporations is the number
one job of database professionals, MySQL offers exceptional security features that ensure
absolute data protection. In terms of database authentication, MySQL provides powerful
mechanisms for ensuring only authorized users have entry to the database server, with the
ability to block users down to the client machine level being possible. SSH and SSL support
are also provided to ensure safe and secure connections. A granular object privilege framework
is present so that users only see the data they should, and powerful data encryption and
decryption functions ensure that sensitive data is protected from unauthorized viewing.
13
2.6 Xampp
XAMPP is one of the widely used cross-platform web servers, which helps developers to create
and test their programs on a local webserver. It was developed by the Apache Friends, and its
native source code can be revised or modified by the audience. It consists of Apache HTTP
Server, MariaDB, and interpreters for the different programming languages like PHP and Perl.
It is available in 11 languages and supported by different platforms such as the IA-32 package
of Windows & x64 package of macOS and Linux.
2.6.1 What is XAMPP?
XAMPP is an abbreviation where X stands for Cross-Platform, A stands for Apache, M stands
for MYSQL, and the Ps stand for PHP and Perl, respectively. It is an open-source package of
web solutions that includes Apache distribution for many servers and command-line
executables along with modules such as Apache server, MariaDB, PHP, and Perl.
XAMPP helps a local host or server to test its website and clients via computers and
laptops before releasing it to the main server. It is a platform that furnishes a suitable
environment to test and verify the working of projects based on Apache, Perl, MySQL
database, and PHP through the system of the host itself. Among these technologies, Perl is a
programming language used for web development, PHP is a backend scripting language, and
MariaDB is the most vividly used database developed by MySQL.
14
2.6.2 Usage
The most obvious characteristic of XAMPP is the ease at which a WAMP web server stack can
be deployed and instantiated. Later some common packaged applications that could be easily
installed were provided by Bitnami. Officially, XAMPP's designers intended it for use only as
a development tool, to allow website designers and programmers to test their work on their
own computers without any access to the Internet. To make this as easy as possible, many
important security features are disabled by default. XAMPP has the ability to serve web pages
on the World Wide Web. A special tool is provided to password-protect the most important
parts of the package. It is a platform that furnishes a suitable environment. XAMPP also
provides support for creating and manipulating databases in MariaDB and SQLite among
others. Once XAMPP is installed, it is possible to treat a localhost like a remote host by
connecting using an FTP client. Using a program like FileZilla has many advantages when
installing a content management system (CMS) like Joomla or WordPress.
It is also possible to connect to localhost via FTP with an HTML editor. XAMPP helps
a local host or server to test its website and clients via computers and laptops before releasing
it to the main server. It is a platform that furnishes a suitable environment to test and verify the
working of projects based on Apache, Perl, MySQL database, and PHP through the system of
the host itself. Among these technologies, Perl is a programming language used for web
development, PHP is a backend scripting language, and MariaDB is the most vividly used
database developed by MySQL. We like using XAMPP because it is by far, one of the most
reliable tools when setting up environment for PHP programming. It provides all the
components needed for running, developing, debugging, and unit testing of PHP applications.
Personally, I think it’s the best alternative to installing a web server, database server, PHP
engine and a debug engine separately. Simply download XAMPP and start the components
using the XAMPP control panel. If you’re thinking about trying XAMPP, the first thing you
need to know are the requirements needed to run it on your own computer. Offered in both full
standard and a smaller version for Windows, Linux and OS X, there are various requirements
your computer must meet before you can install it on your system, chances are your computer
will already meet these requirements as they are standard (visit the download link provided
above for these). You won’t need to configure various components required to create web
server. XAMPP is constantly being updated to incorporate latest releases of Perl, PHP,
MySQL, and Apache. It also comes with OpenSSL and phpMyAdmin.
15
Chapter 3
WORKING OF FLASH
3.1 Flowchart
16
The flow of the flowchart is as follows:
1. User has the option to fill in the details as a new user or click on the login now button to go
to the login page.
2. If the user fills the details and confirms all the details and clicks on the continue to chat
button, all the information filled by the user gets uploaded to the server and he gets redirected
to the chatting page.
3. Alternatively, the user can also click on the login now button and go to the login page where
he can fill details such as email and password and click on continue to chat button to go to the
dashboard.
4. If details filled by the user are valid then he will get redirected to the dashboard.
5. Otherwise the user will get warnings regarding failing to login.
6. On the dashboard the user can select another user and chat with him.
7. Every user in the list has a dot on the right side of their name which shows their active status.
8. If the dot is green the user is active now and if the dot is grey the user is not active.
9. Or he can click on the search button to search for the user. After clicking on the user in the
list he can chat with the user.
10. Or click on the edit profile button to update his own profile.
11. On the chatting page the user can see the chatting history of the user with the other user.
12. Also on the top side other user’s active status is visible as well a back button is visible to
go back onto the dashboard page if the user wishes to do so.
On the login page users have to enter his previously used email address and password. On the
login page we have two fields which are ‘Email Address’ and ‘Password’. If the user entered
email address does not exist in our database, then the form will show the email address does
not exist. If the password and email address does not match, the form will show a warning that
password and email address does not match. If the details entered by the user are correct then
by clicking on ‘Continue to chat’ button the user can log in to the chatting application and get
redirected to the dashboard. The user gets redirected to the chatting dashboard page and all the
people you last interacted with are visible on the dashboard or main chat screen where all the
names are visible for ease. The user must enter the exact login credentials which were used at
the time of signing up on the app. Otherwise errors will be shown and you won’t be able to
access your flash account and cannot enjoy the features. Above drawn flow chart and all the
information explains the working of our app in a much easier way for everyone to understand.
17
3.2 Sign Up page
18
3.3 Login page
19
3.4 Dashboard page
20
3.5 Chat Screen
21
3.6 Update profile
22
3.7 Database and Schema
‘chatapp’ database:
23
3.7.1 ‘users’
24
Fig 3.7.1.1 Users list
As you can see in the above table all the data in each field is stored. user_id field stores
sequence of each user and unique_id stores a random unique and not null number string for
each user. Also, the password field has a random string consisting of numbers and alphabets
which is generated by our server. Our server converts the original password of the user into a
random string which gives us an extra layer of security. Also, when a user enters his password
while logging in to the web app the string in the password field gets converted to the random
string and gets compared by inner algorithms. After entering the password, the system checks
whether it matches with the random string which was there at the time of creation and then
after verification the user gets logged in into their account. Any user’s details, account and
everything can be deleted manually from the databases if you wish so, if the user has gone
offline for more than 365 days then the database handler will delete all the data of the user by
selecting the delete option shown in the above image permanently for lifetime.
By selecting the delete button, the name of the user, login id of the user, password of
the user, profile photo of the user, chats of the user, and the complete access to the user gets
deleted permanently. The user won't be able to access his account using those credentials
because it cannot be recovered. After entering the password, the system checks whether it
matches with the random string which was there at the time of creation and then after
verification the user gets logged in into their account and then can send messages and utilise
the app easily. The details regarding password and profile picture are stored as a random string
so that no one other than the user can know the case sensitive details of their account and with
help of such few methods your privacy and security is taken into consideration here. Our server
converts the original password of the user into a random string which gives us an extra layer
of security.
25
3.7.2 ‘messages’
26
Chapter 4
TESTING
Software Testing is the process used to help identify the correctness, completeness, security,
and quality of developed computer software. Testing is a process of technical investigation,
performed on behalf of stakeholders, that is intended to reveal quality-related information about
the product concerning the context in which it is intended to operate. This includes, but is not
limited to, the process of executing a program or application with the intent of finding errors.
With that in mind, testing can never completely establish the correctness of arbitrary computer
software; testing furnishes a criticism or comparison that compares the state and behaviour of
the product against a specification or a particular set of various details.
An important point is that software testing should be distinguished from the separate
discipline of Software Quality Assurance (SQA), which encompasses all business process
areas, not just testing. There are many approaches to software testing, but effective testing of
complex products is essentially a process of investigation, not merely a matter of creating and
following a routine procedure. One definition of testing is "the process of questioning a product
to evaluate it,'' where the "questions" are operations the tester attempts to execute with the
product, and the product answers with its behaviour in reaction to the probing of the tester.
Although most of the intellectual processes of testing are nearly identical to that of
review or inspection, the word testing is connoted to mean the dynamic analysis of the product
putting the product through its paces. Some of the common quality attributes include capability,
reliability, efficiency, portability, maintainability, compatibility, and usability. A good test is
sometimes described as one which reveals an error; however, more recent thinking suggests
that a good test reveals information of interest to someone who matters.
4.1 Black Box Testing
It is the testing process in which the tester can perform testing on an application without having
any internal structural knowledge of the application. Usually, Test Engineers are involved in
black-box testing. Black box testing involves testing a system with no prior knowledge of its
internal workings. A tester provides an input, and observes the output generated by the system
under test. Black box testing is a powerful testing technique because it exercises a system end-
to-end. Black box testing is a powerful testing technique because it exercises a system end-to-
end. Just like end-users “don’t care” how a system is coded or architected, and expect to receive
an appropriate response to their requests, a tester can simulate user activity and see if the system
delivers on its promises. Along the way, a black box test evaluates all relevant subsystems,
27
including UI/UX, web server or application server, database, dependencies, and integrated
systems.
4.2 Test Cases
A Test Case is defined as a set of actions executed to verify a particular feature or functionality
of the software application. A test case is an indispensable component of the Software Testing
Life Cycle that helps validate the AUT (Application Under Test). A test case is exactly what it
sounds like: a test scenario measuring functionality across a set of actions or conditions to
verify the expected result. They apply to any software application, can use manual testing or
an automated test, and can make use of test case management tools Test cases come in handy
in a variety of software scenarios. Everything from banking to personal software requires a test
case application. For example, if the goal is to have encrypted, sensitive data, the software
needs to have features that work as intended it was supposed to be working. Some common
test case examples would be Functionality, Usability, Security.
But functional testing is just one aspect of writing a test case. Software testing should
robustly challenge every aspect of the code from performance to compatibility to security.
That’s why personal encryption software needs to be tested so thoroughly. While drafting a test
case to include the following information:
1. The description of what requirement is being tested.
2. The explanation of how the system will be tested.
3. The test setup like a version of an application under test, software, data files, operating
system, hardware, security access, physical or logical date, time of day, prerequisites such as
other tests, and any other setup information pertinent to the requirements being tested.
4. Inputs and outputs or actions and expected results.
5. Any proofs or attachments.
6. Use active case language.
7. Test Case should not be more than 15 steps.
8. An automated test script is commented with inputs, purpose, and expected results.
9. The setup offers an alternative to pre-requisite tests.
10. If the actual results match the expected results, the test passes. If not, the test fails.
11. As described above, this is the high-level action from which the test case derives.
12. Describe the various steps that must be accomplished prior to testing, or what we can
assume situationally about the test, such as “after a successful login.”
28
4.2.1 Test case 1: Sign up validation
Input1: Continue to Chat
Output1: Please fill out this field, all input fields are required (Login unsuccessful).
29
4.2.2 Test case 2: Sign in validation
Input1: Continue to Chat
Output1: Please fill out this field, all input fields are required (Login unsuccessful).
30
Input 2: Email Address and incorrect password
Output 2: Email or Password is Incorrect! (Login unsuccessful)
31
Input 3: Incorrect Email Address and incorrect password
Output 3: [email protected] - Email or Password is Incorrect! (Login unsuccessful)
Here the format of the email was incorrect so the system denied the login and showed an error
message that says - [email protected] - Email or Password is Incorrect! Which means
that above mentioned credentials are not the exact ones that were entered at the time of creation
of user account and also shows us that correct mention of gmail.com is necessary for
verification, no other email format or any error in the domain is allowed at any case.
The credentials you used at the time of signing up are stored in the database and when
you enter them while logging in into you flash account, they are verified and if the match is
exact, you have all the access to your account, but if you enter things differently you won’t get
the expected results like you won’t have any access at all. The email doesn’t exist because the
format is completely wrong which shows us how are system’s recognition is strong and it
denies such things and doesn’t entertain them for any kind of access.
32
Input 4: Correct Email Address and Correct password
Output 4: Logged in and Dashboard opened (Login successful)
33
4.2.3 Test case 3: Chatting
Input1: Message entered “Hey”
Output1: Message sent successfully.
34
Chapter 5
ANALYSIS OF FLASH
The application has three types of chat – global, per course, and per project.
The admin is able to access all chat rooms.
All users are able to access the global chat room.
A user from a specific course can access only the specific course chat room.
A user from a specific group/team can access only the specific group/team chat room.
Only the proper chat rooms are displayed upon login, according to a specific user's permissions.
In the event of an accidental exit of an application, the session will be restored with all messages
when the user re-executes the application.
In future we may extend it to include features such as:
1. File Transfer
2. Voice Message
3. Video Message
4. Audio Call
5. Video Call
6. Group Call
We had undergone several testing phases and from that we found out that if any invalid values
are entered during registration, the user won't be able to create an account. While testing we
found out that when we try to login in if the user inputs any invalid credentials, he or she won't
be able to login into their accounts. When you send a message for example if you send a
message that says hi then the message will be stored in the database and will be displayed on
the output screen in the chat box. the message will be sent to the particular person and they
can reply to that message by typing their reply and similarly their message will be stored in the
database when the type and send it and it will be shown in the chat box hence chatting is
possible through the use of HTML CSS JavaScript my SQL and PHP.
Using these Technologies, we have successfully created a chatting app which can do
many functions such as one time messaging real time chatting edit profile aur we can see update
profile logging in and signing in and much more. Right now, our project is hosted on the xampp
local server but soon it will be hosted on an online server so that each and every person can use
it anytime anywhere with full privacy and you have no worries of exposing yourself to the
outer world. Using the xampp local server allows us to use too many features locally and
without any internet lag.
35
So, the basic concern was to respect the privacy and security of each and every person
so that they can chat privately and their chatting would be permanently deleted as soon as they
logout. We call this feature as one time messaging. One time messaging can be used to achieve
the goal of chatting in private as long as you are logged into your account the chatting is visible.
The feature is similar to the feature in Snapchat but there are few points that differ it from
Snapchat because in Snapchat when you press Back key the chatting is disappeared if you
haven't saved it but in flash as long as you are logged in to the account the chatting is visible
and you have access to all your talks to all your chats but as soon as you logout from the app
the chatting will be deleted in flash this is is our version of one time messaging because we
thought it would be more okay if the feature was used like this.
Few advantages of flash are that the chatting real time message is sent as soon as you
type it and hit the send button super speed and it is secure. Even the database has some security
it is like when you enter your password while registering the password is saved as a random
combination of alphabets and numbers as an encryption that no one can crack so without
password there is no access to the account and without credentials you don't have access to
anything here. The one who manages the database has the ability to only delete any user if he
or she has not used their account in a long time like a time span of 365 days. After that your
account will be permanently deleted from the flash’s server database.
This is a web-based App so we used Android studio to use it in phone but in local server
there is a concept which is called WebView used it so that we can access our app on our
personal mobile phones so there is more reliability and there is more comfort using on phone
rather than using it on laptop with big keypad you can just simply use it on your touchscreen
mobile phones with comfort. While choosing this project we were eager to know how other
chatting apps like WhatsApp and Instagram and telegram and messenger how they work. I
didn't know how they work but after working on this project I understood a lot about them. We
also understood so many things about Android studio and all the technologies used in this.
It brought us near to all the programming languages and all the frameworks and all the
coding which is done to create projects like this. So, the basic concern was to respect the privacy
and security of each and every person so that they can chat privately and their chatting would
be permanently deleted as soon as they logout. As the messages are no longer saved in the
database once you have logged out from your account the concern for privacy has been taken
into account. We call this feature as one time messaging. One time messaging can be used to
achieve the goal of chatting in private as long as you are logged into your account the chatting
is visible. Although most of the intellectual processes of testing are nearly identical to that of
36
review or inspection, the word testing is connoted to mean the dynamic analysis of the product
putting the product through its paces. Some of the common quality attributes include capability,
reliability, efficiency, portability, maintainability, compatibility, and usability.
A good test is sometimes described as one which reveals an error; however, more recent
thinking suggests that a good test reveals information of interest to someone who matters. The
communication process has undergone a drastic change over the years. It has travelled quite a
long distance right from the era of sending handwritten letters to the present age of instant
messaging. Today business is encountering fierce competition in the market and so the need
for real-time communication has augmented. Just a decade ago, the SMS was the order of the
day, but with the evolution of time, the popular chat-based apps have substituted its place. And
to be clear-cut, one must thank the emergence of the Smartphones which has played a dominant
role in bringing these applications to the forefront. The chat application provides a better and
flexible system for chatting. It is developed with recent advanced technologies in a way to
provide a reliable system. Main advantages of the system are instant messaging, real-world
connectivity, adding security, group chat, etc. This application can find better need in the
market for most of the organizations aim at having private applications for them. Additional
features will also be included in the system based on the public need which includes conference
call, video chat. Location share, etc. based on the need of people.
As this world is into the internet and nothing happens without it. This application will
have huge impact. It can reach people. Private organizations like IT parks, Colleges, Institutions
prefer to have separate chat applications over public one. Hence this application can be
implemented over there. Thus, this application has a huge impact over the people, mostly in
private networks. This provides good scope for developing a better application with additional
features than other traditional ones in the world. The chatting application has huge impact on
day-to-day life. There is numerous chatting application available in this world. Each application
has different additional features varying from other applications. These application
organizations compete with each other and add some competing features during each release.
They have reached people much and have an impact on people’s life. People find a better
application from an available internet application which they feel much reliable and secure. But
after having a brief discussion we can say that the purpose of developing this application is
fully served and we can use all the promised features successfully in order to achieve the
realtime chatting and one-time messages features to ease the concern for privacy, security and
speed. Hence Flash can do things the way it was supposed to perform.
37
CONCLUSION
So basically, the idea was to create a chatting application which is private, secure, fast and can
be used in real time. And we have successfully created an app that can do these things easily.
We see the app has different roles such as admin, user and peoples using it to communicate
with others. When a large number of simultaneous clients send requests to the same server
might cause many problems for this (too many users, more problems for the server).
Traffic congestion has always been a problem in the paradigm of the Chatting System.
You cannot call using this application right now but soon it will be available in the future. Your
profile picture is visible to every person using this app, whether known by you or not. We call
this feature as one time messaging. One time messaging can be used to achieve the goal of
chatting in private as long as you are logged into your account the chatting is visible.
The feature is similar to the feature in Snapchat but there are few points that differ it
from Snapchat because in Snapchat when you press Back key the chatting is disappeared if you
haven't saved it but in flash as long as you are logged in to the account the chatting is visible
and you have access to all your talks to all your chats but as soon as you logout from the app
the chatting will be deleted in flash this is is our version of one time messaging because we
thought it would be more okay if the feature was used like this.
38
REFERENCES
[1] M. Butler, “Android: Changing the Mobile Landscape”, Pervasive Computing, (2011), pp.
4-7.
[2] B. Proffitt, “Open Android-For better and for worse”, Spectrum, (2011), pp. 22– 24.
[3] K. W. Tracy, “Mobile Application Development Experiences on Apple’s iOS and Android
OS”, Potentials, (2012), pp. 30 – 34.
[4] A. Shabtai, Y. Fledel, U. Kanonov, Y. Elovici, S. Dolev and C. Glezer, “Google Android:
A Comprehensive Security Assessment”, Security & Privacy, (2010), pp. 35 – 44.
[5] A. Shabtai, Y. Fledel and Y. Elovici, “Securing Android-Powered Mobile Devices Using
SELinux”, Security & Privacy, (2010), pp. 36 – 44.
[6] M. Song, J. Sun, X. Fu and W. Xiong, “Design and Implementation of Media Player Based
on Android”, WICOM, (2010), pp. 1 – 4.
39