Vous êtes sur la page 1sur 8

Gather.

: The online grouping platform for student


projects
Taein Gu, Nuree Kang, Uvin Ko,
Kyle Kwon and Austin Suh
ninuree@yahoo.com, taeingu@gmail.com, uvinko02@gmail.com
whoruiamkyle02@gmail.com, austinsuh777@gmail.com

October 9, 2017

Abstract
In this report, we describe how we constructed an android grouping platform
named Gather. In contrast to the currently used common grouping platforms,
we focused more on student-driven projects instead of long-lasting general clubs.
On top of common features of grouping, we added additional features which are
specialized for student project. The project time span can be assigned by each
group leader, and the member search function is more customized by focusing
on peoples skills. Moreover, by considering that student users may need to find
a mentor for their project, the mentor management feature is also considered.
We published the first version of this product on Android play store and will be
updated to include every feature we describe in this report.

1 Introduction
As the size of an academic/business project is getting bigger, it becomes more difficult
to do by single person. The amount of work a person can afford is limited and people
tend to want working together by encouraging to each other. Therefore, it is definitely
common to find other members whenever people want to start a new project. One of
the easy way to find the members is using physical material such as paper poster. For
example, in school, at the beginning of a semester or quarter, it is not difficult to find
posters for new members or student clubs. However, it requires lots of human labor
and has limited exposure range. That is one reason why people make online network
based grouping platform. It has cheaper and relatively wider exposure than physical
methods.
Thanks to the invention of social network service (SNS), it is even easier to spread
out peoples think/idea to others. By writing an article on SNS, then anyone who
uses SNS can read the article and share with others by a single click. While unlimited
accessibility is a big advantage when people use SNS based communities, the unlimited
exposure also works as disadvantage. Too much information makes people hard to
get necessary information people really want to get. At the beginning of Internet era,
the Internet users could enjoy unlimited freedom on mingling. However, it requires
lots of effort to organize their communication, so people started to make structured
SNS based communities.
Nowadays, there are a number of online platforms for grouping. However, recent
popular SNS communities focus on general people with general purpose. The general
purpose can be a music playing club, fishing, sports team, and etc. However, when
students want to find other members for some academic/business projects, they may
need a bit different direction of grouping and corresponding features.

1
2 Related wroks
There are several popular SNS based groups. Some of the most popular form of
groups are Twitter, Facebook, Google group, and portal based caf. Mostly, they aim
to general purpose.

Twitter: One of the most open form of SNS ever. Users can shot their words to
the world and people can listen whatever they want to listen. Since it is completely
open and unorganized, users can shot limited length of word at one time. However,
it is also possible to organize community by filtering what people want to listen, but
it difficult to achieve proper privacy. In other word, anybody can read what is going
on in the club and it is kind of a castle without fence.

Facebook group: Comparing to other social network services, Facebook is rela-


tively closed community. When users want to search group or people, it is not easily
done because lots of information is hidden. It is only possible to search information
people want to open to public. The origin of Facebook group is targeting for private
connection but largely open connection. In other word, it is not new-user friendly
platform.

Google group In the viewpoint of a new user, the first impression when we search
group using Google groups is that it is too complex and difficult to get in. Its user in-
terface design does not look to design for general but for technically developed people.
The form of group is very similar to mailing list for open source developing community.

Portal based online caf That is the most private shape of grouping platform, and
especially famous in Asian countries such as Korea and Japan. In many cases, even
for reading an article, they requires group joining process and it is difficult to under-
stand what the group is going on from outside users. In most of the joining process,
the decision-makers opinion is required. Also it may have user level hierarchy and
encourage users to do more club activity.

In generally, the forms of groups described above are targeting to long lasting
general club and do not aim to limited term/specialized goals. Of course, people can
set their own short term goal but their action cannot be supported by their group
systems. According to study about related works, we found that there are several
required features to support student projects.
Limited project time span As described above, while common SNS based groups
do not have limited deadline for groups, students-driven project may need to
set limited project time span. Instead of club itself, our product focuses more
on the project more.
Member search One of the big goal of our product is searching new members.
Since our product helps people to gather according to their project goal, the
most important property of members is their skills/preferences. Thus, we add
member search function which is based on users skills and preferences.
Project mentor managing system Since the target users are students who have
not been highly educated yet, sometimes, they may need to find mentors to help
them and their project. So we add the feature for finding/managing mentors
for the students project.
When we started to design this project, we hoped to add more student oriented
features for grouping platform by focusing on what students consider as important
ones when they recruit new members or searching for other groups.

