Design and implementation of social gathering management mobile application

Objectives: To propose amobile application (Jam@), whichmeans gathering in Arabic, to provide a solution to fill the gap in social and lifestyle applications for organizing events or gatherings, especially in Arabic. Methods: Jam@ (which means gatherings) was developed as an Android mobile application in Arabic. It was evaluated through different system and user acceptance tests. Findings: The results of the tests were promising, and the application has potential as a small entrepreneur project.


Introduction
There is an increasing awareness that social factors, such as our social relationships, shape our wellbeing (1,2) . It is part of human nature that people tend to enjoy gatherings and spending quality time together (3) In order to achieve the goal of this work, we need to get a better understanding of the concept and nature of gatherings in the Saudi community. There are various qualitative techniques for obtaining user information, user survey is one of the well-known techniques (4,5) . We conducted a user-survey with 357 participants. The results showed that 85% of the participants do join a family\friends gathering at least once a month, and 15% attend such gatherings twice a week. Most of such events are usually accomplished after someone first takes the initiative to call for a gathering, and organizes it, which is not an easy task.
When organizing a gathering, the first question one may encounter is, "what should I start with?" The mind is full of ideas regarding the things one should https://www.indjst.org/ 1755 . Gatherings are a part ‫تاعمج‬ of the culture in Saudi Arabia and in most Arabic communities, people like to gather, meet each other, and enjoy time together, as a family or as friends. This style of gatherings is usually called Jamat " " therefore the name of our application (Jam@). It is a Saudi style family\friends gathering and can be defined as a social event that allows a group of family members or friends to meet and share news and spend some quality time together. do or start with. Occasionally, family\friends dynamics are messy, making it difficult to organize gatherings. To prevent such unseemly processes, methods and tools for event planning are available to help you organize a gathering, and these methods can help in making the event more manageable and pleasant (6)(7)(8)(9) . Here are a few steps to help one get started with the process (6)(7)(8) : • Set goals: What is the purpose of this gathering? Is it for entertainment, a celebration, or for deepening the relationship between the members of the group?
• Invite people: Decide; are you the one who wants to invite people to the gathering? And how many?
• Prepare a budget: According to the purpose of the gathering, you can think of the possible inclusions that may entail some monetary expenditure.
• Decide the time: Time is the most important detail to decide. You want all\most members to be agreeable to the allotted time.
• Decide on a place: Peruse the possible locations and evaluate them. You want all the members agreed on the venue and satisfied by it.
• Think about the invitation mode: How will you invite the family members and get the word out? Is it by attaching the invitation link in an email or message? The link may include the venue of the gathering, the name of the gathering organizer, the time, and the budget.
• Get approval: Get approval for your budget and schedule from your participating family members.friends/ • Delegate work to different people: If the gathering initiated by you requires various tasks, delegate those tasks to volunteers, and let different people coordinate the activities under the supervision of the creator/team leader, who should be trusted by the team members.
• Gather items needed for the gathering: The items may include tables, chairs, and sound equipment.
The main steps to get started with the process of organizing a gathering are shown in Figure 1. To the best of our knowledge, there is no Arabic application that helps organize a gathering; a few available applications help only to schedule meetings. "Doodle" is one such example; that tool is in English (10) . To overcome this problem, people tend to use some messaging applications and chatting groups to organize such gatherings, for example, WhatsApp (11) . However, using such modes of communication do not accomplish the job. For the financial part of planning, a few use the Qatta app (12) , a mobile application that helps in organizing travel expenses when travelling with friends. All these and other applications may cover some parts of the needed functionalities, but not all and not in the exact context. Another issue is the need for multiple applications, as a single application cannot accomplish all the required tasks, and this adds more complexity to the process of organizing a social event.
Therefore, a highly collaborative and visually engaging event and social platform is required to easily and effectively organize events and social gatherings. Furthermore, providing it in Arabic would be of great importance to the Arab community. Thus, in this study, an application named Jam@ is developed, which can fill the gap in social and lifestyle applications for organizing events or gatherings, especially in Arabic. Jam@ should help the organizer and participants in setting all the details of the gathering, starting with deciding the time and venue, through distributing the tasks among participants in addition to other things, and ending with calculating the cost, if any.
The rest of this paper is organized as follows: In Section 1.1, the related mobile applications are discussed and Section 2 presents our proposed mobile-app "Jam@". In Section 3, the implementation and testing of our app is presented and the results are discussed. Finally, in Section 4, this paper is concluded, and future work is proposed.

