SlideShare a Scribd company logo
An Implementation of A
Community Android
Application
(Android App: WeGroup)
Xuan Zhang
Computer Science Department

San Francisco State University
Agenda
• Motivation

• Requirement Analysis

• System Architecture & Implementation

• Testing

• Conclusion & Future Works

• Walkthrough & Demo
Motivation
• Nowadays, there are varieties of community applications
already, most of which are only focusing on a very narrow
and specific domain. 

• However, a person may have a wide range of hobbies.

• The purpose of this Culminating Experience is to develop an
android application which enables people to build up their
social network based on their various interests. 

• The users of this application could join as many groups as
they want and send text messages and pictures to other
users in each specific group.
Requirement Analysis
• Three general categories of requirements:

• Functional Specifications for Users

• Functional Specifications for Admin

• System Requirements
Functional Specifications
for Users
• Register and Login

• Subscription

• Unsubscription

• Receive all messages in chatrooms

• Post text messages in chatrooms

• Post pictures in chatrooms

• Search

• Send new group requests to Admin

• Sign Out

• Reset Password
Functional Specifications
for Admin
• Approve new group requests

• Block a certain user account

• Block messages during a period
System Requirements
• Encryption

• Email Validation

• Simple Credential Check

• etc
Agenda
• Motivation

• Requirement Analysis

• System Architecture & Implementation

• Testing

• Conclusion & Future Works

• Walkthrough & Demo
System Architecture
Server
• The server in the backend is using node.js stack. 

• Node.js is an open-source, cross-platform JavaScript run-
time environment for executing JavaScript code server-
side.

• In this app, I choose Express.js framework. 

• Express is a web application framework for Node.js,
released as free and open-source software under the MIT
License. It is designed for building applications and APIs.
Server
• Framework: Express.js

• Structure:
Datebase
• In this application, a NoSQL database—MongoDB is
selected as the database. 

• Data is stored as JSON and synchronized in realtime to
every connected client.

• We have 8 Collections in this application, each of which
are key/value pairs collections.
Database Schema
No Collection Name Key Name Meaning of the collection
1 users
_id

security_answer

security_question

email

password

name
user account
2 subjects
_id

name
General Categories, like traveling,
musics, etc
3 topics
_id

topic

subject

all subcategories, like Traveling to
China, Pop Music, etc
4 subscriptions
_id

topic

userId
record which user account
subscripts which topic
Database Schema
No Collection Name Key Name Meaning of the collection
5 topic requests
_id

subject

topic
record the new topic added by
users requests
6 messages
_id

url

type

time

message

topicId

senderId

senderName
a collection to store all messages
belongs to different subcategories
and send by different users, all
messages are encrypted in the
database.
7 blockers
_id

user_id

subject

store user accounts blocked by
admin
8 block times
_id

from

to
store messages that are needed
to be blocked during a period
Database (Admin)
• From the database visualization tool (MongoDB
Compass), we can easily check the schema of the 8
collections.
Database (Admin)
• From the collection ‘messages’, we can find that all
messages communicated among clients are all
entrypted.
Android Libraries
• Ion 2.+: An important Android library for asynchronous networking and
image loading.

• Gson: Gson is a Java library that can be used to convert Java Objects into
their JSON representation. It can also be used to convert a JSON string to
an equivalent Java object.

• socket.io-client 1.0.0: IO client library for Java, which is simply ported from
the JavaScript client.

• contraint-layout 1.0.2: ConstraintLayout is available in an API library that’s
compatible with Android 2.3 (API level 9) and higher. You can build a
responsive UI using it.

• junit 4.12: An Android library that allows you to do functional UI tests
(Espresso and UI Automator).
Client Structure
Android Permissions
• The app needs to have access to use device camera and
storage, it needs to be given permission to camera and
external storage.

• in AndroidManifest.xml file: 

• <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
Testing
• Usability Testing

• Functional Testing

• Instrumentation Testing
Usability Testing
Initial Design Final Design
Usability Testing
Initial Design Final Design
Functional Testing
• Register and Login

• Subscribe to groups

• Receive messages in a group

• Post text messages and receive text messages simultaneously

• Post pictures and receive them simultaneously (Two mobile devices)

• Send a new group request

• Approve a new group request (Admin)

• Block users or messages effectively (Admin)

• Reset Password

• Search in the group chatroom

• Search in the group list

• Check encryption

• …, etc
Instrumentation Testing
onView(withId(R.id.my_view)) // withId(R.id.my_view) is a ViewMatcher

.perform(click()) // click() is a ViewAction

.check(matches(isDisplayed())); // matches(isDisplayed()) is a ViewAssertion
• LoginActivity Instrumentation Test

• RegisterActivity Instrumentation Test
Conclusion
• The main focus of this mobile application is to enable
people to join as many groups as possible so that they
could communicate with others across a diverse field of
hobbies while using one application.

• It uses Android as its base client side, node.js as its
backend technology and MongoDB as its database.