2
Figure 1: System Overview. Per each data transaction started from Android reaches
to the last layer: database and back to Android through web server.

3 System Structure
In order to construct Gather, we combine several independent systems. At first,
we build database scheme to store group and user data. Then construct RESTFul
responsive web service by connecting the database and installing to public hosting
server. Then Java client program is followed for client-host communication. Then we
programmed android as the last step. In Figure 2, we display the abstract structure
of our server system.
For those purposes, we coded four different packages using Java and uploaded
in our GitHub repository [NKS17]. Note that GroupNet is the prototype name of
Gather during developing phase.
GroupNetCore: This package contains domain of each data object and used for
storing any required data as Java Object format. For example, it has user
object which contains every user information such as name, id, email address,
etc. which are exactly matched to database scheme. Note that this package
does not have any logical processes.
GroupNetWeb: Web package contains every required libraries and code for pub-
licly accessible server operation. The structure of this package is designed for
Apache Tomcat server [Apa17b]. Database connection module and Json format-
ted response generator also included in this package. With successfully installed
web server package, we can access to server and test responses through through
Hypertext Transfer Protocol (HTTP) protocol.
GroupNetClient: The software to communicate with public server through HTTP
is included. The response generated from the server is parsed and then used for
Java Object generation. This package is compressed as Jar format and will be
installed in the following Android package.
GroupNetAndroid: This package is actual source code for android application as
known as Android App. It contains several activities and corresponding layout
files to show App screens, and communication part using client described above.

3
Figure 2: Database scheme used in our project

3.1 Database
We have two different types of databases. The first one is relational database (RDB)
which is the traditional form of database. RDB is the composition of tables and rela-
tionship between them. The tables are used for data storing and relationship describes
the table connections. For the data querying, standard query language (SQL) is used
as standard. The other database is NoSQL which only has keys and corresponding
values only. By removing having tables and connection between them, NoSQL takes
simplicity instead. We use both database for different purposes.

MySQL for Text data: Even though, NoSQL is used for general purposes, we
choose RDB for text data storage because RDB is useful to understand the dataflow
of entire system comparing to NoSQL. Moreover, we choose MySQL since it is free for
community purpose and relatively long history which says its stability. In Figure 3.3,
our relational scheme is plotted. Each table is connected by using each tables id
and its key value in corresponding table. For simplicity, we decide not to use foreign
key between tables but we simply match with their id values. Key values we used
as foreign key is named as {other table name}id. For example, groupid is used for
search data in group table.

4
MongoDB for Image data: In order to store binary type data, such as images or
video files, we chose MongoDB, which is one of the most popular and free NoSQL
database systems. While RDB has a relational scheme for data storage, NoSQL, or
a key-value database system, does not have a relational scheme but only has key and
corresponding value. One key advantage of NoSQL is its simplicity. The users only
need to consider a key-value relationship. Since media data only require this path,
we decided to use it as key and actual data as value. Moreover, using various types
of database system can be a great practice.

Database hosting: Fortunately, we found a free RDB host provider through the
Amazon Web Service (AWS). It supports MySQL, and we can use it the same way
in which we use it in our machine. The installation process provided by AWS was
intuitive and easy.

3.2 Server
There are several puzzle pieces that made up our server. From the host web server,
we installed the Tomcat server and then installed a spring-framework based RESTFul
service.

Java and Tomcat 9: We used Java for our server programming language because
it is one of the most popular programming languages amongst developers, and we de-
cided that it would be a good chance to practice useful programming language. Plus,
we found that Tomcat 9 is the best match with Java. Tomcat has been developed by
Apache Foundation [Apa17a], and it is continuously being developed by many devel-
opers. Because of the long history, there are a number of related Tomcat articles and
libraries on the web. It made it easy for us to understand their product and solve the
troubles we may come across. Tomcat 9 is the latest and most optimized version of
Tomcat.

