0% found this document useful (0 votes)
28 views49 pages

Project Report1

Uploaded by

Anu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views49 pages

Project Report1

Uploaded by

Anu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 49

MINDSCAPE - NURTURING MENTAL

WELLNESS ONLINE
Project report Submitted to

ALAGAPPA UNIVERSITY, KARAIKUDI


in partial fulfilment of the requirements for the award of the Degree of

BACHELOR OF SCIENCE
IN
COMPUTER SCIENCE

Submitted by

T. ANUSHA (Reg. No. 0221128007)


J. YAMUNA DEVI (Reg. No. 0221128039)

Under the guidance of


Dr.(TMT).R. Indra M.Sc., M.Phil., Ph.D.,

DEPARTMENT OF COMPUTER SCIENCE


GOVERNMENT ARTS COLLEGE FOR WOMEN
(AFFILIATED TO ALAGAPPA UNIVERSITY, KARAIKUDI)
SIVAGANGA – 630561
APRIL – 2024
GOVERNMENT ARTS COLLEGE FOR WOMEN
SIVAGANGA – 630561
DEPARTMENT OF COMPUTER SCIENCE

BONAFIDE
CERTIFICATE

This is to certify that the project work, entitled “MINDSCAPE – NURTURING MENTAL
WELLNESS ONLINE” is a bonafide work done by T. ANUSHA (Register No. 0221128007) and
J. YAMUNADEVI (Register No. 0221128039) Bachelor of Science in Computer Science. It has
been carried out under our supervision and guidance from December 2023 – April 2024.

Dr.(Tmt).R. Indra M.Sc., M.Phil., Ph.D.,

Internal Guide

Submitted for Viva Voice on _________________

Internal Examiner External Examiner


DECLARATION

We hereby state that the project work entitled “MINDSCAPE-


NURTURING MENTAL WELLNESS ONLINE” submitted to
Government Arts College for Women, Sivagangai, in partial fulfilment
of the requirement of B.Sc. Degree in Computer Science is our original
work and that was not previously submitted for the award of any degree.

Place: Sivagangai Name: T. ANUSHA


Date: Reg. No: 0221128007

Name: J. YAMUNADEVI
Reg. No: 0221128039
ACKNOWLEDGEMENT
ACKNOWLEDGEMENT

First and foremost, we are grateful to thank the Almighty God who has
showered his blessings on us all through our life and throughout this project.

We sincerely thank Dr.(TMT).R. Indra M.Sc., M.Phil., Ph.D., Principal,


Government Arts College for Women, Sivagangai, for having given us a chance to be in
this campus for three years.

We wish to express our deep sense of gratitude to Dr. (Tmt). R. Indra M.Sc.,
M.Phil., Ph.D., Head of the Department of Computer Science, Government Arts
College for Women, Sivagangai, for having given us permission to do the work on this
project.

We are thankful to Mr. A. Gurunathan B.Sc., PGDCA., Computer Programmer,


Department of Computer Science for allocating computers and support during the lab
time.

We are deeply grateful to all other teaching staff and non-teaching staff for their
help during our entire project work.

Finally, we thank our family members and friends for their support.
CONTENT
CONTENTS

CHAPTER TITLE PAGENO

ABSTRACT 1

1. INTRODUCTION 2

1.1. Introduction
1.2. System Environment
1.2.1. Hardware Specification
1.2.2. Software Specification
1.2.3. Software Description

2. SYSTEM ANALYSIS 18

2.1. Existing System


2.2. Proposed System
3. SYSTEM DESIGN 20
3.1. Module Description
3.2. Database Design

4. SYSTEM TESTING

4.1.Testing Methods
4.1.1. Unit Testing
4.1.2. Integration Testing
5. CONCLUSION

5.1 Conclusion
5.2 Future enhancement
6. APPENDICES

A) Screenshot
B) Sample Coding
7. BIBILIOGRAPHY
ABSTRACT
ABSTRACT

In today's fast-paced world, mental health issues have become


increasingly prevalent, affecting individuals of all ages and
backgrounds. The demands of modern life, coupled with societal
pressures and personal challenges, contribute to rising levels of stress,
anxiety, and depression. However, access to adequate mental health
support and resources remains limited, leaving many individuals
struggling in silence. Addressing this gap is crucial to ensuring that
everyone has access to the care and assistance they need to thrive. A
comprehensive mental health website serves as a valuable platform for
delivering essential information, resources, and support to individuals
INTRODUCTION
seeking help. Investing in mental health resources is not a societal
imperative for creating a healthier and more resilient community. In this
research, we aim to provide a comprehensive mental health platform
that serves as a beacon of support and empowerment for individuals
navigating their mental well-being journey. Our platform strives to
bridge the gap between those seeking assistance and the resources
necessary for fostering mental resilience and wellness. By offering a
user-friendly interface and a wealth of informative content, we aim to
demystify mental health and promote open discussions surrounding
emotional well-being. Through innovative features and evidence-based
resources, we endeavour to empower users to prioritize their mental
well-being and embark on a path towards holistic health and fulfilment.