Related mobile applications
Currently, people use multiple applications to organize a gathering, which involves using several applications. Since individual applications only provide some of the tasks and not for all. Using more than one tool is cumbersome and needs efficient management as moving from one application to another is confusing and consumes time and effort. Therefore, we searched for a single application that could support all the needed features and help accomplish the tasks in one place. A few applications do exist that combine all the required features. For example, while doing research on related works, we discovered tools (applications\websites), such as Monday (13) and Vyte (14) . However, looking at the comparative results, we realized that there is a lack of applications that supports all the features needed to fulfill the tasks involved in organizing a social event such as a family\friends gathering. Another important aspect is the language; there is a need for an Arabic application to facilitate this process. In this study, we aim to identify the gap and provide the solution to fill it.

Jam@
Jam@ is the Saudi style of describing a family\friends gathering, and in such gatherings, other than participating in catering or providing needed material and supplies, people may also participate in sharing the material cost (e.g., renting a venue, food). Usually, the person who took the initiative and called for the gathering will be responsible for organizing it. Organizing such events, which may include more than 10 people, is difficult, as it involves a lot of aspects, such as: determining the time and venue, distributing the tasks between the participants, and collecting the costs if needed. Due to a lack of applications for facilitating these tasks and helping the organizer accomplish the objective, everything needs to be done either manually or by using multiple applications to do one or two of the tasks, such as time voting and location sharing.
As mentioned earlier, we propose a single solution to overcome the difficulties in organizing a gathering and to facilitate its inherent tasks. The solution is a mobile application named "Jam@" that will allow an organizer to create a gathering and name it, set either one or a list of possible venues, and set up all the types of tasks that need to be distributed among the participants, such as entertainment and activities. On the other side, the participants can also accept\reject the invitation, select their preferred task from the list, and so on. In the following subsections, we will discuss Jam@ in more detail, such as its architectural design, main features, user characteristics, and implementation.

Architecture
There are two main components in our gatherings app: the Server and the Client (Android mobile). The Server usually manages all the requests and messages received from the Clients. Additionally, the Server plays the role of a repository of information, and also performs the corresponding actions and functions. The Clients are the Android mobiles that have the installed "Jam@" application. The application connects to the Server for registering a new user, adding/initiating a gathering, and sharing specific gathering-related and notification messages to/from the Server. The architecture design of our application is shown in Figure 2.

Features
The main objective behind developing this application is to provide an Arabic mobile application that can be used to facilitate the organization of a social gathering event and cover several inherent tasks related to it. The application helps in facilitating the following aspects: • Calling for a gathering.
• Setting the time and location for the gathering.
• Managing the number of participants in the gathering.
• Distributing tasks among the participants of the gathering.
• Managing the required budget and costs of the gathering. For developing this application, we adopted a user-centric design approach. To understand the requirements of the users, we included a section in our user research survey for collecting the background of the user and another for identifying the current state of user behavior (4) (5) . The last part of the survey captured the user preferences. The first part helped us in defining the problem and current state, whereas the second part was mainly for collecting and identifying the requirements. The survey also helped us know the extent of the need for an app like "Jam@" for organizers and participants.
The survey was published on February 6, 2019 with 357 participants, and the results provided us with increased confidence about the importance of this project to the Saudi community and its use in facilitating the process of organizing a gathering. The main results of the survey can be summarized as follows: • The greater the number of gatherings, the more difficult it is to organize the gatherings.
• People prefer to use the same application for the sub tasks of the gatherings. WhatsApp is the most widely used, as seen in the results. However, it does not provide all the services.
• People attend several gatherings; 41.2% attended gatherings more than twice during a month.
• Based on the users' opinions, it transpires that no application is available to facilitate the organizing of gatherings and also none that supports the Arabic language.