Web Hosting: The server for an Android application must be able to be connected
from anywhere. Therefore, it is essential to use a web hosting provider. We used
AWS as our host machine provider. AWS provides elastic address and corresponding
ports that anyone can access. It allowed us to build a public server with low cost.

Java and Spring framework for RESTFul: As we described above, we use Java
for server programming. For better programming, open source developers developed a
software framework named Spring framework [Sof], which allows us easy development
of RESTFul server by providing a model-view-controller (MVC) model.
RESTFul data communication method is one of the most popular ways of commu-
nication through HTTP. One reason is that it is platform independent, so any type
of client can access the server for data acquisition. The response from the server is
generated as Json format, which is one of general formats to describe data. Our server
is designed to generate Json format of response, and we coded its corresponding client
to understand the response.

3.3 Client software for server communication


We built a client program written in Java to communicate a RESTFul type of server.
This client must have installed the Android App. In client software, we used Json

5
library to parse text data generated from RESTFul server to generate Java Object
data.

Figure 3: Database scheme used in our project

3.4 Android App


As described above, we chose Java as our programming language. Since we practiced
programming using Java, we chose the Android App as our product, which is written
using Java. Moreover, Android is the most popular mobile operating system over the
globe.

4 Features
In our project, we first built essential functions to operate the grouping platform.
Then, we added additional features, which are customized for the student project.
User Creation: This is an essential function to add more users. As other applica-
tions do, we request minimal information such as email and password from a new user.

6
If the user allows, they can add more information such as location, school, and skills.
Then, this additional information can be used for the member/mentor search function.

Group Creation: User can create their own groups. They can set the name,
description, images, and privacy settings. If a group is private, then the other users
cannot search the group and can be a member only through invitation. Group life
span or mentor information is also included in the created group. Users can add
additional information any time when they want to do so.

Group Search: In the search activity, user can search groups based on keywords.
Based on the keyword, a matched group or member will appear. For group search,
title and description are used, and for people, skills, location, or school information
may be used.

Profile: Users can check what groups they belong to or change their profile infor-
mation. Through the management process, it is also possible to drop or leave groups.

Communication Board: We decide to use the user board as the common way of
communication between members instead of a personal messaging system. It is more
useful when a group member wants to announce something to the other members.
Therefore, once an article is written, then all the other members can read it. In the
future, a personal messaging system and customized board message setting will be
added.

Group scoring: One unique feature compared to other platforms is that we have
a group score about the degree of activeness. It can be computed by considering the
number of active members, online communications between members, or other group
data. On top of the name and description visible externally, potential users can decide
which group is more active.

Mentor invitation: As we described above, students may need to invite the mentor
of their project because of their lack of experience. To satisfy this problem, we add
a function to invite mentor to each group. For each group, several mentors can be
assigned.

5 Team member description


Each role has been assigned based on the members strong/weak skills.

Nuree Kang: He organized the members work and designed the app layout and
data flow.
Taein Gu: The most creative art work came from him, and he focused on building
Android app screen and function.
Uvin Ko: She mainly focused on the Android app development, especially data
communication between the client and Android.
Kyle Kwon: He focused on server side programming such as generating Json
formatted response from public server by reacting client. He also contributed
to build MySQL database scheme and the corresponding SQL.
Austin Suh: On top of MySQL database management, he focused on the client
programming between server and android.

7
6 Conclusion
In this project, we developed an Android based student project oriented grouping
platform named Gather. On top of commonly used grouping platform, we add more
customized features to fit the target users purposes. During the development phase,
we have learned how to code Java, build a RDB scheme, construct a RESTFul server
using Tomcat and AWS, and code an Android App. The every feature described
above is not fully implemented yet, but it will be finished in the future.

References
[Apa17a] Apache. Apache Software Foundation. https://www.apache.org/, 2017.
[Apa17b] Apache. Apache Tomcat. http://tomcat.apache.org/, 2017.
[NKS17] Uvin Ko Kyle Kwon Nuree Kang, Taein Gu and Austin Suh. Group-
Net: prototyped name of Gather. https://github.com/mhlee1215/IEDU_
groupNet, 2017.
[Sof] Pivotal Software. Spring Framework. https://projects.spring.io/
spring-framework/.

Vous aimerez peut-être aussi