1
INTRODUCTION

In an ever-evolving world fraught with myriad challenges, mental health has emerged
as a paramount concern affecting individuals across the globe. Amidst the hustle and
bustle of modern life, navigating mental well-being has become increasingly complex
and demanding. Recognizing this urgent need for support and guidance, our platform
stands as a beacon of solace and empowerment for individuals striving to prioritize
their mental health. Our mission lies a commitment to fostering resilience, self-care,
and holistic wellness.

Through a comprehensive suite of features and resources, we offer users a


multifaceted toolkit to address their mental health needs with confidence and
compassion. From curated articles and expert insights to interactive forums and
personalized support, our platform serves as a dynamic hub for learning, sharing, and
growth. Mindscape provides a safe and supportive space where users can explore topics
ranging from stress management and mindfulness to coping strategies and self-
discovery.

Beyond mere information dissemination, our platform fosters meaningful


connections and collective action to drive positive change in the broader mental health
landscape. By advocating for destigmatization, promoting resilience-building
initiatives, and amplifying diverse voices, we strive to create a world where mental
health is recognized as a fundamental human right. It acts as a community of
compassion, understanding, and resilience, where every individual has the opportunity
to thrive. This platform is a space where mental wellness is not just a destination but a
journey of growth, healing, and empowerment.

2
System works as follows:

• Users can securely log in to access personalized content and receive tailored feedback
on their mental health journey, ensuring privacy and data protection.

• Users access mental health resources including blogs, quizzes, and meditation/yoga
videos.

• Chatbot provides support and guidance to users seeking assistance or information.

• Access Meditation and Yoga videos, Motivational content uplifts users and encourages
positive thinking.

• Users can explore a wide range of psychological facts to enhance their understanding
of mental health.

• User feedback, enhance the platform's effectiveness in providing relevant resources


and support.

1.2.SYSTEM ENVIRONMENT
1.2.1 HARDWARE SPECIFICATION

• Main Processor : Intel Core i3 or Above


• RAM : 4 GB or Above
• Display Type : FULL HD (1920 x 1080)
• Hard Disk : 128 GB SSD
• Keyboard : 108 Keys
• Mouse : Optical mouse
1.2.2. SOFTWARE SPECIFICATION

• Operating System : Windows 7


• Front End 3
: HTML,CSS,JS
• Back End : Python with Flask
1.2.3. SOFTWARE DESCRIPTION
FRONT END : HTML

HTML, which stands for Hyper Text Markup Language, is the standard markup
language used to create and structure web pages.

• It provides a set of elements or tags that define the structure and content of a
web document. HTML is being widely used to format web pages with the
help of different tags available in HTML language.
• HTML is a standardized system for tagging text files to achieve font, colour,
graphic, and hyperlink effects on web pages.
• Elements are the building blocks of HTML documents, each serving a
specific purpose in structuring content.

• Attributes modify the behaviour or appearance of HTML elements, such as


specifying the source of an image or the destination of a hyperlink.
• HTML ensures web accessibility by incorporating features like alt attributes for
images.
• HTML includes features that make web content accessible to people with
disabilities, such as providing alternative text for images to be read by screen
readers.
• It is compatible with all modern web browsers and backward compatible: HTML
is supported by all major web browsers and maintains compatibility with older
versions, ensuring consistent rendering across platforms.
Applications of HTML

• Web pages development - HTML is used to create pages which are rendered over
the web. Almost every page of web is having html tags in it to render its details in
browser.
• Internet navigation - HTML provides tags which are used to navigate from one page
to another and is heavily used in internet navigation.
• Responsive UI - HTML pages now-a-das works well on all platforms, mobile, tabs,
desktop or laptops owing to responsive4 design strategy.
• Offline support - HTML pages once loaded can be made available offline on the
machine without any need of internet.
• Game development - HTML5 has native support for rich experience and is now

Cascading Style Sheet


CSS, or Cascading Style Sheets, is a fundamental technology used in web
development to control the visual presentation of HTML elements on a webpage. It
allows developers to define styles such as colours, fonts, layout, and spacing, thereby
enhancing the appearance and usability of websites.

• CSS operates by selecting HTML elements and applying styling rules to them,
enabling designers to create visually appealing and cohesive web interfaces.
With CSS, developers can achieve a wide range of design effects, from simple
text formatting to complex layouts and animations.
• Cascading Style Sheets (CSS) is a style sheet language used to define the
presentation and layout of HTML documents.
• It provides a way to separate the content of a webpage from its presentation,
allowing developers to control the appearance of multiple web pages at once.
• CSS rules consist of selectors and declarations, where selectors target HTML
elements and declarations specify how those elements should be styled.
• Styles can be applied inline, within the HTML document, or in external CSS
files, allowing for easy maintenance and consistency across a website.
• CSS offers a wide range of styling options, including fonts, colours, margins,
padding, borders, and animations, making it an essential tool for web design
and development.
• CSS allows designers to implement visually appealing effects and animations,
improving the overall user experience of a website or application.
• CSS Grid layout module enables developers to create complex and responsive
layouts with ease, offering more control and flexibility compared to traditional
layout methods like floats and positioning.

