You are on page 1of 62

SLAMCHAT

A PROJECT REPORT

Submitted by

ARPITA BHARADWAJ
AVINASH SINGH

in partial fulfillment for the award of the degree

of

Master of Computer Application

INTEGRAL UNIVERSITY LUCKNOW

MAY, 2019
INTEGRAL UNIVERSITY: LUCKNOW

CERTIFICATE

Certified that this project report “SLAMCHAT” is the bonafide work of

“ARPITA BHARADWAJ and AVINASH SINGH” who carried out the

project work under my supervision.

Mr. Waseem Khan

Assistant Professor

Department of Computer Application

Integral University, Lucknow


INTEGRAL UNIVERSITY: LUCKNOW

CERTIFICATE

Certified that this project report “SLAMCHAT” is the bonafide work of

“ARPITA BHARADWAJ and AVINASH SINGH” who have

successfully carried out the project.

Dr. Mohd. Muqeem Dr. Mohd. Faisal

Project Coordinator Head

Department of Computer Application Department of Computer Application

Integral University, Lucknow Integral University, Lucknow


DECLARATION

“We hereby declare that this submission is our own work and that, to the

best of our knowledge and belief, it contains no material previously

published or written by another person nor material which has been

accepted for the award of any other degree or diploma of the university or

other institute of higher learning, except where due acknowledgment has

been made in the text”.

Date: 21st May, 2019

_________________________

ARPITA BHARADWAJ

_________________________

AVINASH SINGH
ACKNOWLEDGEMENT

It gives us great pleasure to present before you Project Report of MCA


project undertaken during MCA final year. We owe a special debt of
gratitude to our project guide Mr. Waseem Khan for his constant support
and guidance throughout the course of our work. He has made sincere
efforts to make the report more meaningful, complete, compact and
comprehensive.

We also take the opportunity to acknowledge the contribution of Dr.


Mohd. Faizal, Head of Department of Computer Application, Integral
University and Dr. Mohd. Muqeem our project coordinator for their
great support and guidance and motivation.

We are grateful to Mr. Mukesh Kumar Bharti, our project manager, who
cautioned us for various turns that may happen in course of project
training and accompanied us as a friend.

At last we give our special thanks to our batchmates for all the valuable
suggestions without which this report could not be completed.

THANK YOU
TABLE OF CONTENTS

CHAPTER NO. TITLE PAGE NO.

1. ABSTRACT
INTRODUCTION
2.
 Features
HARDWARE AND SOFTWARE REQUIREMENTS
 Hardware Rquirement
3.  Software Requirement
 Available Hardware
 Available Software
4. PROBLEM STATEMENT
FEASIBILITY STUDY
 Technical Feasibility
5.  Economic Feasibility
 Time Feasibility
 Legal Feasibility
REQUIREMENT ANALYSIS
6.  Functional Requirements
 Non-Functional Requiremnts
SOFTWARE TOOLS SPECIFICATION
 MySQL
7.  Language: JAVA
 Backend: HeidiSQL
 IDE Tool: MyEclipse 2014
PROJECT DESCRIPTION
8.  Scope Of The Project
 Module Description
SYSTEM ANALYSIS
9.  Iterative Model
 Design of Iterative Model
 Phases of Itereative Model
 Application of Iterative Model
 Advantages of Iterative Model
SYSTEM DESIGN
 External Design
10.
 Logical Design
 Physical Design
11. CONTEXT DIAGRAM
ER DIAGRAM
12.
 Components Of ER Diagram
DATA FLOW DIAGRAM
 DFD Symbols
13.  0-Level DFD
 1-Level DFD
 2-Level DFD
FLOWCHART
14.
 Flowchart Symbols
PROJECT SNAPSHOTS
 Snapshot 1: Main Page
 Snapshot 2: Login Page
 Snapshot 3: Register Page
 Snapshot 4: Forgot Password Page
 Snapshot 5: Dashboard Page
 Snapshot 6: Edit Profile Page
 Snapshot 7: Change Profile Picture Page
15.
 Snapshot 8: Notifications Page
 Snapshot 9: Select Questions Page
 Snapshot 10: Requests Page
 Snapshot 11: Friends List Page
 Snapshot 12: Preview Filled Page
 Snapshot 13: ChatBot Preview Page
 Snapshot 14: My SlamBook Page
 Snapshot 15: Fill Slam Page
 Snapshot 16: Admin Login Page
 Snapshot 17: Admin Dashboard Page
 Snapshot 18: Admin Add Course Page
 Snapshot 19: Admin Add Questions Page
 Snapshot 20: Admin Add Profession Page
 Snapshot 21: Admin Change Password Page
DATABASE DESIGN
 Table 1: Admin Table
 Table 2: User Table
 Table 3: Friend List Table
16.  Table 4: Slam Page Table
 Table 5: Question Table
 Table 6: Courses Table
 Table 7: User Questions Table
 Table 8: Profession Table
17. FUTURE ENHANCEMENTS
18. CONCLUSION
19. REFERENCES
BIODATA OF GROUP MEMBERS
20.  Member 1
 Member 2