• It is made up of various scopes.
Future Works
• Advertisement

Advertisement brings economic benefits to support the
continuous development and maintenance of the app.

• Scalability

When more functions are implemented in the app and more
users use the app, we have to scale up the system.
References
1. Java:

http://www.tutorialspoint.com/java

2. Android Software Development Kit:

http://developer.android.com/sdk/index.html

3. Android Training:

http://developer.android.com/trainning/index.html

4. Node.js:

https://node.js.org/en

5. MongoDB:

https://www.mongodb.com
Walkthrough
Walkthrough
• 1. Register and Login

• 2. Subscribe categories

• 3. Post messages in a subcategory

• 4. Search

• 5. Unsubscribe a subcategory

• 6. Request for adding new subcategory

• 7. Sign Out

• 8. Password Recovery
Walkthrough—1. Register
and Login
Walkthrough—2. Subscribe
categories
Walkthrough—3. Post
messages in a subcategory
Walkthrough—3. Post
messages in a subcategory
Walkthrough—4. Search
Walkthrough—5.
Unsubscribe a subcategory
Walkthrough—6. Request
for adding new subcategory
Walkthrough—7. Sign Out
Walkthrough—8. Password
Recovery
Thank You
• Questions?

More Related Content

PPTX
Asp.net membership anduserroles_ppt
PPTX
Authentication and Authorization in Asp.Net
PDF
Difference between authentication and authorization in asp.net
PPTX
Best Practices for Application Development with Box
DOC
RajeshBalu_Resume
PDF
Securing Applications With Picketlink
PDF
Introduction to PicketLink
PPTX
Introduction to Spring Framework
 
Asp.net membership anduserroles_ppt
Authentication and Authorization in Asp.Net
Difference between authentication and authorization in asp.net
Best Practices for Application Development with Box
RajeshBalu_Resume
Securing Applications With Picketlink
Introduction to PicketLink
Introduction to Spring Framework
 

What's hot (7)

PPTX
Introduction to Spring Framework
PPTX
Securing SharePoint Apps with OAuth
PPT
Android Introduction
PDF
Imdad resume
DOCX
What are the popular features of java?
PPTX
Box Platform Overview
PPTX
1. Spring intro IoC
 
Introduction to Spring Framework
Securing SharePoint Apps with OAuth
Android Introduction
Imdad resume
What are the popular features of java?
Box Platform Overview
1. Spring intro IoC
 
Ad

Similar to WeGroup--A Community Android App (20)

PPSX
Android OS and its Features
DOC
dinesh_7.0_years_exp_in_java
PPTX
Intro to android (gdays)
PDF
Rahul_Resume
PPTX
Mobile web development
PDF
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
PPTX
Android- Introduction for Beginners
PPT
Lecture 1 Android Application Development.ppt
PPT
Android Training
PPTX
Android Application Development GDSC DCE Darbhanga.pptx
DOC
Fun Food
PPTX
Android Application Development (1).pptx
PPT
Android architecture
PPT
Android Training - Part 2
PDF
Android dev o_auth
PPT
Synapseindia android middleware
PPTX
Android application development fundamentals
PDF
Android Workshop_1
PDF
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
PPT
Android application development
Android OS and its Features
dinesh_7.0_years_exp_in_java
Intro to android (gdays)
Rahul_Resume
Mobile web development
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
Android- Introduction for Beginners
Lecture 1 Android Application Development.ppt
Android Training
Android Application Development GDSC DCE Darbhanga.pptx
Fun Food
Android Application Development (1).pptx
Android architecture
Android Training - Part 2
Android dev o_auth
Synapseindia android middleware
Android application development fundamentals
Android Workshop_1
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
Android application development
Ad

Recently uploaded (20)

PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Tartificialntelligence_presentation.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Encapsulation theory and applications.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PPTX
1. Introduction to Computer Programming.pptx
PPTX
Big Data Technologies - Introduction.pptx
PPTX
A Presentation on Artificial Intelligence
PDF
Electronic commerce courselecture one. Pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
cuic standard and advanced reporting.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Assigned Numbers - 2025 - Bluetooth® Document
Network Security Unit 5.pdf for BCA BBA.
Mobile App Security Testing_ A Comprehensive Guide.pdf
Tartificialntelligence_presentation.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Encapsulation theory and applications.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
A comparative analysis of optical character recognition models for extracting...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Group 1 Presentation -Planning and Decision Making .pptx
1. Introduction to Computer Programming.pptx
Big Data Technologies - Introduction.pptx
A Presentation on Artificial Intelligence
Electronic commerce courselecture one. Pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...