5
JAVASCRIPT

• JavaScript, often abbreviated as JS, is a high-level, interpreted programming


language primarily used for front-end web development.
• It enables interactive elements and dynamic content on websites, enhancing user
experience and functionality.
• With its versatility, JavaScript can be utilized to create interactive web
applications, implement client-side form validation, handle asynchronous tasks,
and manipulate HTML and CSS elements dynamically.
• As a core technology of the web alongside HTML and CSS, JavaScript plays a
pivotal role in modern web development, empowering developers to create
dynamic, responsive, and engaging user interfaces.
• JavaScript is a scripting language that runs on the client side, directly within the
user's web browser.
• It is commonly used to add interactivity and behaviour to web pages, allowing for
features like animations, form validation, and dynamic content updates without
needing to reload the entire page.
• JavaScript is also increasingly utilized on the server side, like Node.js, which
enable developers to build scalable, real-time web applications.
• JavaScript serves as the backbone for dynamic web development, operating
differently between the front end and back end.
• On the client side, it enhances user experience and interacts with web elements,
while on the server side, frameworks like Node.js enable server operations and
data processing.
• This versatility allows for unified development, empowering developers to build
full-stack applications seamlessly.

6
Applications of JavaScript:
• JavaScript brings websites to life with interactive features like dropdown menus
and real-time updates, enhancing user engagement.
• Frameworks like React and Angular streamline frontend development by providing
reusable components, speeding up the process and making code more
maintainable.
• Node.js enables the creation of scalable web applications by handling a large
number of concurrent connections efficiently.
• With React Native and Native Script, developers can use JavaScript to build
mobile apps for both iOS and Android, sharing code and speeding up development.
• JavaScript,
Scripting along with libraries like Phaser, allows developers to create browser-
Language
based games and immersive experiences without the need for plugins, reaching a
• A script is a set of programming instructions that is interpreted at runtime.
wide audience across different devices.
• A script language is a language that interprets scripts at runtime.
• The purpose of the scripts is usually to enhance the performance or perform
routine tasks for an application.
• Scripts
Python containFramework
with Flask a series of commands that a software, application or scripting
engine interprets one at a time within a runtime
Python with Flask is a powerful combination for web development, offering simplicity and
• Python for server-side programming with Flask, interacts with JavaScript by
flexibility. Flask, a lightweight web framework, empowers developers to create web
dynamically generating HTML content embedded with JavaScript code that runs
applications using Python. Its minimalistic design allows for quick setup and easy
in the client's web browser, enabling interactive and dynamic web applications.
customization based on project requirements.
• Python Flask facilitates seamless integration of server-side logic, including
Leveraging Flask's built-in features and extensions, developers can rapidly build scalable
Python code, with client-side scripting languages like JavaScript, allowing
and efficient web applications. With Flask's integration of Jinja2 templating and Werkzeug
dynamic rendering of content in HTML pages.
WSGI toolkit, handling HTTP requests and rendering dynamic content becomes seamless.
• Flask, combined with JavaScript, facilitates dynamic and interactive web
application
Supported development,
by a vibrant leveraging
community Flask
and the for the backend
extensive logic and JavaScript
Python ecosystem, Flask is an
for choice
excellent frontend
forinteractivity.
building robust and extensible web applications. Here are some key
points about Flask.

• Flask simplifies web development by providing a clean and minimalistic


Common uses of Flask Framework
framework for building web applications in Python.
• It• follows
Flask, aa modular design,
lightweight allowing
Python developers simplifies
microframework, to add or web
remove features based
development.
7
on
• project requirements.
Developers leverage Flask's minimal setup and flexible design for various
• Flask's simplicity makes it easy to understand and use, making it suitable for
projects.
Characteristics of Flask Framework
Flask exhibits five important characteristics which makes it popular choice among
developers.

• Lightweight
• Flexible
• Extensible
• Minimalistic
• Scalable

Python-Flask Environment Setup

In order to develop and run Python-Flask web pages these vital components are
needed to be installed on your computer.

• Python: Flask is a Python web framework, so you need to have Python


installed on your system.
• Flask: Install Flask using pip, Python's package manager, either globally or
within a virtual environment.

8
• Virtual environment (optional but recommended): Helps manage
dependencies and isolate your project's environment from other Python
projects.
• Additional Python packages: Depending on your project's requirements, you
may need to install additional Python packages/modules for database
connectivity, form handling, authentication, etc.
• Text editor or IDE: Choose a text editor or integrated development
environment (IDE) for writing your Flask application code. Examples include
Visual Studio Code, PyCharm, Sublime Text, etc.
• Web browser: You'll need a web browser to view and interact with your Flask
website during development and testing. Common choices include Chrome,
Firefox, Safari, etc.
• Terminal or command prompt: You'll use the terminal or command prompt to
navigate to your project directory, start the Flask development server, and
manage other aspects of your Flask application.