ABSTRACT

In traditional slam book system a user needs to buy a particular slam

book and handover to it to them whom he/she wants to fulfill it. In this

system there is lack of privacy and there is a great chance to loss of data.

Slamme provides the user a online space to store their memories. All your

friends will be able to come together online and share their experiences.

Knowledge views and much more in just few clicks. Its a community site

that helps in getting your personalized slam book filled by your friends as

a token of friendship in a new and exciting manner with everything online

and easy.it also provides instant slams so that users can communicate

with other instantly.

SlamChat is an online website application which can be accessed by all

the users. This application is automated software application for viewing

profile, friend list, status, comment, like and related information about

user, etc are part of this system. User can view the profile and they can

invite their friends . Admin of higher authorities will delete and block the

user and they may accept or reject. Before approving user, admin will

look the request through this system and take decisions. This method will

improve the process of designing in organization by saving time and

resources.
INTRODUCTION

Social Networking - It's the way the 21st century communicates now. Social
networking is the grouping of individuals into specific groups, like small rural
communities or a neighborhood subdivision. Although social networking is possible
in person, especially in the workplace, universities, and high schools, it is most
popular online. This is because unlike most high schools, colleges, or workplaces, the
internet is filled with millions of individuals who are looking to meet other people.
Social Networking Website project itself is a huge project comprising various features
like profile updating, friend’s list organization and various other application to
enhance the overall look and feel of the website. However, in this project we are
basically working on two essential feature or module ( PROFILE MANAGEMENT &
FRIENDS ORGANIZATION ). PROFILE MANAGEMENT module maintain the
profile of a user like name, like, dislikes, hobbies, status etc. FRIENDS
ORGANIZATION module maintains the friend list, handles request and sends
request to the other user.
The idea of this SlamChat is derived application from the traditional slam book that
places the tricky questions that might your friends need to answer.

There are so many means by which you can recollect all sweet memories of your past
days. Among these, SlamChat plays a vital role in driving those memories. Its a web
portal to store the contacts and also the memories attached.
SlamChat, is an application with full of questions which your friends need to fill in
their own answers to those questions. This book is the remembrance of your old mates
or current. After a long time, if you happened to read those friend’s posts, it will
definitely brush-up their area of interests.
Another important fact that since all contact records are centralized, the user might
look this as a backup option for his / her cell phone contact directory.
FEATURES:

 Better user interface


 Customized set of question
 Time Saving
 Privacy and Security
 Instant slams
 Search friends
 Permanently delete your profile
 Personalized background
 Proper maintenance of friends record.
 Invitation facility is available.
 No paper work required.
 Reduce time consumption.
 Reduce error scope.
 E-mail facilities are there.
HARDWARE AND SOFTWARE REQUIREMENTS

A. HARDWARE REQUIREMENTS:

 Processor: Pentium 4 or above


 RAM: 512 MB or above
 Hard Disk: 20 GB or above
 I/O Devices: CRT or LCD Monitor, Normal or Multimedia
Keyboard, Compatible Mouse

B. SOFTWARE REQUIREMENTS:

 IDE Tool: Eclipse 2009 or above


 Operating System: Windows 7 or above
 Server: Tomcat 5 or above
 Browser: Any updated browser
 Database: MySQL 5.0 or above, Heidi SQL

C. AVAILABLE HARDWARE:

 Processor: Core i3
 RAM: 2Gb
 Hard Disk: 1TB
 I/O Devices: High resolution colored Monitor, Keyboard, Mouse

D. AVAILABLE SOFTWARE:

 IDE Tool: Eclipse 2014


 Operating System: Windows 8
 Server: Tomcat 7
 Browser: Mozilla Firefox, Google Chrome, Internet Explorer,
Microsoft Edge
 Database: MySQL 5.0, Heidi SQL
PROBLEM STATEMENT

In existing traditional system we follow a manual procedure in which user have to


carry a particular notebook on which he wants to fill up his slam book. Any user who
has carry or fill the slam book knows the frustration of waiting as the hard copy
travels here and there. The manual system does not has user friendly interface to
having quick authenticated access to document

 All work done on paper so data security is the biggest problem.


 There is no centralized database
 Humans are more prone to errors so there is always a possibility of errors in
producing results so data modification is not flexible.
 Traditional system is Not so User Friendly
 There is limitation of storage
 It is time consuming
 As all the work done is written on registers if any register is missed or damaged it
is simply very difficult to produce to present accurate figures.
FEASIBILITY STUDY

Every project is feasible for given unlimited resources and infinite time. Feasibility
study is an evaluation of the proposed system regarding its workablity,impact on the
organization ability to meet the user needs and effective use of resources. Thus when
a new application is proposed it normally goes through a feasibility study before it is
approved for development. Feasibility and risk analysis are related in many ways is a
project risk is great and feasibility of producing software is reduced. The feasibility
analysis in this project has been discuss below:

TECHNICAL FEASIBILITY:

Technical feasibility is frequently the most difficult area to ensure at this stage . It is
essential that the process of analysis and definition to be conducted parallel to
assessment of the technical feasibility. As very limited resources are required for this
project the development of the project is much easier and technologically feasible.

ECONOMIC FEASIBILITY:

An evaluation of development cost is weighted against the ultimate income of benefits


derived from the developed system. There was no need of extra hardware and
software for development of this project. Hence this project has economically justified
for the development.

TIME FEASIBILITY:

An evaluation of the time needed for the development of the project. The time
schedule required for the development of the project is very important, since more
development time effects machine time, costs and delays in the development of the
other systems. So the project should be complete within affixed schedule time as far
as concerned.
LEGAL FEASIBILITY:

In the legal Feasibility is necessary to check that the software we are going to
develop is legally correct which means that the ideas which we have taken for the
proposed system will legally be implemented or not so, it is also an important step in
feasibility study. Development of this project doesn’t involve any compromise to legal
issues or political factors. This proves that the development of this software is also
feasible in legal aspect.Being legally feasible also ensures the future scope of the
developed project.
REQUIREMENT ANALYSIS

The software requirement specification is produced at the culmination of the


analysis task. The function and performance allocated to software as part of
system engineering are refined by establishing a complete description, a detailed
functional description, a representation of system behavior, an indication of
performance requirements and design constraints, appropriate validation criteria
and other information requirements.

The Introduction of software requirements specification states the goals and


objectives of the software, describe it in context of the computer based system.
Actually the information may be nothing more than the software scope planning
document.

FUNCTIONAL REQUIREMENTS:

Functional requirements outline what the system must do, i.e., what services the
system present to the user? Following is a list of functionalities of the system. They
can register themselves in the system.

User should be able to:


1. View all the friend list.
2. Invite your friends through Facebook.
3. Create group and chat with friends.
4. They can easily change their profile easily.

Admin should be able to do-


1. They can add the user.
2. Can see all the user and profile.
3. Will be able to communicate to the user with the chatting.
NON-FUNCTIONAL SPECIFICATION:

Secure access of confidential data by user name and password. This application is
secure for every kind of its users, because if any user logout from any session then
nobody will be able to access his profile without knowing his confidential password.

 24 X 7 availability
 Better component design to get better performance at peak time.
 The database used here is robust, reliable & fast. So users will have to wait for
the output for very short time.
 This application can be accessed from any type of platform.
 There is no case of redundancy in the database so it will not take extra memory
space.
 Username & password are sent to the users via email after registration.
 Password recovery system is also provided in case of forgetting the password.
SOFTWARE TOOLS SPECIFICATION

MySQL:

Figure 1: Logo of MySQL


MySQL is the most popular Open Source Relational SQL Database Management
System. MySQL is one of the best RDBMS being used for developing various
web-based software applications. MySQL is developed, marketed and supported by
MySQL AB, which is a Swedish company.
MySQL is a popular choice of database for use in web applications, and is a central
component of the widely used LAMP open source web application software stack
(and other 'AMP' stacks). LAMP is an acronym for "Linux, Apache, MySQL,
Perl/PHP/Python." Free-software-open source projects that require a fullfeatured
database management system often use MySQL.
MySQL can be built and installed manually from source code, but this can be tedious
so it is more commonly installed from a binary package unless special customizations
are required. On most Linux distributions the package management system can
download and install MySQL with minimal effort, though further configuration is
often required to adjust security and optimization settings.
MySQL is a fast, easy-to-use RDBMS being used for many small and big businesses.
MySQL is developed, marketed and supported by MySQL AB, which is a Swedish
company. MySQL is becoming so popular because of many good reasons −

 MySQL is released under an open-source license. So you have nothing to pay to


use it.

 MySQL is a very powerful program in its own right. It handles a large subset of
the functionality of the most expensive and powerful database packages.
 MySQL uses a standard form of the well-known SQL data language.

 MySQL works on many operating systems and with many languages including
PHP, PERL, C, C++, JAVA, etc.

 MySQL works very quickly and works well even with large data sets.

 MySQL is very friendly to PHP, the most appreciated language for web
development.

 MySQL supports large databases, up to 50 million rows or more in a table. The


default file size limit for a table is 4GB, but you can increase this (if your
operating system can handle it) to a theoretical limit of 8 million terabytes (TB).

 MySQL is customizable. The open-source GPL license allows programmers to


modify the MySQL software to fit their own specific environments.

Language: JAVA:

Figure 2: Logo of JAVA


Java is a widely used programming language expressly designed for use in
the distributed environment of the internet. It is the most popular programming
language for Android smartphone applications and is also among the most favored for
the development of edge devices and the internet of things.

Java was designed to have the look and feel of the C++ programming language, but is
simpler to use and enforces an object-oriented programming model. Java can be used
to create complete applications that may run on a single computer or be distributed
among servers and clients in a network. It can also be used to build a small
application module or applet for use as part of a webpage.
It is easy for developers to write programs which employ popular software design
patterns and best practices using the various components found in Java EE. For
example, frameworks such as Struts and JavaServer Faces all use a Java servlet to
implement the front controller design pattern for centralizing requests.

