Garv
Garv
INDEX
1. Introduction
1.1. Purpose
1.2. Document conventions
1.3. Intended audience and reading suggestions
1.4. Definitions
1.5. Project Scope
1.6. References
2. Overall product description
2.1. History
2.2. Product Perspective
2.3. Product Features
2.4. User Classes and Characteristics
2.5. Operating Environment
2.6. Design and Implementation Constraints
2.7. Assumptions and Dependencies
2.8. User Documentation
3. Specific requirements
3.1. Functional requirements
3.2. External interface requirements
3.3. Performance requirements
3.4. Other non-functional requirements
3.5. Constraints
1P
4. Design
4.1. Entity-Relationship diagram (ER diagram)
4.2. Data flow diagram (DFD)
4.3. Use-case diagram
5. Testing – Black Box & White Box
5.1. Test cases5.2. Snapshots
6. Appendices
1.
1.1. PURPOSE
This document describes the software requirements and specifications of
Snapchat.
Snapchat is an online application that allows us to add as many friends
around the globe. This app enables the user to communicate with his/her
friends and build streaks. This app can be installed from the Google play
store or the Apple play store.
MNEMONICS MEANING
DB Database
DDB Distributed Database
DFD Data Flow Diagram
ER Entity Relationship
SS Screenshot
1.3. INTENDED AUDIENCE AND READING SUGGESTIONS
The document is intended for all the stakeholder customers and the
developers – designers, coders, testers and maintainers. The reader is
assumed to have basic knowledge of Mobile OS, databases and user
accounting along with knowledge and understanding of DFDs and Use-case 2P
diagrams.
1.4. DEFINITIONS
1.4.3. Database
A database is a collection of information that is organized so that it can
easily be accessed, managed, and updated. In one view, database can be
classified according to types of content.
1.4.6. 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.
3P
1.4.7. Use Case Diagram
In software and systems engineering, a use case is a list of actions or
event steps, typically defining the interactions between a role (known in the
Unified Modeling Language as an actor) and a system, to achieve a goal.
The actor can be a human or other external system.
1.6. REFERENCES
https://www.snapchat.com/
https://en.wikipedia.org/wiki/Snapchat#Further
_reading
https://blog.hubspot.com/marketing/snapchat- 4P
hidden-features https://beebom.com/recover-
snapchat-account/
http://www.passwordpit.com/snapchat-
password-requirements/
https://www.wikihow.com/
https://www.techjunkie.com/
https://www.game-debate.com/games/
2.
2.1. HISTORY
Snapchat is a multimedia messaging app used globally, created by Evan
Spiegel, Bobby
Murphy, and Reggie Brown, former students at Stanford University, and
developed by Snap Inc., originally Snapchat Inc. One of the principal
features of Snapchat is that pictures and messages are usually only available
for a short time before they become inaccessible to their recipients. The app
has evolved from originally focusing on person-to-person photo sharing to
presently featuring users' "Stories" of 24 hours of chronological content,
along with "Discover", letting brands show ad-supported short-form
content. Snapchat has become notable for representing a new, mobile-first
direction for social media, and places significant emphasis on users
interacting with virtual stickers and augmented reality objects.
2.3.2. Snap/Camera
Users can create multimedia messages called "snaps." These snaps can
comprise photo or a short video; they can be edited with filters and
effects, text captions, and drawings. In Chat 2.0 recent update you can
send audio notes, make video and audio calls. Snaps can be directed
privately to selected contacts, or a semi-public "Story." The privately sent
messages can be automatically self-destructed after a few seconds.
see what’s going on across the country, or right down the block, in real
time. Just pinch to
open the Map! Developers can use Apple MapKit and Google Location
SDK to implement this feature. It gives them all tools that are necessary
to create custom solutions for different operating systems.
2.3.6. Geo-filters
A feature is known as "Geofilters" is a special graphical overlay that is
available when the user is within a precise geographical location, such as
a city, event, or destination. To let your users mark their location on the
images, the developers use the geocoding. Geocoding is a computational
process that converts the geographic coordinates to a description of a
location, usually the name of a place. Then the name of the area is
overlaid on the image in some template. It takes about 3 weeks and costs
about $4K per platform to create within the chat app development
project.
2.3.9. Bitmoji
Bitmoji is the digital you — a living cartoon character to instantly
express who you are and how you're feeling, in the moment.
2.3.10. Snap-scores
Your Snapchat score is a number that acts as a sort of achievement for
how well you use Snapchat. Here’s what we’ve found Snapchat uses to
calculate your score:
a. Sending and receiving snaps typically equals a point each, with
some snaps
occasionally equaling more.
b. Sending snaps to multiple people at once doesn’t equal more
points but does add
up to your score.
c. Posting a story on Snapchat increases your score by a point. 7P
d. Viewing and sending chats doesn’t seem to have any impact on
your score.
e. Viewing other people’s’ stories also has no impact.
2.3.11. Snap-streaks
Streak counts keep track of how many days in a row you’ve snapped
back and forth with a user.
2.3.12. Monetization
Snapchat makes money through in several ways:
a. Discover: Discover feature delivers content from
publishers and advertisers. Users can subscribe to media channels
of the partners and see promoted content.
b. Geofilters and lenses: Snapchat lets brands create
their own filters and lenses.
c. Advertising API: Additionally, Snapchat has opened
ads API and announced a
vast number of promotional instruments, including snap ads between
Stories, expandable “Snap Ads” and ads API itself. All these features let
advertisers use programmatic
interfaces to run large-scale campaigns instead of making the manually
strike deals with Snapchat.
2.3.13. Stickers
Stickers became an inevitable part of modern communication. Snapchat
contains 200 stickers built into its app. You can use a custom solution
(design your stickers) or use a ready-made solution that is much cheaper.
2.3.14. Shazam
When you want to identify a song playing around you, just hold your
finger down on the
camera screen. After a few seconds, a Shazam window will pop up with
the song’s name
and artist. From there, you can snap your Shazamed song to your friends
and even add the artist as a Snapchat friend.
2.3.17. Memories
Memories is our data-storage service that makes it easier for you to
reminisce anytime, anywhere. By agreeing to these Terms, you
automatically enable Memories. Once Memories is enabled, it will
remain enabled for as long as you maintain your Snapchat account. But
you can always turn off certain Memories features through Settings. One
of the options we provide with Memories is the ability to create a
restricted area by setting a passcode, which might be a PIN or a
passphrase or some other mechanism. This is similar to the device-lock
option you may be using on your mobile device; by setting a passcode,
you make it less likely that another person who gets hold of your device
will be able to see what you saved to the restricted area of Memories. But
here’s a big warning: if
you lose or forget your Memories passcode, or if you enter the wrong
one too many times, you will lose access to any content you saved in
the restricted area of Memories. We don’t offer any passcode recovery
features for this restricted area. You are solely responsible for
remembering your passcode.
2.3.18. Shape cut-out tool
This tool is available on any snap. It basically allows the user to cut a
desired part of the picture and save it as a sticker for future uses as a
sticker. These cut-outs will be available in the stickers section.
2.3.19. Timer
This feature enables the user to apply a self-timer to their snaps for a time
of 3s. This
means that when the user enables this feature, once he clicks on the ‘click
picture-circle’
dot then the picture will be clicked after 3s of clicking the dot. For
instance, this feature is helpful while clicking a group picture where
everyone needs a few seconds to pose well.
2.3.20. Search bar
The search bar is available on the camera screen, placed on the top of the
screen beside your selfie. This feature enables the user to search for any
other snapchatter or any location based stories or any events/happenings
around him and much more.
2.3.23. Grid
This feature, when chosen, splits the display screen into a grid with a
levelling line which would help the snapchatter to click aligned pictures.
It is available on the camera screen.
3. SPECIFIC REQUIREMENTS
Processing state: This will process the request to the account and once
the other user accepts this request, these two people become friends.
Processing state: When user swipes left, this gesture is validated and
finally comes as discover and thus this page opens.
Input: Tap on the snap camera screen and select the desired lens
Output: The desired lens hold its position right in the picture.
Processing state: The music (if any) playing will be sensed and an audio
fingerprint will be created. This is then compared with the rest in database.
Output: If match is found then it’ll display the song details and a share
to option else it’ll display ‘Error: snap not found’.
FUNCTIONAL REQUIREMENT 7 : Snap-map
Description: Snap map is a real time map powered by mapbox
copyrighted by
OpenStreetMap and DigitalGlobe. Bitmoji represents everyone using the
Snap map meant to resemble them. The bitmoji moves with you, and even 13
P
jumps into cars of their own when you're driving.
Processing state: The swipe down gesture is matched with its gestures
and then redirects user to the snap map page.
Output: Snap map will open a Terrain map of the user’s whereabouts
and his surrounding areas with exact location of his friends.
Output: A fire emoji with a number which mentions the snap streak. 14
P
Processing state: This gesture is recorded and is evaluated and then snap
goes to get stored in cloud , if user wants to save it for longer time and
preserve it from vanishing
Input: User will input queries in the ‘What can we help you with?’ text
box.
Processing state: Once the gesture is validated, tap on the group chat and
type to send a text/click to send a snap/video/audio/video recordings/audio,
video calls.
Output: Group chats are enabled and the user can contact anyone on the
group/play games/make calls. Information is exchanged.
Processing state: The snap travels all the way to the recipient’s
inbox.
Output: Display delivered for just delivered snaps and received for
received snaps.
3.3.1. SCALABILITY
Snapchat should be able to provide instant messaging services to 1
billion users at
any given time.
3.3.2. ROBUSTNESS
In case user’s device crashes, a backup of their chat history must
be stored on
remote database servers to enable recoverability.
3.3.3. PERFORMANCE
Application must be lightweight and must send messages instantly.
3.3.4. SPEED
Application’s processing speed should be so high that there should be no
delay in
executing user’s instructions. Also, the application should not crash
repeatedly.
3.4.1. PRIVACY 19
P
The users are provided with the benefit of customizing their privacy
settings. Hence, they shall make the best use of these settings. Eg: Choose
who can view your story and so on.
3.4.4. PORTABILITY
Snapchat can be used on any apple or android phones and tablets.
3.4.5. MAINTAINABILITY
Snapchat is a popular app and hence has maintenance on loop. Snapchat
Beta releases all new updates first and looks for acceptance from its
customers. Snapchat always surprises its users by releasing fresh updates.
3.4.7. PERMISSIONS
The following permissions need to be granted in order to access all the
features of the application:
ANDROID PERMISSIONS:
1. Read phone status and identity: Autofill your phone
number when you
register for Snapchat, for your convenience.
2. Receive text messages (SMS): Autofill the SMS code
that Snapchat sends you
during phone number verification, for your convenience.
3. Take pictures and videos: Use your camera to take
Snaps, video chat, add
friends by pointing your camera at their Snapcode, and more.
4. Record audio: Use your microphone to record audio
for Snaps,video chat, and more.
5. Modify or delete the contents of your USB storage:
Save Snaps and Stories to
your device's photo gallery, send photos and videos in Chat, and more.
Snapchat also uses your device's storage to save settings and cache content
you send and receive.
6. Read the contents of your USB storage: Snapchat
automatically loads app
settings that you've previously saved.
7. Find accounts on the device: Receive notifications
when friends contact you on Snapchat, when other Snapchatters
add you, and for other important events.
8. Full network access: Send and receive Snaps, chats,
and other data.
9. Receive data from the internet: Receive Snaps and
chats, and other content
from other Snapchatters.
10.View Network Connections: Snapchat optimizes
Snap delivery based on the
strength of your internet connection.
11.Clipboard: Allow Snapchat to access your clipboard
so you can attach links
quickly with the Paperclip tool.
12.Change your audio settings: On some devices,
Snapchat adjusts audio
settings to let you video chat.
13.Prevent phone from sleeping: Your screen won't
automatically turn off while
you're using Snapchat.
14.Control vibration: Allows you to enable vibration for
Snapchat notifications.
15.Control flashlight: Use your flash to take better 2P
photos in the dark.
16.View Wi-Fi Connections: Snapchat optimizes Snap
quality based on the
strength of your Wi-Fi connection.
17.Change network connectivity: Connect directly to
Spectacles via Wi-Fi.
18.Connect & disconnect from Wi-Fi: Import Snaps
from Spectacles via Wi-Fi. 19. Access Bluetooth settings:
Automatically pair with Spectacles you’ve
previously set up.
20.Pair with Bluetooth devices: Pair with Spectacles via
Bluetooth.
21.Read your own contact card: Auto fill your full
name when you edit it in Snapchat settings, for your convenience.
22.Read your contacts: We may collect and use
information from your device's
address book so you can invite friends and so we can improve the app.
23.Precise location (GPS and network-based): Use
your location for features
like Geofilters and Live Stories, and for other services that improve your
experience.
IOS PERMISSIONS:
1. Location: Use your location for features like
Geofilters and Our Stories, and for
other services that improve your experience.
2. Camera: Use your camera to take Snaps, video chat,
add friends by Snapcodes, and more.
3. Microphone: Use your microphone to record audio
for Snaps, video chat, and more.
4. Notifications: Receive notifications when friends
contact you on Snapchat,
when other Snapchatters add you, and for other important events.
5. Photos: Save Snaps and Stories to your device’s
Camera Roll, send photos and 2P
videos in Chat, and more.
6. Contacts: We may collect and use information from
your device’s address book
so you can invite friends, and so we can improve the app.
7. Clipboard: Allow Snapchat to access your clipboard
so you can attach links
quickly with the Paperclip tool.
3.4.8. SUPPORT
A good software is one which listens to its customers’ feedback and helps
them whenever they need something. Snapchat has all supportive help
documentation ready.
3.5. CONSTRAINTS
Important constraints:
4. DESIGN
23
PAGE