Database
• A database is a separate application that stores a collection of data. Each
database has one or more distinct APIs for creating, accessing, managing,
searching, and replicating the data it holds.
• Other kinds of data stores can also be used, such as files on the file system or
large hash tables in memory but data fetching and writing would not be so fast
and easy with those type of systems.
• Scalability allows the database to handle growing volumes of data and users.
• Supports various applications and business processes by providing data
storage and access capabilities.
• Offers mechanisms for data back-up, recovery and maintenance to ensure
continuity and reliability.

9
• In this project, we use SQLite to store and manage data. SQLite is a lightweight
database engine that requires no configuration, making it ideal for embedded
applications and local data storage needs.
• It is widely used in software development for its simplicity, reliability, and ease of
integration.

SQLite is a software that –

• Facilitates the creation and management of relational databases using SQL queries.
• Lightweight, Self-contained, and required minimal configuration making it ideal for
embedded systems and small-scale applications.
• Ensure Data integrity.
• Its widespread usage includes mobile app development, website backends, and
desktop applications, owing to its simplicity and versatility.

SQLAlchemy

• SQLAlchemy is a Python SQL toolkit and Object-Relational Mapping (ORM)


library.
• It provides a high-level abstraction over database operations, allowing developers to
interact with databases using Python objects and methods.
• SQL Alchemy’s ORM feature enables the mapping of Python classes to database
tables, simplifying database interactions and promoting code readability and
maintainability.
• SQLAlchemy also offers advanced features such as database migration and support
for multiple database backends.
• This makes it as a versatile choice for building scalable and maintainable device
driven operations.

Relationship

• Developers use SQLAlchemy to interact with SQLite databases.

• SQLAlchemy acts as the intermediary between the application and the database,
providing tools for defining database models, executing queries, managing
10
connections, and performing transactions.
• This integration allows developers to work with databases using familiar Python
Advantages of Python Flask Framework
Following are the top 10 advantages of Python Flask Framework which are as
follows:

1. Lightweight and Minimalistic:

Flask is lightweight and minimalistic, allowing developers to build web


applications quickly without unnecessary overhead.

2. Easy to Learn and Use:

Flask's simple and intuitive syntax makes it easy for beginners to learn and start
.
building web applications.

3. Flexibility:

Flask provides developers with the flexibility to choose their preferred tools and
libraries, allowing for customizations tailored to specific project requirements.

4. Built-in Development Server:

Flask comes with a built-in development server, making it easy to develop and test
web applications locally without additional setup.

5. Extensibility:

Flask's modular design and extensive ecosystem of extensions allow developers to


add additional functionality as needed.

6. Jinja2 Templating Engine:

Flask uses the Jinja2 templating engine, which provides powerful template
inheritance and dynamic content rendering capabilities for building dynamic web
11
pages.

7. RESTful Support:
Flask has built-in support for building RESTful APIs, making it easy to create

OPERATING SYSTEM: WINDOWS 7


Windows 7 is an operating system released by Microsoft on October 22, 2009.
Like previous versions of Windows, Windows 7 has a graphical user interface (GUI)
that allows you to interact with items on the screen using a keyboard and mouse.

However, Windows 7 also includes a feature called “Windows Touch” that


supports touchscreen input and multitouch functionality. Windows 7 is bundled with
several touch-ready programs that are designed for touchscreen use.

Windows 7 also includes several new multimedia features. The


“HomeGroup” feature makes it easy to share media files and other data between
computers. It also makes it possible to share printers at a home network. The
12 you to access the music, video, and
“Remote Media Streaming” feature allows
photo libraries on your computer from remote locations.
• Simple
Windows 7 makes it easier to search and use information, including local,
network and Internet search functions. The intuitive user experience will be
more advanced. It also integrates automated application submission and
cross-program data transparency.
13

• Efficiency
2.SYSTEM ANALYSIS

A single-user application which is typically found on a desktop computer


there is no need for any access control – the user has access to every function
within the application. However, in a 14
multi-user application which is deployed
over numerous devices which are linked together in a network it is more than
likely that not all functionality will be available to all users.
2.1. EXISTING SYSTEM

2.2. PROPOSED SYSTEM


To address these shortcomings, a modern mental health platform is
proposed, aiming to provide accessible, affordable and stigma-free support.
Through digital solutions such as educational resources, mental health assessments
and mental-health chatbot, individuals can access mental health assistance from
the comfort of their own homes.
15
The platform will prioritize inclusivity and diversity, ensuring that
individuals from all backgrounds feel welcome and represented in the mental
It has an object-oriented model: Being an object-oriented language, Java treats
everything as Object. Nothing can be coded in it without declaring objects and
classes.

16
Apache Spark includes several libraries to help build applications for machine learning
(MLlib), stream processing (Spark Streaming), and graph processing (Graph).

The biggest claim from Spark regarding speed is that it is able to run programs up to
100x faster than Hadoop Map Reduce in memory or 10 x faster on disk." Spark could
make this claim because it does the processing in the main memory of the worker
nodes and prevents the unnecessary I/O operations with the disks. The other
advantage Spark offers is the ability to chain the tasks even at an application
programming level without writing onto the disks at all or minimizing the number of
write to the disks.