A big part of the Java ecosystem is the large variety of open source and community
built projects, software platforms and APIs. For example, the Apache
Foundation hosts a variety of projects written using Java, including simple logging
frameworks for Java (SLF4J), both Yarn and Hadoop processing
frameworks, Microservices development platforms and integration platforms.

Java EE environments can be used in the cloud as well. Developers can build, deploy,
debug and monitor Java applications on Google Cloud at a scalable level.

In terms of mobile development, Java is commonly used as the programming


language for Android applications. Java tends to be preferred by Android developers
because of Java’s security, object-oriented paradigms, regularly updated and
maintained feature sets, use of JVM and frameworks for networking, IO and
threading.

Although Java is widely used, it still has fair criticisms. Java syntax is often criticized
for being too verbose. In response, several peripheral languages have emerged to
address these issues, including Groovy. Due to the way Java references objects
internally, complex and concurrent list-based operations slow the JVM.
The Scala language addresses many of the shortcomings of the Java language that
reduce its ability to scale.

There are three key platforms upon which programmers develop Java applications:

1. Java SE- Simple, stand-alone applications are developed using Java Standard
Edition. Formerly known as J2SE, Java SE provides all of the APIs needed to develop
traditional desktop applications.

2. Java EE- The Java Enterprise Edition, formerly known as J2EE, provides the
ability to create server-side components that can respond to a web-based
request-response cycle. This arrangement allows the creation of Java programs that
can interact with Internet-based clients, including web browsers, CORBA-based
clients and even REST- and SOAP-based web services.

3. Java ME- Java also provides a lightweight platform for mobile development
known as Java Micro Edition, formerly known as J2ME. Java ME has proved a
prevalent platform for embedded device development, but it struggled to gain traction
in the smartphone development arena.

Backend: HeidiSQL:

Figure 3: Logo of HeidiSQL

HeidiSQL is a free and open-source administration tool for MySQL and its forks, as
well as Microsoft SQL Server and PostgreSQL. Its codebase was originally taken
from Ansgar Becker's own MySQL-Front 2.5 software. Due to having sold the
MySQL-Front branding to an unrelated party, Becker chose "HeidiSQL" as a
replacement.

HeidiSQL has the following GUI features and capabilities:

 Server connection

 Multiple saved sessions with connection and credentials stored within


 Compressed client/server protocol for compatible servers
 Interface with servers via TCP/IP, named pipes (sockets) or a tunneling
protocol (SSH)
 Multiple parallelly running sessions in one window
 Manage users on the server: add, remove and edit users, and their credentials
 Manage user privileges globally and per database
 Export databases to SQL files or to other servers
 Multiple query tabs, with each one having multiple subtabs for batch results

 Server host

 View and filter all server variables, such as system_time_zone


 Edit all server variables, either for this session or with global scope
 View server statistical variables, and average values per hour & second
 Currently running processes to analyze executed SQL and to kill bad processes
 View command-statistics with percentage indicator bars per SQL command

 Databases

 View all databases on the server, connect to a single database to work with its
tables and data
 View connected databases' total and table size in KB/MB/GB within the
database/table tree structure
 Create new, alter existing databases' name, character set and collation, drop
(delete) databases

 Tables, views, procedures, triggers and events

 View all objects within the selected database, empty, rename and drop (delete)
objects
 Edit table columns, indexes, and foreign keys. Virtual columns on MariaDB
servers are supported.
 Edit view query and settings
 Edit procedure SQL body and parameters
 Edit trigger SQL body and settings
 Edit scheduled event SQL body time settings
IDE Tool: MyEclipse 2014:

Figure 4: Logo of MyEclipse 2014

MyEclipse 2014 is a commercially available Java EE and Ajax IDE created and
maintained by the company Genuitec, a founding member of the Eclipse Foundation.

MyEclipse is built upon the Eclipse platform, and integrates both proprietary and
open source code into the development environment.

MyEclipse has two primary versions (apart from the "Blue Edition and "MyEclipse
Spring Edition referred to below): a professional and a standard edition. The standard
edition adds database tools, a visual web designer, persistence
tools, Spring tools, Struts and JSF tooling, and a number of other features to the basic
Eclipse Java Developer profile. It competes with the Web Tools Project, which is a
part of Eclipse itself, but MyEclipse is a separate project entirely and offers a different
feature set.

MyEclipse has also been made available via Secure Delivery Center, a technology
that grew from its Pulse (ALM), brand, a provisioning tool that maintains Eclipse
software profiles, including those that use MyEclipse. Additionally, MyEclipse is
offering a customized version for IBM products, "MyEclipse Blue Edition", that adds
specific support for Rational Software and WebSphere development. Currently,
MyEclipse Blue Edition is available for Windows and Linux, though Mac is
unsupported.