User characteristics and roles
Jam@ has been developed to facilitate the process of organizing a gathering, and supports two types of users-the organizer and the participants-depending on their role in a particular gathering. Each type of user has its own privileges and functions. The organizer is the person in charge of initiating and organizing the gathering, whereas the participant is the person who receives an invitation to join the gathering and acts upon it by expressing their choices and filling any information required by the organizer. The two types of users with their basic individual roles are shown in Figure 3. The registered users of this system can play the role of either organizer\participant. In each "instance" of gathering, the one who takes the initiative to calls for it acquires the role of an organizer and the invited users become the participants. In Figure 4, a use-case diagram is presented, which also shows the main actions that can be performed by the participants and the organizer.

Implementation
The Jam@ application was developed using Android Studio with SDK, as shown in the architecture design of the system ( Figure 2), there are two main components in our Gatherings app: the Server and the Client (Android mobile): • The Server: it handles all the requests received from the Clients and manages their messages as well. It also plays the role of an information repository with its corresponding actions and functions.
• The Client: these are the Android mobiles with the Gathering application installed on them. The Gathering application will connect to the Server for registering, adding a gathering, sharing specific gathering information, and exchanging notification messages to/from the Server.

Application layout and user interface
While developing Jam@, maintaining the ease of use with the functionality of the proposed application were a priority. In this section, we provide a detailed description of the app user interface (which was implemented in Arabic).
The visual presentation of the user interface (UI) elements has a great impact on the user experience of a prod-uct\application. For a good user experience, the content components should be well organized to help people navigate easily within a product or interact with it properly. A hierarchy diagram for the main layout\structure of the Jam@ application is shown in Figure 5. The home screen of Jam@ gives the user access to the main functions of the application and shows notifications for upcoming gatherings. A screen shot of the application home page is shown in Figure 6.

Evaluation and testing
Jam@ was evaluated through several tests, which include system testing, with its different components, and user acceptance testing (UAT).

System testing
System testing comprises tests conducted on a complete, integrated system to evaluate the compliance of the system with its specified requirements. It shows the presence of errors and bugs in the program, and evaluates whether it delivers the expected results. In order to evaluate the developed system, three testing methods were applied which are: • Unit testing, • Integration and regression testing, • Performance and stress testing.

User Acceptance Testing (UAT)
UAT is a very important step in evaluating any application as it helps in assessing whether the system meets the required specifications or not. Our test was performed with five participants, Table 1 below shows demographic information of participants in UAT. They were asked to perform a set of tasks, Table 2 shows those tasks. The tasks performed by the participants and their feedback helped us in developing our application before its deployment.  Edit profile function 4 Allow notifications 5 Add a gathering 6 search about gathering 7 Share a gathering 8 Access notification 9 Edit a gathering 10 Delete a gathering 11 End voting on a gathering 12 Voting on a gathering 13 Edit the Voting

Discussion and Conclusion
The Jam@ application was implemented on Android. We started testing the system against different test cases and strategies to ensure that the system satisfies its objectives. From the results, we concluded that our application (Jam@) has successfully fulfilled its usability and performance requirements. We expect Jam@ to have a significant impact in Arabic speaking communities as it facilitates the process of organizing a gathering and helps in making it an easy and fast job. In the future, we intend to add more functionality to Jam@. Some of these improvements would be: adding the ability for an organizer to click pictures of a suggested venue for the planned gathering, which will give the participants more information on the location as a basis to make better decisions. Furthermore, adding the support of more languages is very important to make this application universal.