4.2 CASE STUDY

Our project involves the usage of Apache Spark to analyze real time tweets. The
objective of our case study is to find the polarity of the words (in tweets) retrieved to
identify whether the tweet has elements of depression or stress factor indicated to
calculate its polarity.

Fig. Framework for Twitter Analysis Each step in the framework involves several
subtasks

Figure: Framework for Twitter Analysis

4.2.1 DATA COLLECTION:

Data in the form of raw tweets is retrieved by using the Scala library “Twitter4j” which
provides a package for real time twitter streaming API. The API requires us to register
a developer account with Twitter and fill in parameters such as consumerKey,
consumerSecret, accessTokenaccess, and TokenSecret. This API allows getting all
random tweets or filtering data by using keywords. Filters supports to retrieve tweets,
which match a specific criterion defined by the developer. We used this to retrieve
tweets related to specific keywords, which are taken as input from users. Initially, we
set at least set an application name and mode. We execute the program in local mode
instead of cluster. Then, input array of keywords is provided as an argument to
Streaming Context “ssc” using “sc” where “sc” is spark context. For example, on
17
inputting multiple keywords like, ‘Depression’, 'Stress' the output we obtained from 15
seconds’ window time was the live stream of tweets associated with these keywords.
Only caveat of using filters is that if not wisely chosen we will not get required
information.

4.2.2 DATA PROCESSING:

Data processing involves Tokenization, which is the process of splitting the tweets into
individual words called tokens. Tokens can be split using whitespace or punctuation
characters. It can be unigram or bigram depending on the classification model used.
The bag-of words model is one of the most extensively used model for classification. It
is based on the fact of assuming text to be classified as a bag or collection of
individual words with no link or interdependence. The simplest way to incorporate this
model in our project is by using unigrams as features. It is just a collection of
individual words in the text to be classified, so, we split each tweet using whitespace

4.2.3 DATA FILTERING:

A tweet acquired after data processing still has a portion of raw information in it,
which we may or may not find useful for our application. Thus, these tweets are
further filtered by removing stop words, numbers and punctuations. Stop words: For
example, tweets contain stop words which are extremely common words like “is”,
“am”, “are” and holds no additional information. These words serve no purpose and
this feature is implemented using a list stored in stopfile.dat. We then compare each
word in a tweet with this list and delete the words matching the stop list.

• Remove links and images


• Remove hashtags
• Remove @ mentions
• Remove emojis
• Remove stop words
• Remove punctuation
• Get rid of stuff like "what's" and making it "what is'

4.6.4 FEATURE EXTRACTION

TF-IDF is a feature vectorization method used in text mining to find the importance of
a term to a document in the corpus. Feature extraction involves “mlib” library of
Apache Spark. The recommended API is the Data Frame based API. This feature is
useful for a case where we need to word clouds. However, this project is more focused
towards finding depression sentiment in twitter streams so TF-IDF is not implemented.

18
4.6.5 SENTIMENT ANALYSIS

Sentiment analysis is done by using custom algorithm, which finds polarity as below.
Finding polarity: For discovering the polarity, we used a simple algorithm of counting
positive and negative words in a tweet. For both, positive (depression indicators) and
negative (all others) words, different lists were made. Next step is to compare every
word in a tweet against both these lists. If the current word matches a word in positive
list, then a score of one is incremented and if a negative word is found then it is
decremented. Words that are more positive lead to higher sentiment score. However,
NLP along with Machine learning prospects can be used in order to enhance the
accuracy levels of the system and thus can be used to predict accurate sentiment
analysis, which provide complex algorithms to predict it. Sentiment Analysis output:
The output contains a list of tweets in real time along with their sentiment score on
the left-hand side. The neutral tweets or tweets, which does not have indicators, are
ignored

Sentiment Analysis output: The output contains a list of tweets in real time along with
their sentiment score on the left-hand side. The first tweet has score of two, which is
due to two negative keywords. Next two tweets are positive as they contain keywords
like “good” and “great. Both these words are in the positive words list. It is to be noted
that if a tweet has a score of zero, then it is ignored from final output. The problem
with neutral tweets is that they serve no purpose, as they do not convey any specific
indicator to person’s mental stature.

19
5.
SYSTEM DESIGN

5.1. INTRODUCTION

Systems design implies a systematic approach to the design of a system. It may take
a bottom-up or top-down approach, but either way the process is systematic wherein
it takes into account all related variables of the system that needs to be created—
from the architecture, to the required hardware and software, right down to the data
and how it travels and transforms throughout its travel through the system. Systems
design then overlaps with systems analysis, systems engineering and systems
architecture.

The systems design approach first appeared right before World War II, when engineers
were trying to solve complex control and communications problems. They needed to
be able to standardize their work into a formal discipline with proper methods,

20
especially for new fields like information theory, operations research and computer
science in general.

5.2 DATA FLOW DIAGRAM