Some of the features included are:

 Ajax Tools
 Java Persistence Tools: Hibernate, TopLink, Apache OpenJPA
 Spring Framework Tools
 Apache Struts Designer
 JavaServer Faces Designer
 Application server Connectors
 JavaServer Pages Development
 Enterprise JavaBeans 3.0 support
 Cascading Style Sheets editor
 JSTL support
 J2EE Development Tools
 Javascript debugger
 Matisse4MyEclipse - based on NetBeans GUI design tool (previously known as
Matisse)
 Support for UML
 Maven4MyEclipse - based on Apache Maven 2
 Connectors for databases of Oracle Database, MySQL, Microsoft SQL
Server, Sybase
 HTML 5 mobile tools
 REST API cloud tools
 HTML5 Visual Designer
PROJECT DESCRIPTION

In proposed system chances of losing data is not possible because data is maintained
in the form of database. Model designs also are updated in to database using a user
friendly GUI. This will reduce work for engineers. This application is an online
application which makes more flexible to access information.
The main objectives of the new system are mentioned below:-

1. Fast and Efficient: -


As compared to existing system, in new system the user can view and access designs
fast, easily and efficiently from the software.

2. Reliable and accurate: -


As in new system, the information is stored and processed in computers so that data
will be more reliable and accurate.

3. Centralized Data:
In the existing system, data records are kept under file maintenance system due to this
system the placement of the data is not at one particular place. But in new system,
each and every record is maintained on computer, which leads to the centralization of
data.

4 . Non Redundant Information: -


As in proposed system data is maintained on the computers so inconsistency does not
occur which will never lead to problem like duplication of data.

5. Easy to Access: -
As compared to existing system, in new system the users can easily and efficiently
accesses the information from the computer.
SCOPE OF THE PROJECT:

This is the most important aspect in the analyzing the total work of our system.
Scopes of the application are listed below.

 Organizing contacts is easy and can be retrieved in few clicks.

 Storing and writing one’s birthday on calendar, this traditional and time
consuming process can be bypassed once a record is entered.

 If sometime the user happened to write some mail to old mates, user may look
this application as alternative to the made note of mail address or email address.

 SlamChat is replacement of all its hard-copy analogs: telephone directories,


address books, business card binders, etc.

 Each record has more various fields making it possible to describe each contact in
detail.

 This system provides users to register their various types of profile like social,
personal, general, professional.

 This system provides users to send a scrap message, images, and data files to
their friends. User can maintain the scrap book whatever scraps he has send to
users.

 The system provides user to upload the photos so that user can maintain own
album.

 This system provides user to join the communities according to their scenario.

 This system provides the user to maintain their friend list and user can update
their friend list.

 This system provides user to send invitation to another friend and can add to their
friend list for future.
MODULE DESCRIPTION:

Basically the following modules are involved in the system:


 Admin
 User
 Registration

1. Admin:

This module deals with functionality of administration that includes addition and
deletion of various things like- he/she can add or delete any user account and update
the status of questions, etc. Admin can also act as a mediator b/w two parties.

2. User:

This module deals with the user interaction with project. In this module user (he/she)
can do the following things-

 User has to register in order to search for a friend

 After registration he/she update his/her profile.

 He/she directly search for friends.

 But he/she send a friend request to the person in order to fetch all the details
about the person.

 He/she can upload photos of him/her.

 He/she can feedback to admin.

 He/she can change his profile picture.

3. Registration:
This module deals with the registration of various users and after registration he/she
can get a unique id and password which they use in order log-in in the website.
SYSTEM ANALYSIS

From the inception of an idea for a software system, until it is implemented and
delivered to a customer and even after that, the system undergoes gradual
development and evolution. The software is said to have a life cycle composed of
several phases. In Traditional “Iterative Model” each phases has well-defined starting
and ending points, with clearly identifiable deliverables to the next phase. Here for the
project being submitted we have followed “Iterative Model”.

ITERATIVE MODEL:

Figure 5: Phases of Iterative Model

Design of Iterative Model:


In a practical software development project, the classical waterfall model is hard to
use. So, Iterative waterfall model can be thought of as incorporating the necessary
changes to the classical waterfall model to make it usable in practical software
development projects. It is almost same as the classical waterfall model except some
changes are made to increase the efficiency of the software development.

The iterative waterfall model provides feedback paths from every phase to its
preceding phases, which is the main difference from the classical waterfall model.

When errors are detected at some later phase, these feedback paths allow correcting
errors committed by programmers during some phase. The feedback paths allow the
phase to be reworked in which errors are committed and these changes are reflected in
the later phases. But, there is no feedback path to the stage – feasibility study, because
once a project has been taken, does not give up the project easily.
It is good to detect errors in the same phase in which they are committed. It reduces
the effort and time required to correct the errors.
Phases of Iterative Model:
The various phases are described below:
1. Feasibility Study: The main goal of this phase is to determine whether it would be
financially and technically feasible to develop the software.
The feasibility study involves understanding the problem and then determine the
various possible strategies to solve the problem. These different identified solutions
are analyzed based on their benefits and drawbacks, The best solution is chosen and
all the other phases are carried out as per this solution strategy.
2. Requirements analysis and specification: The aim of the requirement analysis
and specification phase is to understand the exact requirements of the customer and
document them properly. This phase consists of two different activities.
 Requirement gathering and analysis: Firstly all the requirements regarding the