WeGroup--A Community Android App

  • 1. An Implementation of A Community Android Application (Android App: WeGroup) Xuan Zhang Computer Science Department San Francisco State University
  • 2. Agenda • Motivation • Requirement Analysis • System Architecture & Implementation • Testing • Conclusion & Future Works • Walkthrough & Demo
  • 3. Motivation • Nowadays, there are varieties of community applications already, most of which are only focusing on a very narrow and specific domain. • However, a person may have a wide range of hobbies. • The purpose of this Culminating Experience is to develop an android application which enables people to build up their social network based on their various interests. • The users of this application could join as many groups as they want and send text messages and pictures to other users in each specific group.
  • 4. Requirement Analysis • Three general categories of requirements: • Functional Specifications for Users • Functional Specifications for Admin • System Requirements
  • 5. Functional Specifications for Users • Register and Login • Subscription • Unsubscription • Receive all messages in chatrooms • Post text messages in chatrooms • Post pictures in chatrooms • Search • Send new group requests to Admin • Sign Out • Reset Password
  • 6. Functional Specifications for Admin • Approve new group requests • Block a certain user account • Block messages during a period
  • 7. System Requirements • Encryption • Email Validation • Simple Credential Check • etc
  • 8. Agenda • Motivation • Requirement Analysis • System Architecture & Implementation • Testing • Conclusion & Future Works • Walkthrough & Demo
  • 10. Server • The server in the backend is using node.js stack. • Node.js is an open-source, cross-platform JavaScript run- time environment for executing JavaScript code server- side. • In this app, I choose Express.js framework. • Express is a web application framework for Node.js, released as free and open-source software under the MIT License. It is designed for building applications and APIs.
  • 12. Datebase • In this application, a NoSQL database—MongoDB is selected as the database. • Data is stored as JSON and synchronized in realtime to every connected client. • We have 8 Collections in this application, each of which are key/value pairs collections.
  • 13. Database Schema No Collection Name Key Name Meaning of the collection 1 users _id security_answer security_question email password name user account 2 subjects _id name General Categories, like traveling, musics, etc 3 topics _id topic subject all subcategories, like Traveling to China, Pop Music, etc 4 subscriptions _id topic userId record which user account subscripts which topic
  • 14. Database Schema No Collection Name Key Name Meaning of the collection 5 topic requests _id subject topic record the new topic added by users requests 6 messages _id url type time message topicId senderId senderName a collection to store all messages belongs to different subcategories and send by different users, all messages are encrypted in the database. 7 blockers _id user_id subject store user accounts blocked by admin 8 block times _id from to store messages that are needed to be blocked during a period
  • 15. Database (Admin) • From the database visualization tool (MongoDB Compass), we can easily check the schema of the 8 collections.
  • 16. Database (Admin) • From the collection ‘messages’, we can find that all messages communicated among clients are all entrypted.
  • 17. Android Libraries • Ion 2.+: An important Android library for asynchronous networking and image loading. • Gson: Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. • socket.io-client 1.0.0: IO client library for Java, which is simply ported from the JavaScript client. • contraint-layout 1.0.2: ConstraintLayout is available in an API library that’s compatible with Android 2.3 (API level 9) and higher. You can build a responsive UI using it. • junit 4.12: An Android library that allows you to do functional UI tests (Espresso and UI Automator).
  • 19. Android Permissions • The app needs to have access to use device camera and storage, it needs to be given permission to camera and external storage. • in AndroidManifest.xml file: • <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECORD_AUDIO" />
  • 20. Testing • Usability Testing • Functional Testing • Instrumentation Testing
  • 23. Functional Testing • Register and Login • Subscribe to groups • Receive messages in a group • Post text messages and receive text messages simultaneously • Post pictures and receive them simultaneously (Two mobile devices) • Send a new group request • Approve a new group request (Admin) • Block users or messages effectively (Admin) • Reset Password • Search in the group chatroom • Search in the group list • Check encryption • …, etc
  • 24. Instrumentation Testing onView(withId(R.id.my_view)) // withId(R.id.my_view) is a ViewMatcher .perform(click()) // click() is a ViewAction .check(matches(isDisplayed())); // matches(isDisplayed()) is a ViewAssertion • LoginActivity Instrumentation Test • RegisterActivity Instrumentation Test
  • 25. Conclusion • The main focus of this mobile application is to enable people to join as many groups as possible so that they could communicate with others across a diverse field of hobbies while using one application. • It uses Android as its base client side, node.js as its backend technology and MongoDB as its database. • It is made up of various scopes.
  • 26. Future Works • Advertisement Advertisement brings economic benefits to support the continuous development and maintenance of the app. • Scalability When more functions are implemented in the app and more users use the app, we have to scale up the system.
  • 27. References 1. Java: http://www.tutorialspoint.com/java 2. Android Software Development Kit: http://developer.android.com/sdk/index.html 3. Android Training: http://developer.android.com/trainning/index.html 4. Node.js: https://node.js.org/en 5. MongoDB: https://www.mongodb.com
  • 29. Walkthrough • 1. Register and Login • 2. Subscribe categories • 3. Post messages in a subcategory • 4. Search • 5. Unsubscribe a subcategory • 6. Request for adding new subcategory • 7. Sign Out • 8. Password Recovery