A data flow diagram (DFD) maps out the flow of information for any process or
system. It uses defined symbols like rectangles, circles and arrows, plus short text
labels, to show data inputs, outputs, storage points and the routes between each
destination. Data flowcharts can range from simple, even hand-drawn process
overviews, to in-depth, multi-level DFDs that dig progressively deeper into how the
data is handled. They can be used to analyze an existing system or model a new one.
Like all the best diagrams and charts, a DFD can often visually “say” things that would
be hard to explain in words, and they work for both technical and nontechnical
audiences, from developer to CEO. That is why DFDs remain so popular after all these
years. While they work well for data flow software and systems, they are less
applicable nowadays to visualizing interactive, real-time or database-oriented
software or systems.

Symbols and Notations Used in DFDs


Two common systems of symbols are named after their
creators:  Yourdon and Coad

• Yourdon and DeMarco


• Gane and Sarsen

One main difference in their symbols is that Yourdon-Coad and Yourdon-DeMarco use
circles for processes, while Gane and Sarson use rectangles with rounded corners,
sometimes called lozenges. There are other symbol variations in use as well, so the
important thing to keep in mind is to be clear and consistent in the shapes and
notations you use to communicate and collaborate with others.

Using any convention’s DFD rules or guidelines, the symbols depict the four
components of data flow diagrams.
• External entity: an outside system that sends or receives data, communicating
with the system being diagrammed. They are the sources and destinations of
information entering or leaving the system. They might be an outside
organization or person, a computer system or a business system. They are also
known as terminators, sources and sinks or actors. They are typically drawn on
the edges of the diagram.
• Process: any process that changes the data, producing an output. It might
perform computations, or sort data based on logic, or direct the data flow based
on business rules. A short label is used to describe the process, such as “Submit
payment.”

21
• Data store: files or repositories that hold information for later use, such as a
database table or a membership form. Each data store receives a simple label,
such as “Orders.”

Data flow: the route that data takes between A data flow diagram is graphical
tool used to describe and analyze movement of data through a system. These are the
central tool and the basis from which the other components are developed. The
transformation of data from input to output, through processed, may be described
logically and independently of physical components associated with the system.
These are known as the logical data flow diagrams. The physical data flow diagrams
show the actual implements and movement of data between people, departments and
workstations. A full description of a system actually consists of a set of data flow
diagrams. Using two familiar notations Yourdon, Gane and Sarson notation develops
the data flow diagrams. Each component in a DFD is labeled with a descriptive name.
Process is further identified with a number that will be used for identification purpose.
The development of DFD’S is done in several levels. Each process in lower level
diagrams can be broken down into a more detailed DFD in the next level. The lop-
level diagram is often called context diagram. It consists a single process bit, which
plays vital role in studying the current system. The process in the context level
diagram is exploded into other process at the first level DFD.

The idea behind the explosion of a process into more process is that
understanding at one level of detail is exploded into detail at the next level. This is
done until further explosion is necessary and an adequate amount of detail is
described for analyst to understand the process.

Larry Constantine first developed the DFD as a way of expressing system


requirements in a graphical from, this lead to the modular design.

A DFD is also known as a “bubble Chart” has the purpose of clarifying system
requirements and identifying major transformations that will become programs in
system design. So it is the starting point of the design to the lowest level of detail. A
DFD consists of a series of bubbles joined by data flows in the system.

5.2.1 DFD SYMBOLS:


In the DFD, there are four symbols
1. A square defines a source(originator) or destination of system data
2. An arrow identifies data flow. It is the pipeline through which the information flows
3. A circle or a bubble represents a process that transforms incoming data flow into
outgoing data flows.

4. An open rectangle is a data store, data at rest or a temporary repository of data

22
Process that transforms data flow.
Source or Destination of data

Data flow

Data Store

5.2.2 CONSTRUCTING A DFD:


Several rules of thumb are used in drawing DFD’S:

1. Process should be named and numbered for an easy reference. Each name should
be representative of the process.

2. The direction of flow is from top to bottom and from left to right. Data traditionally
flow from source to the destination although they may flow back to the source.
One way to indicate this is to draw long flow line back to a source. An alternative
way is to repeat the source symbol as a destination. Since it is used more than
once in the DFD it is marked with a short diagonal.

3. When a process is exploded into lower level details, they are numbered.
4. The names of data stores and destinations are written in capital letters. Process
and dataflow names have the first letter of each work capitalized

A DFD typically shows the minimum contents of data store. Each data store
should contain all the data elements that flow in and out.

Questionnaires should contain all the data elements that flow in and out.
Missing interfaces redundancies and like is then accounted for often through
interviews.

DFD rules and tips:


1. Each process should have at least one input and an output.
2. Each data store should have at least one data flow in and one data flow out.
3. Data stored in a system must go through a process.
4. All processes in a DFD go to another process or a data store.

23
5.2.3 DFD SYMBOLS

24
5.3 E – R DIAGRAMS

 The relation upon the system is structure through a conceptual ER-Diagram, which
not only specifics the existential entities but also the standard relations through
which the system exists and the cardinalities that are necessary for the system state
to continue.

 The entity Relationship Diagram (ERD) depicts the relationship between the data