software are gathered from the customer and then the gathered requirements are
analyzed. The goal of the analysis part is to remove incompleteness (an
incomplete requirement is one in which some parts of the actual requirements
have been omitted) and inconsistencies (inconsistent requirement is one in which
some part of the requirement contradicts with some other part).
 Requirement specification: These analyzed requirements are documented in a
software requirement specification (SRS) document. SRS document serves as a
contract between development team and customers. Any future dispute between
the customers and the developers can be settled by examining the SRS document.
3. Design: The aim of the design phase is to transform the requirements specified in
the SRS document into a structure that is suitable for implementation in some
programming language.
4. Coding and Unit testing: In coding phase software design is translated into source
code using any suitable programming language. Thus each designed module is coded.
The aim of the unit testing phase is to check whether each module is working properly
or not.
5. Integration and System testing: Integration of different modules are undertaken
soon after they have been coded and unit tested. Integration of various modules is
carried out incrementally over a number of steps. During each integration step,
previously planned modules are added to the partially integrated system and the
resultant system is tested. Finally, after all the modules have been successfully
integrated and tested, the full working system is obtained and system testing is carried
out on this.
System testing consists three different kinds of testing activities as described below :

 α-testing: α-testing is the system testing performed by the development team.


 β-testing: β-testing is the system testing performed by a friendly set of
customers.
 Acceptance testing: After the software has been delivered, the customer
performed the acceptance testing to determine whether to accept the delivered
software or to reject it.
6. Maintainence: Maintenance is the most important phase of a software life cycle.
The effort spent on maintenance is the 60% of the total effort spent to develop a full
software. There are basically three types of maintenance :
 Corrective Maintenance: This type of maintenance is carried out to correct
errors that were not discovered during the product development phase.
 Perfective Maintenance: This type of maintenance is carried out to enhance the
functionalities of the system based on the customer’s request.
 Adaptive Maintenance: Adaptive maintenance is usually required for porting
the software to work in a new environment such as work on a new computer
platform or with a new operating system.
Application of Iterative Model:

This model is most often used in the following scenarios −

 Requirements of the complete system are clearly defined and understood.

 Major requirements must be defined; however, some functionalities or requested


enhancements may evolve with time.

 There is a time to the market constraint.

 A new technology is being used and is being learnt by the development team
while working on the project.
 Resources with needed skill sets are not available and are planned to be used on
contract basis for specific iterations.

 There are some high-risk features and goals which may change in the future.

Advantages of Iterative Model:


The advantage of this model is that there is a working model of the system at a very
early stage of development, which makes it easier to find functional or design flaws.
Finding issues at an early stage of development enables to take corrective measures in
a limited budget. The advantages of the Iterative Model are as follows:
 Some working functionality can be developed quickly and early in the life cycle.

 Results are obtained early and periodically.

 Parallel development can be planned.

 Progress can be measured.

 Less costly to change the scope/requirements.

 Testing and debugging during smaller iteration is easy.

 Risks are identified and resolved during iteration; and each iteration is an easily
managed milestone.

 Easier to manage risk - High risk part is done first.

 With every increment, operational product is delivered.

 Issues, challenges and risks identified from each increment can be


utilized/applied to the next increment.

 Risk analysis is better.

 It supports changing requirements.

 Initial Operating time is less.

 Better suited for large and mission-critical projects.

 During the life cycle, software is produced early which facilitates customer
evaluation and feedback.
SYSTEM DESIGN

After the analysis phase we have with us the details of the existing system and the
requirements of the user for the new system. This phase diverts focus from the
problem domain to the solution domain. It acts as a bridge between the requirement
phase and its solution. The design phase focuses on the detailed implementation of the
system recommended in the feasibility study.

System design is the process of defining the elements of a system such as the
architecture, modules and components, the different interfaces of those components
and the data that goes through that system. It is meant to satisfy specific needs and
requirements of a business or organization through the engineering of a coherent and
well-running system.
Object-oriented analysis and design (OOAD) methods are becoming the most widely
used methods for computer system design. The UML has become the standard
language used in Object-oriented analysis and design. It is widely used for modeling
software systems and is increasingly used for high designing non-software systems
and organizations.

EXTERNAL DESIGN:
External design consists of conceiving, planning out and specifying the externally
observable characteristics of the software product.
These characteristics include user displays or user interface forms and the report
formats, external data sources and the functional characteristics, performance
requirements etc. External design begins during the analysis phase and continues into
the design phase.

LOGICAL DESIGN:
The logical design of a system pertains to an abstract representation of the data flows,
inputs and outputs of the system. This is often conducted via modeling, which
involves a simplistic (and sometimes graphical) representation of an actual system. In
the context of systems design, modeling can undertake the following forms,
including:
 Data flow diagrams
 Entity Life Histories
 Entity Relationship Diagrams

PHYSICAL DESIGN:
The physical design relates to the actual input and output processes of the system.
This is laid down in terms of how data is input into a system, how it is authenticated,
how it is processed, and how it is displayed as output.
Physical design, in this context, does not refer to the tangible physical design of an
information system. To use an analogy, a personal computer's physical design
involves input via a keyboard, processing within the CPU, and output via a monitor,
printer, etc.
It would not concern the actual layout of the tangible hardware, which for a PC would
be a monitor, CPU, motherboard, hard drive, modems, video/graphics cards, USB
slots etc.
CONTEXT DIAGRAM

The context diagram is used to establish the context and boundaries of the system to
be modelled: which things are inside and outside of the system being modelled, and
what is the relationship of the system with these external entities.

A context diagram, sometimes called a level 0 data-flow diagram, is drawn in order to


define and clarify the boundaries of the software system. It identifies the flows of
information between the system and external entities. The entire software system is
shown as a single process.

Context diagrams can be developed with the use of two types of building blocks:

Entities (Actors): labeled boxes; one in the center representing the system, and around
it multiple boxes for each external actor

Relationships: labeled lines between the entities and system

For example, "customer places order." Context diagrams can also use many different
drawing types to represent external entities. They can use ovals, stick
figures, pictures, clip art or any other representation to convey meaning. Decision
trees and data storage are represented in system flow diagrams.

The context diagram of SlamChat is given below:

Context Diagram of SlamChat

Figure 6: Context Diagram of SlamChat


ER DIAGRAM

The ER or (Entity Relational Model) is a high-level conceptual data model diagram.


Entity-Relation model is based on the notion of real-world entities and the
relationship between them. ER modeling helps to analyze data requirements
systematically to produce a well-designed database. So, it is considered a best practice
to complete ER modeling before implementing the database.

Components of ER Diagram:

Table 1: Components of ER Diagram


ER Diagram for SlamChat

Figure 7: ER Diagram of SlamChat


ER Diagram For User Panel:

Figure 8: User Panel ER Diagram

ER Diagram For Admin Panel:

Figure 9: Admin Panel ER Diagram


DATA FLOW DIAGRAM (DFD)

A data flow diagram (DFD) is a graphical representation of the "flow" of data


through an information system, modelling its process aspects. A DFD is often used as
a preliminary step to create an overview of the system, which can later be
elaborated.DFDs can also be used for the visualization of data processing (structured
design).

A DFD shows what kind of information will be input to and output from the system,
where the data will come from and go to, and where the data will be stored. It does
not show information about the timing of process or information about whether
processes will operate in sequence or in parallel

Data Flow Diagrams Symbols:

Shape Description

Process Notations. A process transforms incoming data


flow into outgoing data flow.

Datastore Notations. Datastores are repositories of data in


the system. They are sometimes also referred to as files.
Dataflow Notations. Dataflows are pipelines through
which packets of information flow. Label the arrows with
the name of the data that moves through it.

External Entity Notations. External entities are objects


outside the system, with which the system communicates.
External entities are sources and destinations of the
system's inputs and outputs.

Table 2: DFD Symbols

0-Level DFD:
It only contains one process node ("Process 0") that generalizes the function of the
entire system in relationship to external entities. It’s designed to be an abstraction
view, showing the system as a single process with its relationship to external entities.
It represent the entire system as single bubble with input and output data indicated by
incoming/outgoing arrows.

 Level 0 DFD must balance with the context diagram it describes.


 Input going into a process are different from outputs leaving the process.
 Data stores are first shown at this level.

Figure 10: 0-Level DFD for SlamChat


1-Level DFD:
In 1-level DFD, context diagram is decomposed into multiple bubbles/processes.in
this level we highlight the main functions of the system and breakdown the high level
process of 0-level DFD into subprocesses.

 Level 1 DFD must balance with the Level 0 it describes.


 Input going into a process are different from outputs leaving the process.
 Continue to show data stores.

Figure 11: 1-Level DFD for SlamChat

2-Level DFD:
2-level DFD goes one step deeper into parts of 1-level DFD.It can be used to plan or
record the specific/necessary detail about the system’s functioning.Higher level DFDs
can be transformed into more specific lower level DFDs with deeper level of
understanding unless the desired level of specification is achieved. A level 2 data flow
diagram (DFD) offers a more detailed look at the processes that make up an
information system than a level 1 DFD does. It can be used to plan or record the
specific makeup of a system.
Figure 12: 2-Level DFD of Admin Panel for SlamChat

Figure 13: 2-Level DFD of User Panel for SlamChat


FLOWCHART

A flowchart is a formalized graphic representation of a logic sequence, work or


manufacturing process, organization chart, or similar formalized structure. The
purpose of a flow chart is to provide people with a common language or reference
point when dealing with a project or process. A flow chart is a graphical or symbolic
representation of a process. Each step in the process is represented by a different
symbol and contains a short description of the process step. The flow chart symbols
are linked together with arrows showing the process flow direction.

Flow Chart Symbols:

Table 3: Flow Chart Symbols


The flowchart of SlamChat is given below shows the processes that are carried
throughout the syatem. The given flowchart shows a highly abstracted verion of the
system processes so as to help the user get a clear basic idea of the system processes.

Figure 14: Flow Chart of SlamChat


PROJECT SNAPSHOTS

Snapshot 1: Main Page

Figure 15: Main Page Snapshot

Snapshot 2: Login Page

Figure 16: Login Page Snapshot


Snapshot 3: Register Page

Figure 17: Register Page Snapshot

Snapshot 4: Forgot Password Page

Figure 18: Forgot Password Page Snapshot


Snapshot 5: Dashboard Page

Figure 19: Dashboard Page Snapshot

Snapshot 6: Edit Profile Page

Figure 20: Edit Profile Page Snapshot


Snapshot 7: Change Profile Picture Page

Figure 21: Change Profile Picture Page Snapshot

Snapshot 8: Notifications Page

Figure 22: Notifications Page Snapshot


Snapshot 9: Select Questions Page

Figure 23: Select Questions Page Snapshot


Snapshot 10: Requests Page

Figure 24: Requests Page Snapshot

Snapshot 11: Friends List Page

Figure 25: Friends List Page Snapshot


Snapshot 12: Preview Filled Page

Figure 26: Preview Filled Page Snapshot

Snapshot 13: ChatBot Preview Page

Figure 27: ChatBot Preview Page Snapshot


Snapshot 14: My SlamBook Page

Figure 28: My SlamBook Page Snapshot

Snapshot 15: Fill Slam Page

Figure 29: Fill Slam Page Snapshot


Snapshot 16: Admin Login Page

Figure 30: Admin Login Page Snapshot

Snapshot 17: Admin Dashboard Page

Figure 31: Admin Dashboard Page Snapshot


Snapshot 18: Admin Add Course Page

Figure 32: Admin Add Course Page Snapshot

Snapshot 19: Admin Add Profession Page

Figure 33: Admin Add Professions Page Snapshot


Snapshot 20: Admin Add Questions Page

Figure 34: Admin Add Questions Page Snapshot


Snapshot 21: Admin Change Password Page

Figure 35: Admin Change Password Page Snapshot


DATABASE DESIGN

A database(DB), in the most general sense, is an organized collection of data. More


specifically, a database is an electronic system that allows data to be easily accessed,
manipulated and updated. A database is an organized collection of structured
information, or data, typically stored electronically in a computer system. A database
is usually controlled by a database management system (DBMS). Together, the data
and the DBMS, along with the applications that are associated with them, are referred
to as a database system, often shortened to just database.

Data within the most common types of databases in operation today is typically
modeled in rows and columns in a series of tables to make processing and data
querying efficient. The data can then be easily accessed, managed, modified, updated,
controlled, and organized. Most databases use structured query language (SQL) for
writing and querying data.

The SlamChat Database involves the following tables:

Figure 36: SlamChat Database Snapshot


 Admin
 User
 Courses
 Question
 User Question
 Slam Page
 Friend List
 Courses
The structure of these tables are as follows:

Table1: Admin

Figure 37: Admin Table Snapshot

Table2: User

Figure 38: User Table Snapshot


Table3: Friend List

Figure 39: Friends List Table Snapshot

Table4: Slam Page

Figure 40: Slam Page Table Snapshot

Table5: Question

Figure 41: Questions Table Snapshot


Table6: Courses

Figure 42: Courses Table Snapshot

Table7: User Questions

Figure 43: User Questions Table Snapshot

Table8: Profession

Figure 44: Profession Table Snapshot


FUTURE ENHANCEMENTS

 This project can be extended and many new creative ideas can be introduce in it.

 Some of them are listed below

 Using the application in network

 Synchronizing contacts with cell phone contacts and other gadgets

 Including security issues

 Reminder of to do tasks

 Providing attachment such as clips, images with the details.

 Enhanced chat box.

 Integration with other social media platforms such as Facebook,


Instagram, Twitter, etc.

 Online merchandise facility.


CONCLUSION

Collecting of information from mates, friends, colleagues, relatives, etc and storing it
in ways that need to be addressed for its limitations. These limitations can be
overcome by the use of the project. Project ensures that all records must be
centralized, display all when required.

The application may be success when it will act as a alternative to traditional penning
down details of people, their contact numbers, etc.
While developing the system a conscious effort has been made to create and develop a
software package, making use of available tools, techniques and resources – that
would generate a proper system for ONLINE SOCIAL NETWORKING.
While making the system, an eye has been kept on making it as user-friendly. As such
one may hope that the system will be acceptable to any user and will adequately meet
his/her needs. As in case of any system development process where there are a
number of short comings, there have been some shortcomings in the development of
this system also.
There are some of the areas of improvement which couldn’t be implemented due to
time constraints. One such feature was online chat where members can chat with his
friends through this website. We also couldn't implement the scrap book and the
selling item page for now but we still have two months of internship left in the
company so definitly we will do it in coming months.

You might also like