objects. The ERD is the notation that is used to conduct the date modeling activity
the attributes of each data object noted is the ERD can be described resign a data
object descriptions.

 The set of primary components that are identified by the ERD are

 Data object  Relationships

 Attributes  Various types of indicators.

The primary purpose of the ERD is to represent data objects and their relationships.

5.3.1 ENTITY

Entities are represented by means of rectangles. Rectangles are named with the entity
set they represent.

5.3.2 ATTRIBUTES

Attributes are the properties of entities. Attributes are represented by means of ellipses.
Every ellipse represents one attribute and is directly connected to its entity (rectangle).

25
If the attributes are composite, they are further divided in a tree like structure. Every
node is then connected to its attribute. That is, composite attributes are represented by
ellipses that relate to an ellipse.

5.3.3 RELATIONSHIP
Relationships are represented by diamond-shaped box. Name of the relationship is
written inside the diamond-box. All the entities (rectangles) participating in a
relationship, are connected to it by a line.

5.3.4 BINARY RELATIONSHIP AND CARDINALITY

A relationship where two entities are participating is called a binary relationship.


Cardinality is the number of instances of an entity from a relation that can be
associated with the relation.

One-to-one − when only one instance of an entity is associated with the relationship, it
is marked as '1:1'. The following image reflects that only one instance of each entity
should be associated with the relationship. It depicts one-to-one relationship.

26
Many-to-one − when more than one instance of entity is associated with the
relationship, it is marked as 'N:1'. The following image reflects that more than one
instance of an entity on the left and only one instance of an entity on the right can be
associated with the relationship. It depicts many-to-one relationship.

5.4 DATA DICTONARY


After carefully understanding the requirements of the client the the entire data
storage requirements are divided into tables. Moreover, Additional data like country-
time zone data, depression polarity lookup and stop words data as in the figure below.

FIG: 5.4.1 Geo location Tagged lookup

27
6. OUTPUT DESIGN

28
29
6.5 OUTPUT PROCESSED TWEETS

6.6 ACTUAL OUTPUT

30
31
32
7. SYSTEM TESTING
AND
IMPLEMENTATION

7.1. INTRODUCTION

Software testing is a critical element of software quality assurance and


represents the ultimate review of specification, design and coding. In fact, testing is
the one-step in the software engineering process that could be viewed as destructive
rather than constructive.

33
A strategy for software testing integrates software test case design methods
into a well-planned series of steps that result in the successful construction of
software. Testing is the set of activities that can be planned and conducted
systematically. The underlying motivation of program testing is to affirm software
quality with methods that can economically and effectively apply to both strategic to
both large and small-scale systems.

7.2. STRATEGIC APPROACH TO SOFTWARE TESTING

The software engineering process can be viewed as a spiral. Initially system


engineering defines the role of software and leads to software requirement analysis
where the information domain, functions, behavior, performance, constraints and
validation criteria for software are established. Moving inward along the spiral, we
come to design and finally to coding. To develop computer software we spiral in along
streamlines that decrease the level of abstraction on each turn.

A strategy for software testing may also be viewed in the context of the spiral.
Unit testing begins at the vertex of the spiral and concentrates on each unit of the
software as implemented in source code. Testing progress by moving outward along
the spiral to integration testing, where the focus is on the design and the construction
of the software architecture. Talking another turn on outward on the spiral, we
encounter validation testing where requirements established as part of software
requirements analysis are validated against the software that has been constructed.
Finally, we arrive at system testing, where the software and other system elements
are tested.

34
UNIT TESTING

MODULE TESTING

Component Testing
SUB-SYSTEM TESING

SYSTEM TESTING
Integration Testing

ACCEPTANCE TESTING
User Testing

Software testing is a process, to evaluate the functionality of a software application


with an intent to find whether the developed software met the specified requirements
or not and to identify the defects to ensure that the product is defect free in order to
produce the quality product.

7.2.1 SOFTWARE TESTING TYPES

Manual Testing:

Manual testing is the process of testing the software manually to find the defects.
Tester should have the perspective of end users and to ensure all the features are
working as mentioned in the requirement document. In this process, testers execute
the test cases and generate the reports manually without using any automation tools.

Automation Testing:

Automation testing is the process of testing the software using an automation tool to
find the defects. In this process, testers execute the test scripts and generate the test
results automatically by using automation tools. Some of the famous automation
testing tools for functional testing are QTP/UFT and Selenium.

Testing Methods:

• Static Testing
• Dynamic Testing
35
Static Testing:

It is also known as Verification in Software Testing. Verification is a static method of


checking documents and files. Verification is the process, to ensure that whether we
are building the product right i.e., to verify the requirements which we have and to
verify whether we are developing the product accordingly or not. Activities involved
here are Inspections, Reviews, and Walkthroughs

Dynamic Testing:

It is also known as Validation in Software Testing. Validation is a dynamic process of


testing the real product. Validation is the process, whether we are building the right
product i.e., to validate the product which we have developed is right or not.

Testing Approaches:

• White Box Testing


• Black Box Testing
• Grey Box Testing

White Box Testing:

It is also called as Glass Box, Clear Box, and Structural Testing. White Box Testing is
based on applications internal code structure. In white-box testing, an internal
perspective of the system, as well as programming skills, are used to design test
cases.

This testing is usually done at the unit level.

Black Box Testing:

It is also called as Behavioral/Specification-Based/Input-Output Testing. Black Box


Testing is a software testing method in which testers evaluate the functionality of the
software under test without looking at the internal code structure.

Grey Box Testing:

Grey box is the combination of both White Box and Black Box Testing. The tester who
works on this type of testing needs to have access to design documents. This helps to
create better test cases in this process.

Testing Levels:

36
• Unit Testing
• Integration Testing
• System Testing
• Acceptance Testing

Unit Testing:

Unit Testing is done to check whether the individual modules of the source code are
working properly. i.e. testing each unit of the application separately by the developer
in the developer’s environment. It is AKA Module Testing or Component Testing

Integration Testing:

Integration Testing is the process of testing the connectivity or data transfer between
couples of units tested modules. It is AKA I&T Testing or String Testing. It is subdivided
into Top-Down Approach, Bottom-Up Approach and Sandwich Approach (Combination
of Top Down and Bottom Up).

System testing (end to end testing):

It is a black box testing. Testing the fully integrated application, this is also called as
end-to-end scenario testing. To ensure that the software works in all intended target
systems. Verify thorough testing of every input in the application to check for desired
outputs. Testing of the user’s experiences with the application.

Acceptance Testing:
To obtain customer sign-off so that software can be delivered, and payments received.
Types of Acceptance Testing are Alpha, Beta & Gamma Testing.

Types of Black Box Testing:

• Functionality Testing
• Non-functionality Testing

Functional testing:

In simple words, what the system does is functional testing. To verify that each
function of the software application behaves as specified in the requirement
document. Testing all the functionalities by providing appropriate input to verify
whether the actual output is matching the expected output or not. It falls within the
scope of black box testing and the testers need not concern about the source code of
the application.

Non-functional testing:
37
In simple words, how well the system performs is non-functionality testing.
Nonfunctional testing refers to various aspects of the software such as performance,
load, stress, scalability, security, compatibility etc., Focus is to improve the user
experience on how fast the system responds to a request.

8.
CONCLUSION

38
8. 1 CONCLUSION

From future perspective, I would like to extend this project by implementing some
machine learning algorithms for applications like identifying the causes of depression,
factors alleviating the problems of depression and running the project on clusters to
expand its functionalities. Moreover, we would like to make a web application for users
to input keywords and get analyzed results. In this project, we have worked only with
unigram models, but we would like to extend it to bigram and further which will
increase linkage between the data and provide accurate sentiment analysis results.

Twitter is a source of vast unstructured and noisy data sets that can be processed to
locate interesting patterns and trends. Apache Spark proved prolific in extracting live
streams of data and has further capability to store batches of data in HDFS and other
major conventional storages. The processing capabilities of Spark makes the project
flexible to further extend to multiple nodes, thereby supporting distributed computing.
Real time data analysis makes it possible for business organizations to keep track of
their services and generates opportunities to promote, advertise and improve from
time to time.

39
8.2 LIMITATIONS
There are some limitations for the current system to which solutions can be provided
as a future development:

1. The system is not configured for multi- users at this time. The concept of
transaction can be used to achieve this.

2. Accuracy of the tweets and contextual mappings of natural utterances.


3. Lack of information from various social media sources to conduct extensive study

8.3 FUTURE IMPROVEMENT

As for other future developments, the following can be done:


• Visualization at different levels
• Expand the project to predict multiple disorders
• Analyze different social media platforms to extract information at different
dimensions

40
REFERENCES

[1] Dr. Khalid N. Alhayyan & Dr. Imran Ahmad “Discovering and Analyzing Important
Real-Time Trends in Noisy Twitter Stream” n.p

[2] J. Ramteke, S. Shah, D. Godhia, and A. Shaikh, “Election result prediction using
Twitter sentiment analysis,” in Inventive Computation Technologies (ICICT),
International Conference on, 2016, vol. 1, pp. 1–5.

[3] M. Desai and M. Mehta, "Techniques for sentiment analysis of Twitter data: A
comprehensive survey", 2016 International Conference on Computing,
Communication and Automation (ICCCA), 2016.

[4] Alexander Pak and Patrick Paroubek. "Twitter as a corpus for sentiment analysis
and opinion mining". In Proceedings of the Seventh International Conference on
Language Resources and Evaluation (LREC’10), may 2010.

[5] R. Mehta, D. Mehta, D. Chheda, C. Shah, and P. M. Chawan, “Sentiment analysis


and influence tracking using twitter,” International Journal of Advanced Research
in Computer Science and Electronics Engineering (IJARCSEE), vol. 1, no. 2, p. pp–
72, 2012.

[6] Mtibaa, M. May, C. Diot and M. Ammar, "PeopleRank: Social Opportunistic


Forwarding", 2010 Proceedings IEEE INFOCOM, 2010

41

You might also like