Sie sind auf Seite 1von 138

Qatar University

College of Engineering

Department of Computer Science and Engineering

Senior Project Report

Project Group Members:

Abdullatif Naim Mnawar (201403140 - CS)


Alaaeldin Mohamed Abdalla Said (201405124 - CS)
Islam Mohamed Abdallah Ali Ibrahim (201304823 - CS)
Saeed Ahmad Al-Rashdi (201407207 - CS)

Supervisor: Professor. Ali Jaoua

2019
This project report is submitted to the Department of Computer Science and Engineering of Qatar
University in partial fulfillment of the requirements of the Senior Project course.
Declaration

This report has not been submitted for any other degree at this or any other University. It is solely our
work except where cited in the text or the Acknowledgements page. It describes work carried out by
us for the senior project. We are aware of the university policy on plagiarism and the associated
penalties and we declare that this report is the product of our own work.

Student: Abdullatif Naim Mnawar Date: 23/04/2019

Signature:

Student: Alaaeldin Mohamed Abdalla Said Date:23/04/2019

Signature:

Student: Islam Mohamed Abdallah Ali Ibrahim Date: 23/04/2019

Signature:

Student: Saeed Ahmad Alrashidi Date:23/04/2019

Signature:

2
Abstract
Qatar University students face a serious issue which is communicating with each other; the
students’ social life is not as good as they excepted. When the new students join the
university, they expect a different life from high school. Especially, people identify this stage
of our lives as the most fun stage ever, but as a first-year student, you may feel lost, without
friends, missing something which is social life. Then by moving to the second year, you may
ask yourself which doctor I might take this course with? Again, which makes the students
think how or what to do? Who to ask? In addition, usually students are buying books for a
specific course and then throw the book at shelf; we wanted either to make use of those
books by selling them to some students or to donate them in order to help someone else. By
moving to third-year you may ask “Where can I find materials that can help me?” We decided
to create our application in order to overcome those issues. Our Application is called QU
Community which provides the students with several functions/services such as Doctors rate,
bookshelves, course bank, events, part-time work, lost and found items, in addition to
entertainment section which may include chatting, and feed of timeline posts similar to
Facebook. Our application will be android based; only QU members including professors and
staff can use it. It may be expanded in the future depending on the users’ need.

3
Acknowledgment
We must express our appreciation and gratitude to our supervisor, Prof. Ali Jaoua for
sharing his tremendous experience and guidance throughout this semester for the senior
project. We are also grateful to Mr. Aboubakr Aqle and Dr. Osama Halabi for their
contributions to numerous aspects of the project and their valuable guidance at times of
need. We would like to provide special thanks for Qatar University and the department of
computer science and engineering for providing us with all the funds we need to finalize this
senior project within the deadline.

4
Table of Contents
Declaration .............................................................................................................................................. 2
Abstract ................................................................................................................................................... 3
Acknowledgment .................................................................................................................................... 4
List of Figures .......................................................................................................................................... 7
List of tables ............................................................................................................................................ 7
1. Introduction and Motivation ........................................................................................................ 10
1.1. Problem statement ............................................................................................................... 11
1.2. Project significance ............................................................................................................... 11
1.3. Project objectives .................................................................................................................. 12
2. Background and related work ....................................................................................................... 13
2.1. Background ........................................................................................................................... 13
2.2. Related work ......................................................................................................................... 14
3. Requirements analysis .................................................................................................................. 20
3.1. Software development process ............................................................................................ 20
3.2. Functional requirements....................................................................................................... 21
3.3. Non-functional requirements ............................................................................................... 23
3.4. Assumptions .......................................................................................................................... 25
3.5. Ethics ..................................................................................................................................... 26
4. Solution Design ............................................................................................................................. 28
4.1. Overview ............................................................................................................................... 35
4.2. Architecture Diagram ............................................................................................................ 37
4.3. Structural model ................................................................................................................... 38
4.4. Behavioral model .................................................................................................................. 39
4.5. Database design .................................................................................................................... 61
4.6. User interface design ............................................................................................................ 61
4.7. Design patterns ..................................................................................................................... 84
4.8. Hardware/software used ...................................................................................................... 85
5. Implementation ............................................................................................................................ 87
6. Testing ........................................................................................................................................... 90
7. Impact of your project solution .................................................................................................. 119
8. Conclusion ................................................................................................................................... 120
9. Future work ................................................................................................................................. 121

5
10. Student reflections.................................................................................................................. 123
References .......................................................................................................................................... 125
Appendix A – Project Plan ................................................................................................................... 126
A.1. Project milestones ................................................................................................................... 126
A.2. Project timeline ....................................................................................................................... 127
A.3. Anticipated risks ...................................................................................................................... 128
Other Appendices ............................................................................................................................... 129

6
List of Figures
Figure 1. Birkbeck app ........................................................................................................................... 14
Figure 2. Harvard university app ........................................................................................................... 15
Figure 3. Brightspace Pulse app ............................................................................................................ 16
Figure 4. Campus Connect app ............................................................................................................. 17
Figure 5.Firebase chat master............................................................................................................... 18
Figure 6. Agile development process .................................................................................................... 20
Figure 7. Use cases diagram .................................................................................................................. 21
Figure 8. Google play store Statistics ................................................................................................... 25
Figure 9. Boston College Facebook page .............................................................................................. 31
Figure 10. University of Texas Austin Facebook page........................................................................... 31
Figure 11. Ecwid app ............................................................................................................................. 33
Figure 12.High-level architecture.......................................................................................................... 37
Figure 13.Class diagram ........................................................................................................................ 38
Figure 14. Register activity diagram...................................................................................................... 39
Figure 15. Login activity diagram .......................................................................................................... 40
Figure 16. View work activity diagram .................................................................................................. 40
Figure 17. Apply to the work activity diagram ...................................................................................... 41
Figure 18. Edit work activity diagram ................................................................................................... 41
Figure 19. Remove work activity diagram ............................................................................................ 42
Figure 20. View Bookshelf activity diagram .......................................................................................... 42
Figure 21. Remove Book activity diagram ............................................................................................ 43
Figure 22. Edit Book activity diagram ................................................................................................... 43
Figure 23. Claim Book activity diagram................................................................................................. 44
Figure 24. Add Book activity diagram ................................................................................................... 45
Figure 25. View timeline activity diagram............................................................................................. 46
Figure 26. View Instructor rate activity diagram .................................................................................. 46
Figure 27. View friend’s activity diagram.............................................................................................. 47
Figure 28. View course bank activity diagram ...................................................................................... 47
Figure 29. View chat activity diagram ................................................................................................... 48
Figure 30. Add chat activity diagram ................................................................................................... 48
Figure 31. Add comment activity diagram ............................................................................................ 49
Figure32 . Add friend activity diagram.................................................................................................. 49
Figure 33. Add material activity diagram ............................................................................................. 50
Figure 34. Add post activity diagram .................................................................................................... 51
Figure 35. Add rate activity diagram ..................................................................................................... 51
Figure 36. Approve adding material activity diagram ........................................................................... 52
Figure 37. Private chat activity diagram ............................................................................................... 52
Figure 38. Remove friend’s activity diagram ........................................................................................ 53
Figure 39. register Sequence Diagram .................................................................................................. 54
Figure 40. Login Sequence Diagram...................................................................................................... 55
Figure 41. View Book Shelf Sequence Diagram .................................................................................... 56
Figure 42. View Course Bank Sequence Diagram ................................................................................. 56

7
Figure 43. Add job Sequence Diagram .................................................................................................. 57
Figure 44. Apply for job Sequence Diagram ......................................................................................... 58
Figure 45. Edit job Sequence Diagram .................................................................................................. 59
Figure 46. Remove book Sequence Diagram ........................................................................................ 60
Figure 47. View jobs Sequence Diagram ............................................................................................... 60
Figure 48. Database Table..................................................................................................................... 61
Figure 49. Register ................................................................................................................................ 62
Figure 50. Login ..................................................................................................................................... 62
Figure 51. Timeline................................................................................................................................ 63
Figure 52. Chat ...................................................................................................................................... 63
Figure 53. Friends.................................................................................................................................. 64
Figure 54. Instructor Rate ..................................................................................................................... 64
Figure 55. Bookshelf.............................................................................................................................. 65
Figure 56. Course Bank ......................................................................................................................... 65
Figure 57. Work..................................................................................................................................... 66
Figure 58. Registration .......................................................................................................................... 67
Figure 59. Verification Email ................................................................................................................. 67
Figure 60. Logging ................................................................................................................................. 68
Figure 61. Viewing User profile ............................................................................................................. 68
Figure 62. User Profile – Editing user info ............................................................................................ 69
Figure 63. Timeline – View other users profile ..................................................................................... 69
Figure 64. Timeline – Adding a post...................................................................................................... 70
Figure 65. Viewing Timeline .................................................................................................................. 70
Figure 66. Timeline – moving to the newest post ................................................................................ 71
Figure 67. Timeline – Adding a react .................................................................................................... 71
Figure 68. Timeline – Adding a comment ............................................................................................. 72
Figure 69. Timeline – Delete a comment .............................................................................................. 72
Figure 70. Timeline – a Post .................................................................................................................. 73
Figure 71. Chat – Adding a new chat .................................................................................................... 73
Figure 72. Chat – Adding a new chat 2nd way ....................................................................................... 74
Figure 73. Chat – Deleting chat ............................................................................................................. 74
Figure 74. Friends – Adding a new friend ............................................................................................. 75
Figure 75. Friends – Deleting a friend ................................................................................................... 75
Figure 76. Viewing Book Shelf............................................................................................................... 76
Figure 77. Bookshelf – Adding a book................................................................................................... 76
Figure 78. Book Shelf – Editing a book.................................................................................................. 77
Figure 79. Book Shelf – Deleting a book ............................................................................................... 77
Figure 80. Book Shelf – claiming a book ............................................................................................... 78
Figure 81. Viewing Course Bank............................................................................................................ 78
Figure 82. Course Bank – Adding materials .......................................................................................... 79
Figure 83. Viewing Work ....................................................................................................................... 80
Figure 84. Work – Adding a work.......................................................................................................... 80
Figure 85. Viewing Instructors Rate ...................................................................................................... 81
Figure 86. Instructors Rate – View an instructor 1st way ...................................................................... 81
Figure 87. Instructors Rate – View an instructor 2nd way ..................................................................... 82

8
Figure 88. instructors Rate – Rating an Instructor ................................................................................ 82
Figure 89. Login out .............................................................................................................................. 83
Figure 90. Invitation email .................................................................................................................... 92
Figure 91 people attending the test ...................................................................................................... 94
Figure 92.Alaaeldin interacting with students (1) ................................................................................. 94
Figure 93.Students at testing (1) ........................................................................................................... 95
Figure 94. Students at testing (2) .......................................................................................................... 95
Figure 95. Students at testing (2) .......................................................................................................... 96
Figure 96. Students at testing (3) .......................................................................................................... 96
Figure 97. Students at testing (4) .......................................................................................................... 97
Figure 98. Abdullatif and Alaaeldin interacting with students (1) ......................................................... 97
Figure 99. Abdullatif watching closely one of the students................................................................... 98
Figure 100. Alaaeldin writing notes....................................................................................................... 98
Figure 101. Dr. Zeyad was asking about the test................................................................................... 99
Figure 102. QUC team ........................................................................................................................... 99
Figure 103.Test Prototype .................................................................................................................. 100
Figure 104. some of the comments from iOS users (related to Q10).................................................. 116
Figure 105.Project timeline................................................................................................................. 127
Figure 106.First question result .......................................................................................................... 129
Figure 107.Second question result ..................................................................................................... 130
Figure 108.Third question result ......................................................................................................... 130
Figure 109. Fourth question result ..................................................................................................... 131
Figure 110.Fifth question result .......................................................................................................... 132
Figure 111.Sixth question result ......................................................................................................... 132
Figure 112.Seventh question result .................................................................................................... 133
Figure 113. Eighth question result ...................................................................................................... 133
Figure 114.ninth question result......................................................................................................... 134

List of tables
Table 1. Use cases summary ................................................................................................................. 22
Table 2.Hardware/software used ......................................................................................................... 85
Table 3. Tools and Framework used ..................................................................................................... 87
Table 4. area of the test ........................................................................................................................ 91
Table 5.Tasks that were tested and Scenarios: ................................................................................... 101
Table 6. Test results – Android ........................................................................................................... 103
Table 7. some of the comments from android users (related to Q10) ................................................ 109
Table 8. Test results – iOS ................................................................................................................... 110
Table 9.Testing Non-functional requirements .................................................................................... 117
Table 10.anticipation Risk ................................................................................................................... 128

9
1. Introduction and Motivation
The idea of the project was inspired by us as Qatar University’ students who are studying computer
science. As we are living a student lifestyle facing the same difficulties that all students are facing.
Meanwhile, faculty members and staff face difficulties in reaching students and audience for different
kinds of events. We decided to build a mobile application that is going to solve the difficulties that
these two segments are facing.

The first segment is the student's segment, which is the main one and the biggest. Our
application is going to provide services that students can utilize. Such as a database of materials that
contains all the courses, that the university has provided with regular updates and organized order.
Furthermore, the ability to search for temporary tasks or jobs such as research or collaboration, with
any entity that is looking for an assistant for a temporary period or a specific task only, which is going
to help the students to earn experience and money in certain situations. Moreover, the platform may
provide students with services for exchanging or selling their old books. It may also provide a service
that allows students to rate their instructors. Furthermore, chatting is the most interesting part that
we are going to offer which is going to let the students, instructors, and faculties chat about a variety
of academic subjects, organize events that are going to be added to our application to make it easier
for students to know about it and get to look at the information about it.

The second segment, which is an important one, is the staff and instructors. They could use
our platform services such as announcing event details within the platform and display it for the
targeted users of the platform. It is going to be convenient for the instructors to reach the students
through the chatting system presented by the platform. Moreover, provide the ability to view lost
items is one of the services that the university offers, but it will be convenient if they connected to our
platform to give more accessibility to the users to use this service from both the university and the
platform, which gives them the option to choose the easier route for them.

This mobile application will be so convenient for both segments within the campus. It might
be used even for a further suggestion from the users to develop this application to get it as efficient
as possible.

10
1.1. Problem statement

Students and professors find difficulty reaching such services either provided by the university or not
even yet existing like:
1. A platform that views lost items in the campus.
2. A platform that allows users to ask for tasks or jobs.
3. A platform that gives users access to the given course’s materials by the university.
4. A platform that displays books available for sale, borrow or free.
5. A platform to find the professors and instructors’ rate.
6. A platform to view events happening on the campus.
7. Chatting system for the university community members.

1.2. Project significance

Since smartphones usage increased in the previous years, for sure most of Qatar university
members are using smartphones in their day-to-day lives. In fact, providing such a handy mobile
application for Android Operating system users as a start is going to let them find any services that are
provided by the university within our platform easily.

Even that it will increase the student's ability to communicate and seek their need to be
belonging to such a community using chatting services that are provided with several stages’ timeline,
chat viewing and private chat. Besides our plan will provide beneficial functional and nonfunctional
services that students, faculty, and staff find some difficulty to reach or find and make it available for
them in just finger clicks. Community gathering using such a platform is important. It is going to be
hard for the students to reach some services by their own such as a bank of materials, check some
events details and offer books for sale rent or free.

11
1.3. Project objectives

This project aims at the development of a mobile application that allows smooth access to handy
services for Qatar University members. The primary goals of this project are:

1. Improve the interacting between Qatar University members within a platform.


2. Create a community that gathers all Qatar university members on one platform.
3. Reduce the time consumed by some provided services by the University and work on connecting
them with our platform.
4. Provide a comfortable, handy way to view bank of materials that contain most of the given courses
in the University.
5. Provide a platform to ask about a job or task that one of the members would like to get.
6. Give event producers a handy platform that will let them reach a massive audience from the
community just in finger click.
7. Give the opportunity for the members to display used books to other members for rent or free.
8. Let members rate the professors and instructors based on some options.
9. Display list of professors and instructors with some information about them rated.
10. Provide a chatting system for the members to use instead of other platforms.
11. Provide a timeline that contains the hotly discussed subjects during the chat.

12
2. Background and related work

2.1. Background

The absence of a platform for the students and the faculty member of Qatar University where
they can reach all the services provided by the university. Students do not have a way to acquire
information about courses and instructors from students who have taken these courses before, nor
the database of previous materials of their courses that might help them with their current subjects
that they are taking. Furthermore, the students and event’s organizers do not have a robust system
to reach students to attract them to volunteer to organize their events or even to invite them to attend
such events other than emails.
The Qu Community application was inspired from the issues that we as students who lived through
our college years within Qatar University have noticed and wished that they were available, that could
have made our college lives more productive and made our academic performance better if we had
access to such services and materials.

13
2.2. Related work

There are numerous communities’ apps that have been developed in the past. The idea of
having a community app exclusive for a university campus is somehow unique. We locate some
platforms that were exclusive for campuses. The core and basics of developing a community app are
the same. Many campuses have their own community app and here are some:
1. Birkbeck, University of London

Figure 1. Birkbeck app

Birkbeck, University of London, wanted to find new channels for engaging their students. Knowing
this would lead to a more tightly-knit campus community and ultimately, a higher student retention
rate. They created a university app to guide students through orientation, but the app also became a
critical message board for students to solve each other’s new student problems and connect with each
other. Guidebook’s interactive features, easy-to-use content management system, and clean design
allow Birkbeck to provide relevant information to new students and empowers those students to form
more meaningful relationships with each other.

The Birkbeck app provides Moodle access to students and staff at Birkbeck College, University of
London. You will need your university username and password to use this app.

You can use this app to:


- browse the content of your courses, even when offline
- receive instant notifications of messages and other events
- quickly find and contact other people in your courses
- upload images, audio, videos and other files from your mobile device
- view your course grades
- and more!

For more info, cited from < http://www.bbk.ac.uk/ >

14
2. HarvardUniversity

Figure 2. Harvard university app

The Harvard Mobile app is a University-wide initiative to improve the mobile experience of
students, faculty, staff, visitors, and neighbors who interact with Harvard’s campus and community.
Released in January 2013, Harvard Mobile 2.0 is the latest version of the application with several
functional, design, and content enhancements. Harvard Mobile 2.0 now has native applications for
Android and iOS operating systems, as well as a mobile web application accessible to any web-
enabled smartphone.

For more info, cited from < https://www.harvard.edu/about-harvard/harvard-mobile-apps >

15
3. Roane State Community College (Brightspace Pulse)

Figure 3. Brightspace Pulse app

Brightspace Pulse is a mobile app for students that can help you stay connected and on track
with your Brightspace courses. It gives you one easy view of course calendars, readings, assignments,
evaluations, grades, and news. The app will help you to make better decisions about how to handle
your workload, when to submit assignments, and when to prepare for tests. Real-time alerts will let
you know when classes are canceled, rooms are moved, or new grades are available. The schedule
view and weekly visualization enable you to quickly at a glance view of what is due today, this week
and upcoming across all your courses.

· See all the important dates and deadlines for each one of your courses
· Anticipate your busiest times with a quick glance
· Receive the latest grades and news
· View all your course content
· Share updates via email, text messages, and social media
· Enter your own events and deadlines
· Read and reply to subscribed discussions
· Edit course details and customize how much assignments and tests are worth
· Seamlessly log in to Brightspace via your browser to complete tasks
· Supports Apple Continuity for login from iPhone to iPad or Ma

For more info, cited from < http://www.roanestate.edu/?8587-Mobile-App >

16
4. Aims Community College (Campus Connect)

Figure 4. Campus Connect app

Use the Aims Community College Events app to find out what events are
happening and find out how you can get involved on campus!

The official Aims Community College mobile app is now available for Apple, Android, and Windows!
Search for news, check out campus events, manage your class schedule, find locations on campus,
get the latest update from our Facebook feed, find contact info and more!

• Sort by campus organizations hosting events


• Find events tagged with your favorite activities
• Add events to your calendar so you don’t miss out!

Powered by Presence. Presence provides a web and mobile platform to universities and colleges to
help increase student engagement, assess involvement, allocate funding efficiently, and improve
retention through simplifying and digitizing processes, collecting, structuring, and analyzing
involvement data, and provides tools to help reach and engage more students.
For more info, cited from < https://www.aims.edu/about/social-media/aims-apps.php >

17
5. Firebase chat master

Figure 5.Firebase chat master

We have tried to go deeply a little bit by documenting this application in order to know how the
real-time chat is working. We have documented this application and written what each method does

 Chat Activity —> includes the following methods/functions


o showFriendsList(): show all friends (if the user isn’t a friend + sign shows to add it as a friend
otherwise remove mark will be displayed)create chat(): creates the chat and identify where
to post the message in the database.
o initializeScreen(): assign variables from the interface to java class (interface fields)
 ChatListActivity  includes the following methods:
o createNewChat(): moves to Chat Screen.
o unsignedinitialize(): After signing in initialize the user image, friends and chats.
o -onActivityResult(): checks if the login success or failure.
o -onOptionsItemSelected() handles the option menu selections (signout, friends..etc)
o -createUser(): initialize the user image and email..etc if the user is signed in before and
closed the app and reopened it again, also assign the listener to the user (keep tracking of
his friends/chat)
o onCreate(): called once this activity starts —> assigning the database references and
information to the local variables.
o onPause(): called when the user switch between the apps —> it disable the listener in order
to decrease the battery consumption.
o onResume(): called when the user back again to the app —> it attaches the listener of the
database again.
 ChatMessageActivity
o onCreate(): called once the user goes to a single chat —> Checks for recording voice
permission, and read/write to storage permission which is needed to send voices and
images. In addition to assigning of the local variables which are related to the interface, and
shows the messages related to the entered chat.
o -onRequestPermissionsResult(): checks the result of permission if the user granted the
needed permissions or not, if not granted we destroy the activity.

18
o -openImageSelector(): it opens a dialog to choose where the user wants to send the
message from either gallery or similar applications.
o -onActivityResult(): tries to upload the image to firebase cloud storage while doing this it
shows a dialog says sending the image.
o -openVoiceRecorder(): shows an indicator while clicking record voice and send it to the
cloud storage, when the user releases the recording button it stops recording.
o -startRecording(): prepare the record to be recorded from the microphone and use some
built-in encoding functions in order to complete the process.
o -stopRecording(): stops recording then calls upload audio() function in order to upload it to
the fireside cloud storage.
o -upload audio(): shows a dialog called uploading audio and upload the audio in the correct
path of those chat group.
o -addListeners(): it watches the text to be sent to the chat, and checks if the length of the
message is less than zero it disables the send button in order to avoid sending an empty
message.
o -addVoiceToMessages(): this function is used by the uploadAudio function in order to
determine the correct post path to the conversion and attach time to the recorded message,
it posts the audio to the chat screen.
o -addImageToMessages(): this function is used by onActivityResult() in order to identify
where is the correct path to post the image and attach it to the current chat screen, in
addition to attaching time to the message.
o -sendMessage(): attach time to the text message and send it to the database in the correct
path and clear the text message input.
o -showMessages(): it shows all the messages from the database in case if the sender is the
current user it will have a different position in order to indicate that this message has been
sent by you.
o -playSound(): it plays the sent voice, or recorded voice in the chat screen.
o -initializeScreen(): assigning the fields from the interface.
 FriendListActivity
o -onCreate(): it called once the activity get called, it uses two more methods which are
initializeScreen() and showersList()
o -showUserList(): it shows all the application registered users (if the user isn’t a friend + sign
shows to add it as a friend otherwise remove mark will be displayed)
o -removeFriend(): removes a friend by its email of the user click on the ( - ) sign.
o -addNewFriend(): adds a new friend to your friend's list by clicking on the (+) sign.
o -initializeScreen(): it assigns the local variables from the interface.
 ProfileActivity
o -initializeScreen(): initialize the variables from the interface and set the title to Profile
o -initializeUserInfo(): getting the profile picture from the database storage and show it in the
user profile interface.
o -openImageSelector(): open a selector in case if the userchooses to change his profile
picture (Choose photo from gallery or whatever the available options in the user’s device)
o -addImageToProfile(): upload the new image of the user in the database storage and show it
to the interface this function is called by onActivityResult()
o -onActivityResult(): the result if the user changed his photo it shows uploading dialog while
uploading the image to the database storage and get the correct location to post the image
to the current user and then call addImageToProfile() function which does the rest.
 Constants class
o Contains the static string variables such as firebase nodes.
 Main Activity: it opens ChatListActivity once the application launches.

19
3. Requirements analysis

3.1. Software development process

We had two options to select from, Waterfall and Agile, we could not use Waterfall
because we may face changes in the future, and this is one of the Waterfall disadvantages.
Thus, we have chosen Agile Software development lifecycle because it allows us to adopt
changes especially in an android platform, Google makes some changes regularly, which
may lead us to change some parts of the code and add new features to keep our
application updated with the latest technologies.[6] [7]

Figure 6. Agile development process

20
3.2. Functional requirements

Figure 7. Use cases diagram

21
Table 1. Use cases summary

Use case Brief description


Login User is able to login to our application
Register User is able to register a new account
List Work List all available jobs that user request
Remove Work Remove a specific job if its owner requested

Edit Work Edit a specific job if its owner requested


Add Work User can request someone to do a specific job to
do.
Apply for Work User can apply/claim for that job
List Couse Bank List all course materials that have been posted
by the users
Add Material Add a course material in course materials list

List Books Store List all books that need to be sold or donated to
other students/users
Add Book Add the book to the list of books that need to be
sold or donated
Edit Book Edit books in case the user is the owner of the
book
Remove Book Remove a specific book in case the user is the
owner of the book
Claim Book Claim the book if the user needs it
List Instructor Rate List all available doctors list
Add Rate User can add his feedback
View home View the timeline in addition to the ability to
choose chatting, friends’ tabs
View Timeline List all users’ posts
Add Comment User can add a comment to a specific post
Remove comment User can delete comment on a specific post
Add Post User can post something to be shown in the
timeline
Remove post User can delete his post

22
Add react User can like, dislike a post

list Chats View user’s current/previous chat


New chat If the user wants to start a new chat with a
friend or group of friends
Remove chat User can delete chat

List Friends List all the user’s friends


Remove Friend Remove a specific friend in case if its already
there
Add Friend Add friends from the application user’s list
Approve adding material Ability to approve/declined course materials, in
order to add it to the list.
Remove Post User can delete a post

3.3. Non-functional requirements

1. Performance
* We assume that most of our user base will be from university students, who are still in the early
’20s, so they tend to get bored quickly if any process takes a long time to finish, Thus, we need to
make the app as fast as possible.
1) Users will be able to register successfully in the app in less than 2 minutes, 90% of all times,
all they need to do is to provide their QU mail and wait for an authentication message which will take
less than 30 seconds to be delivered.
2) Listing any work, book, etc. will take less than 30 seconds, 80% of all the time, as all that
they need to do is to retrieve the data from the database and displays it on the user screen, which will
take no time.
3) Adding an item, book, work, etc. will take short time, because the user must fill a small form
with the right terms to list the job in the work list or anything like a book, etc.
4) Editing a description for a job or for a book will depend on the user but mostly as he finishes
from editing, the new description will be updated immediately to the database.
5) Removing will take about 10 seconds, 90% of the time, all the users have to do is to swipe
and the delete icon will show up, and then it will be deleted from the database.
6) Response for chatting to the user in no time, since it is a live chat the maximum delay time
is very minimal might be due to technical issues.

23
2. Scalability
Our app is scalable; the app could handle more and more students. All we need to do is to
enlarge the DB capacity in order to handle the growing number of users.

3. Availability
Using a cloud-based server (Firebase), will guarantee that our services will be available 24/7,
even if its storms outside.

4. Modifiability
We could add so many services to the app in the future to suit new students, like an interactive
map or a guide, without affecting the old services, since the architecture we use is very helpful in the
case or adding of modifying already existing features.

5. Maintainability
Though some maintenance is needed for the app, users will be notified about the time of it
and how much would it take, usually it will be at night time due to less traffic on the server.

6. Usability
The app interface is very friendly, there is no complicated stuff the user has to do in order for
example to view the available jobs. all he has to do is to click on the job’s icon.

7. Reliability
In case of two people chatting, no message loss is allowed, and if the receiver of the message
wasn’t online, the message will be stored in the cloud database, and whenever the receiver is back
online, he will be notified about the message

24
3.4. Assumptions

The project’s assumptions:

● Qatar University facilities will utilize the application.


● Google Play will approve the application to be available on the store.
- After having an Alpha version, we decided to try out Google play service, it was the first
time that we use it. We have succeeded in releasing an Alpha version, and it Google has
verified the application using their Google Protect service which gives us a good sign that
our application is protecting user’s confidentiality.

Figure 8. Google play store Statistics

As we can see the installation rate is increasing by time since QU members knew that there is an
application for the community they started to interact positively.

● All external systems to be used must be licensed if needed.


- We have bought firebase subscription, which gives us the ability to expand our system
functionality which uses more bandwidth and give the users the freedom to have no limit
to download any material from course bank, in addition to the data load, chat messages.

25
● The server will be available for all users all the time.
- We are using Firebase Real-time database, Firebase storage which is running on Google
servers, which gives us a huge advantage to have 24/7 running servers without the
headache of security issues and known/unknown attacks.

● Firebase database will expand with the expansion of the data being added to the application.
- As we mentioned at the license part, we have bought a subscription (Pay as you go) which
gives us the ability to keep expanding our data without any issue, although we have to
pay according to our usage, but it saves so much time and it will be scalable for a huge
number of members.
-

3.5. Ethics

From the Code of Ethics and Professional Conduct (ACM):


 The programmers should contribute significantly to developing systems that have significant
solutions to limit the negative effects on society; thus, the systems developed should have very
high standards.
 The programmers should avoid any harms that may affect others. The systems designed should
avoid any loss of user’s information as this may be harmfulto them; Thus, the programmers and
system designers should minimize and limit any risk of harming users due to “coding errors” and
“weak security”.
 The programmers should be totally honest and trustworthy. The programmers should be honest
and should report any failure or any mistake done in their developed systems to avoid any
consequences that may affect the users.
 The programmers should be aware of providing credit for intellectual property. This is a
mandatory task for programmers as no person should be allowed to take credit of someone else’s
work even if there are no copyrights to protect their work.
 The programmers should maintain and respect the user’s privacy. The programmers should be
capable of developing systems that protect user’s private information from any unauthorized
access to it.
 The programmers should keep an eye on honor confidentiality. The programmer must keep any
information related to the user as confidential unless they are required by any law.

26
From the Software Engineering Code of Ethics and Professional Practice (IEEE):
 The software developer should be aware of the full responsibility for their own work. If any of
their designed work results in errors, the software developer should accept the full responsibility
for their work and start modifying it before any harmful consequences happen to the software
users.
 The software developer should identify and report any economic, cultural, legal issues related
to their work. The software developer should report any of these issues to their managers before
continuing their work.
 The software developer should ensure that their work satisfies the user’s requirements. The
software developer should always be in contact with their managers asking for approval step by
step. If the approval is not accepted by the user, the software developer should modify the
software until the user agrees on the work.
 The software developer should test, debug and review their software well before publishing it
for users. The software developer should perform the appropriate tests for their work to make
sure their software will not result in any harmful consequences in the future.

27
4. Solution Design

4.1. Alternative solutions and tradeoffs

 Identify possible solutions and analyze their tradeoffs.


- The absence of a community-based communication tool for the students of
Qatar University has been a problem for a long time, which we intend to solve.

- Possible solutions for that problem are:


1. Facebook Platform and API.
2. Dedicated Website.

 Facebook Platform and API:


- There is a variety of APIs and SDKs that Facebook provides for developers to
integrate features such as posting to and from the platform and also marketing
APIs to use Facebook’s marketing tools for any purpose.[4]

- Facebook APIs in general use the following languages:


Java, PHP, JavaScript, Pytho, and Ruby, to use any of these languages, it is

required to use databases such as MongoDB, or MySQL, which are robust and

vastly used, however, they require a lot of development time, cost to host on

secure servers and also require specialized developers which increase the

overall cost on the development team and makes it harder to manage from a

team management stand-point. [4]

Facebook provides multiple APIs that can be used for a variety of purposes to
help businesses and organizations to better communicate and connect to their user
base, the following are examples of these APIs:

1. Graph API:

The Graph API is the essential method to getting information into and
out of Facebook's platform. It's an HTTP-based API that applications can
use to automatically inquiry information, post new stories, oversee
promotions, transfer images, and play out a wide assortment of different
errands.

28
The Graph API is named after the "social graph" — a portrayal of the
data on Facebook. It's made out of:

nodes — essentially singular items, for example, a User, a Photo, a


Page, or a Comment

edges — associations between a group of objects and signal object,


for example, Photos on a Page or Comments on a Photo

fields — information about a certain object, for example, a User's


birth date, or the name of a certain page.

Ordinarily, you utilize nodes to get information about a particular


object, utilize edges to get a group of objects on a single object and utilize
fields to get information about a single object in a collection.[10]

2. Marketing API:

Building marketing automation with Facebook's publicizing platform.


Your application contains any sort of functionality you create by utilizing
Marketing API or other Facebook APIs.

You may benefit by utilizing the Marketing API in the event that you
coordinate it within one of these profiles:

As a marketer, you pitch to promoters or organizations who oversee


advertisements on digital platforms, including Facebook.

As an advertiser, you may manage your advertisement expenses,


have noteworthy promoting scale particularly on the Facebook platform
and require a custom arrangement that uses your own internal
information.[10]

3. Pages API

Pages API allow the developers to create call-to-action buttons to


enhance the experiences right on their Facebook Page.

Page API allows developers to add Page Tabs to a page, and under a
tab, they can provide relevant applications or custom content for their
page.

Custom Page's tabs empower the developers to make a lot more


engaging experience on Facebook and control content for guests and the
page's fans to see on their page.[10]

29
- Facebook’s react-native JavaScript framework is one of the SDK that is offered
to allow developers to develop mobile applications that are very close to native
applications in functionality, and also can be deployed on both IOS and Android
platforms, which saves a lot of time and effort on the development team. [4]
However, using react comes with downsides such as:

1. Small Collection of Previously-made Components:


Components are React Native's standout feature. However, there are
not many of them, there are just a couple. In spite of the fact that, it is yet
another advancement system and that the quantity of these components
will eventually increase, right now the gathering is very little.

2. App Performance Lacks as Compared to a Pure Native App:


In the case of the development of relatively simple apps, React Native
can be very handy. However, if the application requires advanced
functionalities, the performance of the React Native application will
drastically decrease compared to natively developed applications.

 Facebook Platform:

- Using Facebook’s platform to create a social community within the university’s


community is an adopted option by many universities. There have been many
pages and groups created by the students themselves to find a place to talk,
communicate and discuss topics such as material related questions,
information about certain professors, and even managing and organizing
events in the university.
Some of the examples of such communities are:

30
1. Boston College:

Figure 9. Boston College Facebook page

What makes Boston College's undergrad Facebook Page so unique is


how engaging the management of the page with the members of the page,
and the different divisions and schools inside the college. They utilize "tagging"
and "hashtags" to arrange events and coordinate between them and other
facilities outside the university

2. University of Texas Austin:

Figure 10. University of Texas Austin Facebook page

Relatively few schools and colleges have utilized Facebook's call to


action feature. Facebook allows Page administrators to pick a call to action
button from a group of seven pre-made options such as "Sign Up," "Shop
Now," "Contact Us," "Book Now," "Use App," "Watch Video," and "Play Game".
It then links the button to any other webpage that aligns with their objectives.

31
This made their page more engaging and more useful than just a place to post
events and just text, and video, but rather an access gateway to much more.

- Facebook also offers its API to be utilized by developers to use Facebook’s


features to engage fans and build communities within Facebook or outside of
it by building applications, examples for such applications are:

1. Fan of the Week for Pages:


This app that is used within Facebook pages keeps a record of the participation
of the fans of that page, and then automatically creates a post as a shout out to
the fan of the week, which helps with engaging the fans and making them feel
special and rewarded for being active on the page.

2. Ecwid:
This app helps the admin of the page to create a store on Facebook. Ecwid
integrates Paypal and other payment processors to help in smoothing the
purchase process within Facebook. However, Ecwid is a stand-alone website that
anyone can create a store on it. Their app helps users of Facebook to integrate
their store with their pages on Facebook.

32
Figure 11. Ecwid app

3. Embedding Facebook in websites:


Embedding Facebook posts in websites allows users to integrate their pages
posts on their website and utilize the comments section and likes and shares
features to increase engagement with users of these websites.

- Facebook offers a great variety of tools as shown in the previous examples, but
it limits the developers even with using the API to just using Facebook features
within the platform itself and not be completely creative on how they would
want to approach the system in ways that appeal to their needs and goals.

- The issue that made this option not appealing to many of the students is the
fact that a Facebook Page or Group does not give many options to the students
other than to post a question and wait for an answer.

- The app is neither robust to find answers for the desired submitted question,
nor the feeling of being a part of an official University-built community.

33
- It is still a Facebook page with limitations to just being a social media page.

- Another downside to using Facebook to build a university community is the


lack of a well-organized database for questions and studying materials.

- There are no proper event management tools, other than the simple calendar
used on Facebook.

 Dedicated Website:
A university community website with a proper system for events
management, and a database to find needed materials. information needed
by the students can be a very good option because it provides a robust system
and a database.
Using Web development technologies such as HTML, CSS, JavaScript, PHP,
and MySQL is one of the stacks for developing a dedicated website application
with all the features a university community might need.

However, it has a huge development cost overhead due to the variety of


skills it needs.
This leads to the need for a larger number of developers, and also an
additional cost for dedicated hosting and secured database.

Such databases such as MySQL and MongoDB are hard to develop and are
time-consuming.
Furthermore, they require a dedicated database manager to work with the
development team to keep them up and running.
Which is a huge hassle compared to solutions such as Firebase from google
that is offered for mobile applications[2]

Furthermore, another issue with that solution is the fact that a website is
not as interactive or easy to use due to the lack of a quality User Experience.

Mobile Applications provide great user experience, which in this digital age
a very important thing for students and any kind of users alike.

On the other hand, websites nowadays can be mobile-friendly.


This can provide a better user experience for the users.

34
However, the capabilities of a website to be a social community is not as
strong as a native mobile application, due to the lack of intuitive mobile
application features.
Such as notifications pop-up reminders and other features that a native
mobile application can utilize within the mobile phone.[2]

4.1. Overview

 Native Mobile Application:

- Native mobile application development includes developing applications for a specific


mobile operating system, that is usually accessed through the dedicated applications stores
of these platforms. Development of an IOS application, for example, requires the use of
Objective C or Swift, on the other hand, for Android, Java or Kotlin. [1]

Both Apple and Google offer the developers their very own development kits, interface
components, and SDKs.

Here are some of the benefits of native mobile application development:

1. Performance:

- With native mobile application development, the application is specifically made and
tailored for a particular operating system.

- Accordingly, the application exhibits a high level of performance.

- Native applications are quick and responsive because of the fact that they are tailored for
that particular system and are compiled and utilizing core programming language and APIs
of that platform.

As a result, the application is substantially more productive.

The mobile device stores the application enabling the product to use its high processing speed.

While users navigate the application, the visual components of the app are previously stored on
the device, which leads to a high loading speed, which improves the user experience.[5]

2. Full Access to Device’s Features and Capabilities:

35
- Native applications are developed for their specific platform, taking full access to the
platform's features and capabilities.

- These applications can directly get to the hardware of the device, for example, the GPS,
camera, microphone, and more, which eventually results in better user experience.

- Pop-up messages or Push notifications are another great feature available for native mobile
application developers, which allows them to have better and continuous communication to
their application's users.[1]

- These steps are easy to build and even easier to maintain, such as Firebase by Google, which
is a database on the cloud servers of Google.

- Firebase guarantees perfect up-times and low cost in development and does not need a
professional to host a database.

- Hence, it cuts on the development costs heavily and provides great quality at the same
time.[3]

- Intuitive communication with one another in one-to-one messaging or a group messaging


that everyone got used to from the famous apps like “Whatsapp” and “Facebook
Messenger”, is another advantage to native mobile applications.

- It can easily provide a system to manage events and announcements and reminders through
mobile phones notification systems.[5]

- For the mentioned reasons and benefits of a native application, we chose to go with an
Android Application for the widespread of the Android users around the world and to hit the
majority of users on our first release.

36
4.2. Architecture Diagram

Each part of the architecture will have a specific role. Google developers recommend
Model–view–ViewModel (MVVM) because of Android activity life cycle requires retrieving
the data multiple times.[9] For example, once the user switch between apps a
method/function called onPause() is called. When the user comes back again to the app, the
onResume() method is called in which we need to retrieve the data again. That’s why
MVVM is the best option for Android applications. It also provides high coherence each
component is separated and it has a specific task to do, which gives us the ability to manage
and expand our application in the future. [8]

1. Activity / Fragment: the user interface that shows directly to the user. It has direct access to all
objects which belong to the View Model.

2. View Model: Has direct access to the repository, which means that we will be notified for any
data change.

3. Repository: it’s the data layer which controls the database stuff, retrieving, updating, deleting
according to the user needs, it has access to 2 databases which are SQLite using Room, and the
main database which is Firebase, once we retrieve/update data remotely the view model will be
notified. [9]

Figure 12.High-level architecture

37
4.3. Structural model

Figure 13.Class diagram

The user is the main actor in our application who do most of the actions, we are not saving
user password in order to secure the user's data. Also, user can add a Friend, Work, Book, Post
which includes some interactions, for example, like, dislike, comment. We actually see that the
actions that the user can use will be inner ArrayList in order to make it easier to be accessed.

38
4.4. Behavioral model

4.4.1. Activity diagrams

Figure 14. Register activity diagram

39
Figure 15. Login activity diagram

Figure 16. View work activity diagram

40
Figure 17. Apply to the work activity diagram

Figure 18. Edit work activity diagram

41
Figure 19. Remove work activity diagram

Figure 20. View Bookshelf activity diagram

42
Figure 21. Remove Book activity diagram

Figure 22. Edit Book activity diagram

43
Figure 23. Claim Book activity diagram

44
Figure 24. Add Book activity diagram

45
Figure 25. View timeline activity diagram

Figure 26. View Instructor rate activity diagram

46
Figure 27. View friend’s activity diagram

Figure 28. View course bank activity diagram

47
Figure 29. View chat activity diagram

Figure 30. Add chat activity diagram

48
Figure 31. Add comment activity diagram

Figure 32. Add friend activity diagram

49
Figure 33. Add material activity diagram

50
Figure 34. Add post activity diagram

Figure 35. Add rate activity diagram

51
Figure 36. Approve adding material activity diagram

Figure 37. Private chat activity diagram

52
Figure 38. Remove friend’s activity diagram

53
1.1.1.Design Sequence Diagrams

Figure 39. register Sequence Diagram

54
Figure 40. Login Sequence Diagram

55
Figure 41. View Book Shelf Sequence Diagram

Figure 42. View Course Bank Sequence Diagram

56
Figure 43. Add job Sequence Diagram

57
Figure 44. Apply for job Sequence Diagram

58
Figure 45. Edit job Sequence Diagram

59
Figure 46. Remove book Sequence Diagram

Figure 47. View jobs Sequence Diagram

60
4.5. Database design

We are using two types of database, SQLite database which is rational, and we are using it
locally on the user’s devices in order to make the loading/sorting process faster. Also, we are using
Room library for Android which makes the life easier to deal with relations between tables, in
addition to Jason library which transfers the nested ArrayList<Object> to a string to be able to be
saved inside the same table rather than relating them using the foreign key. The second type is non-
rational which is JSON formatted data which is provided to us by Google (Firebase Real-time
Database)

Figure 48. Database Table

61
4.6. User interface design

4.6.1. screen mockups for major use cases

Figure 49. Register

Figure 50. Login

62
Figure 51. Timeline

Figure 52. Chat

63
Figure 53. Friends

Figure 54. Instructor Rate

64
Figure 55. Bookshelf

Figure 56. Course Bank

65
Figure 57. Work

66
4.6.2. Navigation design of the UI

Figure 58. Registration

In this step the user wants to register in the app, he will click on “signup here” and the registration page will show up.

Figure 59. Verification Email

After the user signup, a Verification Email will be sent into his QU mail, after clicking on the link the email will be verified and
now, he can log in.

67
Figure 60. Logging

After the user verify his email, he can log in now into QUC

Figure 61. Viewing User profile


Ether by selecting User profile or by clicking on the user name/email to view the profile

68
Figure 62. User Profile – Editing user info

Figure 63. Timeline – View other users profile

If the user clicks on someone name, their profile will show up, they can add them as a friend or chat with them directly

69
Figure 64. Timeline – Adding a post

The first page that the user stat with is the Timeline he can post anything whether it a text, photo, or an Emoji.

Figure 65. Viewing Timeline

To get back to the Timeline if the user went to another section, just by clicking the side menu logo then Home

70
Figure 66. Timeline – moving to the newest post

The user can view the top post just by clicking on the up arrow.

Figure 67. Timeline – Adding a react

The user can react with other users post by clicking the like button, if he changed his mind a clicked the dislike button, the like
button will fade and the dislike button with glow in red.

71
Figure 68. Timeline – Adding a comment

Figure 69. Timeline – Delete a comment

To delete a comment, the user swipe to left on his comment.

72
Figure 70. Timeline – a Post

To delete a post, the user swipe to left on his post

Figure 71. Chat – Adding a new chat

73
Figure 72. Chat – Adding a new chat 2nd way

The chat tap has all the previous chats, if the user wants to add a new chat, they click on the friend Icon, select one of their
friends to chat with, they didn’t chat with him previously or else they could find him in the chat section.

Figure 73. Chat – Deleting chat

To delete a chat, the user swipe to left on the chat.

74
Figure 74. Friends – Adding a new friend

To add a friend the user click on the add icon, if he own him on the front of the list he can add him immediately, else he can
search for him by his ID or his name.

Figure 75. Friends – Deleting a friend

To delete a post, the user swipe to left on his post

75
Figure 76. Viewing Book Shelf

The user clicks on the side menu button, Bookshelf is under the Materials section.

Figure 77. Bookshelf – Adding a book

76
Figure 78. Book Shelf – Editing a book
To Edit a book, the user swipe to left on his book.

Figure 79. Book Shelf – Deleting a book

To delete a book, the user swipe to left on his book.

77
Figure 80. Book Shelf – claiming a book

If the user wants to claim a book, first he clicks on it, a confirmation dialogue will appear, an auto generated text with the book
name will be sent from the requester(saeed) to the (Abdullatif).

Figure 81. Viewing Course Bank


The user clicks on the side menu button, Course Bank is under the Materials section.

78
Figure 82. Course Bank – Adding materials

79
Figure 83. Viewing Work

The user clicks on the side menu button, Work is under the Materials section.

Figure 84. Work – Adding a work

When adding a work the user must specify course name, work title, description and a due date for the work to be done.

80
Figure 85. Viewing Instructors Rate

The user clicks on the side menu button, Instructors Rate is under the Social section

Figure 86. Instructors Rate – View an instructor 1st way

The first way to get to an instructor is by clicking All Instructor tap, then typing his name in the search bar.

81
Figure 87. Instructors Rate – View an instructor 2nd way

If the user knows in which department and college the instructor is, he can access it directly.

Figure 88. instructors Rate – Rating an Instructor


To add a rate the user can either click on the add icon or by clicking on the area that is between the Instructor name and Avg
rate, next the user must enter the subject that he’s taken or took it before with him, add feedback, set the number of stars he
wants to give and then he click on ADD to add his rat to the list.

82
Figure 89. Login out

Simply click on logout and the user will be back to the login page.

83
4.6.3. The novelty of the User Interface Design

The application was designed with ease of use and user experience in mind, from colors to
font selection and size of every element in the application, it was An important objective for the
team to make the design clear for everyone, especially those with eyesight impairment.

The Design also paid tribute to our University and its community by the color scheme of the
application and also, by designing the application around the facilities and services the University
offers to its students, such as making sure all the university’s majors and departments are well
presented and well organized for ease of access to the students according to the same sorting of the
university itself.

4.7. Design patterns

As we mentioned that we have used MVVM which stands for Model View ViewModel, we
have choose this design pattern specifically because it’s suitable for Android platform, because it
knows how to deal with Android lifecycles, for example when the user switches between the opened
application onPause() method is called which we have to handle the current user position and
shown data and when the user wants to return to our application onResume() method is called
which we have to retrieve the user’s position and the data which was shown to him. But, when we
use MVVM model we don’t care about those kinds of stuff, it’s designed to do all of this, so we only
have to design use it and forget about managing the lifecycle tricks.

Adapter design pattern, we have used adapter design for around 14 class in order to display
data in rows which is the recycler view in Android, the role of the adapter is to take a List of data and
a layout and it inflates the data in rows for each item in the given list into a different row and bind
each row to a specific item in the list, we are using it for example to display a list of posts, books,
work. Etc.

Singleton design pattern, we have used a singleton for 10 classes in order to make sure that
there is only 1 instance of the repository in the whole application and avoid re-creating it multiple
times for the same purpose. For instance, we have used it in users Repo, courses Repo. Etc.

84
4.8. Hardware/software used

Table 2.Hardware/software used

Hardware/Software Image Description Justification


Android studio Android Studio is an It helps us to develop an
Android IDE android app

Android emulator It runs as an Android It helps us to test/debug our


device on PC application

Cloud database it gives us it makes it easier to get


Firebase Real-time database free limited usage notified in case if the data
changed, the most suitable
database for real-time
chatting since our application
will include chatting section

Firebase cloud storage Cloud storage services Stores the course materials
files and users profile picture
in case if we allowed this
option to be included in our
application.

Room A library that helps us to Room is a library that allows


deal with SQL queries us to use a SQLite database
which is much easier in easily (local database) in order
android. to keep the data available for
the user always, not acquiring
to retrieve it from the cloud.
Which makes the user
experience great.

85
Open source apps Open source applications We may have a look at how
from GitHub and similar open source applications are
platforms made in order to help us to
get some solution to a specific
problem.

Visual Paradigm (UML) Visual Paradigm (VP-UML) Help to design the class
is a UML CASE Tool diagram, use case, activity
supporting UML 2 diagram, sequence diagram

Android Phone We use multiple To test the application on


smartphones running different hardware running
Android OS, we used up to Android OS
40 phones with multiple
manufactures like
Samsung, Google, Hawaii,
HTC, Xiaomi, and Nokia

Android tablet Android tablet from Used to test the app in wide
Samsung with good screens hardware
hardware specification
Two MacBook pro 13- and 15- Modern MacBook pro one Used to run android studio
inch laptops 2016-year model and the and to test the code on
second 2014-year model

PC build not bought tower used to run android studio


style pc and as a test server
sometimes

86
ASUS laptop ASUS laptop with the Used to test the app and to
poor-good specs identify any problems

5. Implementation

Table 3. Tools and Framework used

Name Usage Logo (if available)


Android Studio Build, and debug our mobile app code

Firebase Auth Authenticate the users so we don’t have


to store their passwords and we avoid
making the user’s data in danger of the
known and unknown attacks.
Firebase Real-time database Cloud database, to save the users data
and sync the local database from the
cloud database
Firebase Storage Cloud storage which saves the images of
the users, posts images. etc. in order to
retrieve/download them when needed.
Firebase Crashlytics Monitor the application crashes, which
gives us the ability to monitor the
application bugs remotely without any
report from the users. (For Quality
Assurance)
Firebase Performance The performance service it keeps
monitoring the application in case if
there any performance issue they send
us a notification alerting us “Hey there is
an issue watch out” To keep our
application usable without any
performance issues
Firebase Dashboard This gives us the ability to monitor our
application user’s behavior how much
time they spend using the application at
which page they take a longer time,
where are the users came from and
other useful graphs

87
glide-transformations:2.0.1 We have used this library to make the
user’s image circle and read their image
from firebase storage URL or bitmap the
suitable way depending on the situation
com.squareup.picasso:Picasso:2.5.2 We have used the Picasso library in order
to load and cache images locally
sometimes

android.arch.lifecycle:extensions:1.1.1 We have used android architecture


lifecycle which is giving us the advantage
of using ViewModel

arch.persistence.room:Runtime:1.1.1 We have used Room library in order to


facilitate dealing with SQLite database in
Android and make the relation between
the table easier and faster, in addition to
returning LiveData which we are
observing in the views
android.support:recycleview-v7:28.0.0 We have used recycle view in order to
show the data in rows
org.jsoup:jsoup:1.11.3 We have used Jsoup library in order to
read and extract data from the HTML
pages, for example, we have used it in
reading the instructors from Qatar
University website
com.google.firebase:firebase-perf:16.2.5 Performance library by firebase as we
mentioned
com.crashlytics.sdk.android:crashlytics:2.9 Crashlytics library by firebase as we
.9 mentioned
gr.escsoft.michaelprimez.searchablespinn We have used this library to implement
er:SearchableSpinner:1.0.9 the searchable spinner of the courses list
in order to make the life easier for the
users to search for courses
com.android.support:design:28.0.0 Library for material design SDK 28, which
is used in order to beautify the interface
and make some nice effects on the fields
Nova library We have used Nova library to get the
emojis and the look of the IOS emoji
which is better than the android default
ones

88
5.2. Challenges

We have many challenges finishing this project it was tough on all of us, especially for me as
Alaaeldin, I have started to work since December 2018, but unfortunately my laptop logic board had
a failure and I didn’t have another choice rather than repairing the laptop, I was shocked when they
told me that the data will be lost because the hard disk was built in and they can’t recover the data
since they don’t know why the logic board was dead. But this didn’t stop me to continue working on
the project and I decided to buy a PC in order to keep working and I had to work again on the lost
parts which I didn’t backup. Also, Islam’s hard disk had a failure and he stopped working for a while,
but he kept solving the issues.

In the implementation we had some difficulties since we didn’t learn any of the used
technique in the University so had to spend so much time to learn the technique and how things are
really done at the real field. Also faced so many bugs from Android studio some of them was known
according to people who have faced them on Stack Overflow, and some of them were unknown and
I had to figure the solution myself. Also, finding some libraries that fit your need isn’t that easy
because you have to read the API and doc information in order to know how to apply it on your
project and edit it to fit your needs.

89
6. Testing

Usability testing: what is it and how we did it?

Usability testing is one of the most important ways to test the usability of the UI for software
products.
The benefit of this technique is that it tests the user’s experience and their clear opinion of the
product rather than general first impressions.
Usability testing decreases the dangers of creating a buggy product.
Which saves money, time and effort and offers the ease of fixing bugs and errors early while it is still
easy and fixable.

Testing is an iterative process, which results in the need for repetition of the process until the design
provides the user with the desired quality user experience.

6.1. Test Plan Creation:

Creation of the test plan is essential for a more organized testing process, which can be summarized
in the following steps:

90
1. Defining the scope of work
The areas needed to be tested must be specified clearly. By listing all of them and then refining. They
shouldn’t be more than 12 tasks to test.

Table 4. area of the test


Areas to be tested Test
Register – Login Task 1: Register in the app using your QU
email.
Editing profile Task 2: Edit your profile, add your major,
minor and a small description about
yourself.
Adding a Rate in two different ways Task 3: Rate Dr. Saleh Alhazbi (Rate
him even if you didn't take with him)
he is in the computer science
department, college of engineering, you
have taken Data structure with him.
Task 4: Rate Dr.Riyadh Al-
Raoush anonymously (Rate him even if
you didn't take with him), you have
taken numerical method with him.
viewing Timeline Task 5: Write something about your day
Posting a post, comment in the university on your timeline and
Adding a Like, Dislike Like and comment on someone's post.
Viewing Others profile Task 6: View Alaaeldin profile, add him
Adding a Friend as your friend and chat with him (say
Hi).
Adding a Book Task 7: Add one of the books in front of
you to the bookshelf and set a price for
it.
Adding a work Task 8: Add work with the following
description: Need help in a project
for (choose any subject name), require
good math and programming skills.
Viewing Course Bank Task 9: search for any previous
Searching in course Bank material for programming
concept course in computer science, in
our app.
Getting some feedback from the test what do you think about the interface
subjects in general? and What type of features
would you like to see in the future?

91
2. Recruiting Testers:

Recruiting testers is another essential step of the testing phase. Which can be performed in many
ways, such as email, post ads on social media and many other advertisement ways.

Also, it is important to keep in mind the demographics of the users being recruited, which is
important to be able to understand the data acquired from their test results.

How many users should be recruited?

5 users per testing segment were used by famous computer scientists in the year of 1993, but the
latest theory was by Laurie Faulker on 2004, which is what we adopted, which suggests at least 15
users per testing segment.

But we needed more so we end up inviting more that 95+ student Via email, 80 students have shown
to the test.

Figure 90. Invitation email

92
3. Identify objectives

Identifying what is needed to be accomplished with this test and what is required to demonstrate to
the stakeholders or the examiners.

Objectives of the test:

1. To acquire information from the users’ experience of the app.

2. Learn from the users if the application met objectives or not.

3. Check whether the application matches the real world needs.

4. Check whether the user is able to complete the required task in the test.

5. Get user reactions and feedback for further improvements.

The test result is the most important thing to be discussed, further analysis of the result is needed to
identify the most critical part in the interface the users like or dislike.

6.2. Facilitate the test

Good Qualities of a proper facilitator:

1. Asking the testers to leave thoughts and feelings out of their test when interacting with the
product

2. Keeping the test environment as close to real life as possible.

3. Taking notes from the user's way of testing and comments.

4. Recording the session to study it afterward.

5. To never lead the user through the tasks.

6. Never jump in conclusions while the testing sessions are still going.

7. It’s about how the user perceives the solution and not how what the creators think of their
product.

In the test the aim is:

1. Gather quantitative-type information such as time taken to perform the tasks and success and
failure in performing the tasks.

2. Collect qualitative-type information such as user-stress responses, users’ satisfaction, perceived


effort or difficulty in completing the tasks.

93
Facilitating the test

Figure 91 people attending the test

Figure 92.Alaaeldin interacting with students (1)

94
Figure 93.Students at testing (1)

Figure 94. Students at testing (2)

95
Figure 95. Students at testing (2)

Figure 96. Students at testing (3)

96
Figure 97. Students at testing (4)

Figure 98. Abdullatif and Alaaeldin interacting with students (1)

97
Figure 99. Abdullatif watching closely one of the students

Figure 100. Alaaeldin writing notes

98
Figure 101. Dr. Zeyad was asking about the test.

Figure 102. Saeed interacting with students

99
What kind of prototype should be tested?

A wireframe gives the client(user) a clear idea of how the platform might look and feel according to
the design and development teams.

Figure 103.Test Prototype

6.3. Analyzing case data


After finishing the testing sessions, it’s time to analyze the data collected.
There’s no specific rule on how to analyze the test data but having all the information in a place to
find and compare trends that emerge, helps in finding the issues and jumping to solutions.

6.4. Creating the test report

A test report should be created every time a test is performed by a user and must be stored with the
other testing data of the product, which should be included in the following sections:

1. Background summary

In the testing phase, the user interface and the functionalities of the application were tested one
by one, to find out real-users feelings, opinions, and feedback about the user interface and
experience of the application, and gather their comments to further improve the design and
functionality to improve the overall experience.

The whole project’s team participated in the testing phase, by observing, assisting and managing
the event of testing that took place in Computer Science’s senior room over two full days, which
resulted in a huge amount of feedback and comments that helped to make the application better
and more friendly.

100
2. Methodology

The testing sessions were made on two separate days, that was decided and planned by the team
on Monday and Wednesday to fit the free time of all the students of the university.

The test was organized to have 4 to 5 students testing At the same time on different computers
that carry the surveys ready for the students.

There were two types of surveys, a survey for Android users and one for IOS users, to be able to
separate the data and feedback of the different users of the two different operating systems.

Every student was being supervised by one of the project’s team, to make sure the students had
no issues with understanding the given tasks and had a smooth test.

Table 5.Tasks that were tested and Scenarios:

Areas to be tested Test


Register – Login Task 1: Register in the app using your QU
email.
Editing profile Task 2: Edit your profile, add your major,
minor and a small description about
yourself.
Adding a Rate in two different ways Task 3: Rate Dr. Saleh Alhazbi (Rate
him even if you didn't take with him)
he is in the computer science
department, college of engineering, you
have taken Data structure with him.
Task 4: Rate Dr.Riyadh Al-
Raoush anonymously (Rate him even if
you didn't take with him), you have
taken numerical method with him.
viewing Timeline Task 5: Write something about your day
Posting a post, comment in the university on your timeline and
Adding a Like, Dislike Like and comment on someone's post.
Viewing Others profile Task 6: View Alaaeldin profile, add him
Adding a Friend as your friend and chat with him (say
Hi).
Adding a Book Task 7: Add one of the books in front of
you to the bookshelf and set a price for
it.
Adding a work Task 8: Add work with the following
description: Need help in a project
for (choose any subject name), require
good math and programming skills.
Viewing Course Bank Task 9: search for any previous
Searching in course Bank material for programming

101
concept course in computer science, in
our app.
Getting some feedback from the test what do you think about the interface
subjects in general? and What type of features
would you like to see in the future?

3. Test results

The metrics that were chosen to be tested by the users were:

- User Interface Usability:

The User Interface had positive feedback from the testers, with minor beneficial comments
that helped us improve on our color choices, font size, and spacing between objects on the
screen

- User Experience:

The User Experience wasn’t perfect at the first group of testers on the first day, users
reported some issues with the fluidity of the application and how clear are the buttons and
functionalities, which were also beneficial in our work on improving the application further
after the first day and also after the second day of testing.

- Idea Evaluation:

The idea got a huge liking and praising by the testers, which was because that it solved a lot
of issues for students in finding a way to communicate and better participate within their
community other than the many social media pages and different shared databases used by
the students to share materials.

- Functionalities Usability and Benefits for the Community:

The functionalities that are included in the application got excellent feedback right away
from our various testers, praising the variety and number of useful benefits the apps brings
to the community.

- Bugs and Errors:

The users were instructed clearly before starting their tests to provide clear and honest
feedback and comments on any bug, error or crash that they face without any hesitation,
which helped us a lot to spot the various errors in the application, which we then fixed
immediately after the first day of testing, and observed the new testers on the second day
when they used the same features that were previously reported to have any sort of error to
see and observe our debugging and improvements on the application.

102
Table 6. Test results – Android

103
104
105
106
107
108
Table 7. some of the comments from android users (related to Q10)

109
Table 8. Test results – iOS

110
111
112
113
114
115
Figure 104. some of the comments from iOS users (related to Q10)

116
Table 9.Testing Non-functional requirements

Non-functional requirements Test evidence

Performance

We are monitoring the performance using


firebase service to make sure that we have no
performance issues and it also monitors the
response rate for each version. As we can see
from in the photo each update we are
decreasing the delay time.
Scalability

We have chosen Pay as you go, so we are sure


that our application is scalable.
Availability Firebase service is offered and runs on Google
which assures us 24/7 running service.

Modifiability The code designed as the following


Model: Object classes that we need
View: interface which interacts with the
ViewModel
ViewModel: which is giving back the result to
View from Repository
Repository: Data layer

Which gives us the ability to easily modify and


reuse any of the above layers.

117
Maintainability Crashlytics

We are monitoring the bugs from Firebase


Crashlytics service which helps us to maintain
our application bugs/crashes without users
feedback
Usability We have made the test to see how our
application is useable

4. Findings and recommendations

The testing helped us find the features that were most important to the users and the issues they
had with the user interface in the beginning.

Also, we found out that the IOS users had the most issues with the User Interface due to them being
used to the different UI of the IOS.

We then concluded that the most important recommendation by most users is to have a different
version of the application to be available on the IOS platform.

118
7. Impact of your project solution
The project as a whole affects the community on three different levels: individually, organizationally
and the society as a whole.

- Impacts on the individual:

The project allows the individual to create group study chat rooms through the
chatting system in the mobile app, which helps every student to be able to get help.
The application also helps the student to contact the instructors directly through the
chatting system.

All the features of the application help the individual to be more connected to the
community by all the services provided to him/her, which is the main goal of the application.

- The impact on organizations:

The application also offers many services that help the organization part of the
community of the university, by being able to socialize and communicate with the students
to further help in the education process within the community.

Organization of the university can benefit from the work service offered in the app, to be
able to offer part-time tasks for students and hire them temporarily for short-time based tasks.

- The impact on society:

The application makes the society more connected, by creating an environment that
will contain the QU Community and gather it in one platform.

Helps the society of the university to discuss the things that matter to the community as a
whole on the campus.

119
8. Conclusion
The project turned out better than we expected, the discussed objectives and goals were met in
a high degree.

We achieved a huge success that showed in our testing phase when we had mostly positive feedback
from our users, and huge adoption by the student’s community, even those who didn’t attend the
testing due to the word of mouth spreading between the community.

 Strengths:

3. The application’s User Interface and Usability met users’ expectations and gained their
praising.

4. The features offered by the app is much needed within the community of Qatar
University.

5. The instant availability of the app officially on Google Play Store, made it accessible to all
the community, which helped in gaining more feedback from the students.

 Shortcomings

We faced some issues due to short of resources and time in two features within the
application, which we hoped to be able to release in our first release but decide to keep it
for future work.

 Key Contribution and Novelty of the Solution:

The creation of the Application was a result of the contribution of all the team
members and their understanding of each one’s weaknesses and strengths and adapting
while helping each other to achieve the desired objectives.

The application has a huge novelty, by being created for the sole purpose of improving the quality of
life for the future generations of the massive community of Qatar University.

120
9. Future work
1- Some of the core areas of improvement include the implementation of an IOS and web
application.

2- Improve the general performers of the app, making it faster to load, delete, updated faster.

3- Enabling two-factor authentication, whether it’s biometrics like the fingerprint or the Retina,
or by sending a code to users’ phone or email in case of suspicious logging or he/she could
enable it for more secure access.

4- Assuring that the server Is reliable, robust and maintains high performance, by using a server
in Qatar University or by acquiring a faster processing server.

5- Adding more services in the application will be more helpful, for instance, an announcement
section for QU events and news.

6- An interactive outdoor/indoor map about QU campus can be developed, that will show the
user her/his location inside QU campus, will have all the building and room locations exactly,
and it could use QU WIFI service for more accurate determination of location of these
facilities, also we could let the user share their indoor/outdoor location with their friends in
case they want to meet together in one of the unnamed locations in QU by simply sharing
their location.

7- Developing an app for smartwatches too, for ease of access, since it is becoming more used
in the community.

8- Adding verbal service in the application to serve the special needs users, to be able to
engage and benefit from the features our app offers.

9- Adding a tour guide for non-QU users, a visitor could download the app, the app can guide
the visitor within the QU campus to every destination they would like to visit, also we could
provide high definition videos and images for every building in QU, for example they may
click on the BCR building on the map, a set of images and a short video would be displayed
describing the major parts of the chosen building or facility.

10- Adding a function for study plans, were student select their study plan, then they select the
subject they are taking right now and the ones they finished and according to their selection,
the study plan will be updated semester by semester, to make sure that the student is in the
right track, which will also save time for the academic advisors, also it will have all the major
electives and the rest of the Degree requirements for all majors and minors in Qatar
University.

121
11- After the student chooses their study plan, they will enter the current subjects that they are
taking with the section number, based on that whenever the final exam schedule comes on,
the student will be notified with his Final exams dates/time and set a reminder for them in
his QUC calendar.
Having a calendar in the app that holds all the important dates for the user, like final exam,
an event they would want to attend, also we could retrieve data from the user’s QU mail, so
whenever there is an assignment, the app will read the email and set a reminder for the
user, whenever the date is soon, the app will notify the user that there is something to be
delivered.

12- List of taken courses by the student could be used to help the app identify what courses that
the user is registered in, so whenever there is something new posted related to one the
subject that is registered by the user, the app will notify the user about it.

13- Group chat, subject chat, we could group set of users based on what they are taking in the
current semester, also it will help the different clubs in the university to contact with each
other, and get them to get help even in classes or groups that don’t have their friends in.

14- Specific timeline, currently we have what we call a global timeline where if a user posts
something the rest will be able to see it, even if they weren’t friends, in the next update we
plan to make a Specific timeline for every user where he will be able to see his friends’ posts
only if he chooses to, or in case he was in a club he could also switch to the club’s timeline.

15- Whenever there is a change in QU’s policies or academic dates, for example, they changed
the discount catalog and add a new one, we could add it to our app for ease of access and
notifying the users about it, or wherever there is something new added to the university we
could implement it right away into our app.

16- Adding a lost and found section, so when someone finds anything like a phone or watch he
could take a picture of it and post it there to be seen faster and easier.

17- Making the user interface more interactive, simpler and easier to use is one of the most
important updates we are looking forward to. To determine what the users want, we will
perform further testing and surveys. We will also consult with experts when updating the
app design for better user experience and more usable interface after establishing a balance
between ease of use and functionality.

18- Sharing the app with the next generation of CS students so that the future seniors can take
care of the app and manage it and improve it for the sake of the other generations in the
Qatar University Community.

122
10. Student reflections

Abdullatif

In today’s work culture and dynamic environment, educational institutions and organizations
require students and employees to work together in groups at certain tolerant and coordinative
levels, thus proving “experience of working in group or teams”, which I come within this course and
its huge but simple project.

The first challenge faced after group formation was how to organize the work to complete the
task on time. At the first stage, we divided the task into smaller pieces and assign these parts to each
team member. Developing a timeline is the best way to complete the task on time, so we decided
for each task when it should be completed. Now all team members know who will do what, in what
format and by when. So, we could deliver the perfect project. In senior 1 we did very well because
we were following the timeline, in senior 2 we ran into a couple of problems, but here we are at the
end of senior 2.

As a student I have learned a lot from this project:

1- Allowing us, students with different background to bring their special knowledge,
experience, or skills to a project, and to explain their orientation to others

2- Giving us a chance to teach others


3- Giving us a structured experience so they can practice skills applicable to professional
situations

Alaaeldin Said

About my reflection, well it was a hard experience, had to learn new kind of stuff at a limited
time, also my laptop failed and my data was lost, I had to pay around 2.4k QAR and waited for 28
days because the logic board took time to arrive from Apple store. In addition to the android
platform, it has some wired bugs that show up and disappear at random times, had to manage all of
that in that period. Furthermore, our application has so many screens, functionalities which took
time to make sure that everything is okay, and the app is really usable and can be published. For the
group, it was quite okay because everyone was busy during the semester and had other stuff to do,
but at the end when the submission date becomes near, we put our efforts in order to finish
everything on time no matter what happens.

123
Saeed Ahmad Al-Rashdi

During the course of the project, I have had the opportunity to learn a lot by being part of
creating this solution. this project has taught me the importance of having functional solutions that
can make the campus life more easy for the university members. Some of the new skills that I have
learned include coding skills. I have also enhanced our skills in mobile development through research
and practice throughout the project. I have also perfected our knowledge about the different layers
of communication and exactly how the different layers communicate with each other. These skills
will be very beneficial in our careers. Creating this solution has helped us appreciate teamwork. I was
not as good while working as a team before this project. However, I appreciate that projects are
much more easy, better, and sustainable when they involve a team. It was, an opportunity to create
friends. Teamwork has also built our self-confidence. I am now confident enough to stand before
people and present our argument on a subject. In conclusion, this project is a small gift for the
university as give back to the university that we going to graduate from. While making life easy for
other students, and instructors to not facing the same difficulty that we have faced with our
instructors.

Islam Ibrahim

It was a rough time, but very enlighting about my own strengths and definitly also my
shortcomings, I’ve also learned more about how to adapt to each of the team’s strengths and how to
collaborate to better achieve our goals with our shortcomings in mind.

The team was very cooperative and understanding, each and everyone got involved as much as they
can, and the understanding between the members was remarkable, I can’t thank everyone in the
team enough for their efforts, without Alaa, Abdullatif and Saeed I wouldn’t have been here at the
end of the semester finishing the report and happily proud to call this my senior project that I’m a
part of, and proudly stand and present infront of everyone.

124
References

[1] Burton, M., & Felker, D. (2015). Android App Development For Dummies. John Wiley
& Sons.
[2] Dalmasso, I., Datta, S. K., Bonnet, C., & Nikaein, N. (2013, July). The survey,
comparison and evaluation of cross-platform mobile application development tools.
In Wireless Communications and Mobile Computing Conference (IWCMC), 2013 9th
International (pp. 323-328). IEEE.
[3] Stonehem, B. (2016). Google Android Firebase: Learning the Basics (Vol. 1). First Rank
Publishing.
[4] Graham, W. (2008). Facebook API developers guide. Infobase Publishing.
[5] Charland, A., & Leroux, B. (2011). Mobile application development: web vs.
native. Queue, 9(4), 20.
[6] Greer, D., & Hamon, Y. (2011). Agile software development. Software: Practice and
Experience, 41(9), 943-944.
[7] Ambler, S. W. (2010). Agile Software Development. Encyclopedia of Software
Engineering, 1(1), 29-46.
[8] Medvidovic, N., & Taylor, R. N. (2010, May). Software architecture: foundations,
theory, and practice. In Proceedings of the 32nd ACM/IEEE InternationalConference
on Software Engineering-Volume 2 (pp. 471-472). ACM.
[9] Hall, G. (2011). Pro WPF and Silverlight MVVM: effective application development
with Model-View-ViewModel. Apress.

[10] https://developers.facebook.com/docs/

125
Appendix A – Project Plan
A.1. Project milestones

1- Requirement analysis

In this milestone we developed most of the design aspects for our app’s class
diagram, activity diagrams, sequence diagrams, database table and how would the
prototype would look like, we also redesigned the use case diagram and the use case
specification for all the functional requirements. We investigated more about non-functional
requirements and described each of them. This milestone is essential but it’s because all the
upcoming milestones are base on it. This milestone starts to form the Functional
requirements and nonfunctional requirements sections until the Hardware/software to be
used.

2- Implementation

In this milestone we work on the development of the app, maintaining and testing it regularly
as we advance through the requirements, the coding actually starts from the end of senior one
but as we go, we discover that we should be doing the design first instead of starting coding, as
we go through the design phase a lot of modification went into the app, causing few drastic
changes in some cases. This milestone is related to the implantation and user interface design.

3- Testing

No app should be in people’s phones before testing, this is why we dedicated ourselves to test
the app regularly to make sure there are no bugs and that the UI is as clear and usable as possible,
besides our testing, we made sure to test the app on real users to make sure the UI is good and
accepted by most of our targeted users base, This milestone is related to testing.

4- Documentation

In this milestone, we are making sure that the rest of the report is ready for submission.
Writing our reflection about the project, brainstorming what features we are looking forward to
adding to the application in the near future, the impact of our project on QU and on ourselves as
part of the community, and finally checking that everything is written in a good understandable
clear manner.

5- Presentation and demo

Making sure that the app is ready for submission, preparing the poster, website, short video
and the presentation with the demo.

126
A.2. Project timeline

Figure 105.Project timeline

127
A.3. Anticipated risks

Table 10.anticipation Risk

Risk Description Approach to minimize


Poor time management The team doesn’t plan ahead of The team should meet and plan
time during the development their time ahead to meet the
process. deadline of each phase.
Poor team cohesion The team doesn’t work together The team should always gather and
effectively and responsibly work, discussing and addressing
potential problems together will
eventually improve cohesion.
knowledge Not all team member as good as The team shouldn’t stop Learning
expected in android development, and try to improve their knowledge
only two have previous knowledge in android development as much as
and one of them has superior possible
knowledge
Errors Android studio errors are hard to Trying to find help in other places
solve sometimes due to lack of whether by asking android
knowledge and practice, even professional or by posting the error
google can’t help sometimes. in pro developer’s websites such as
stack overflow
Lack of resources QU won’t offer an API to be used Collect data manually from QU
to recover all courses and website, banner or any other
instructors form their database. resource related to the university.
Technical challenges Related to our PCs, some of our pcs Using the rest of what is working in
aren’t powerful enough to run an the senior room pcs to work on,
android studio, crashes happened even if they are poor in
from time to time. specifications as well.
Non-technical Unavailability of one or more of Another student should take the
team members due to unexpected task to follow the timeline
reason and issues specified for every task.
Software Android studio can cause some Trying to minimize the losses and
unexpected problems, it’s even the making sure to backup all
cause of replacing a MacBook pro’s important data regularly to prevent
motherboard and causing multiple loss of progress.
crashes on other devices that run
Windows OS

128
Other Appendices
1- Users testing, do users need my app.
At the beginning of the semester, we asked the university student to answer a short
survey about our app, the aim of this survey is to identify if QU students really need
an app like the one, we are developing. 100 students have answered this survey.
survey result:

Figure 106.First question result

129
Figure 107.Second question result

Figure 108.Third question result

130
Figure 109. Fourth question result

The aim of the first four question is to get some general idea about who answered this survey, what
we concluded is that 53% of who answered the survey were from college of engineering, almost
more than half were males 52%, 92% were at a young age, most of them were at 3rd or 4th academic
year.

131
Figure 110.Fifth question result

As shown most, the student did know about the official app of the university.

Figure 111.Sixth question result

Most who the app said that is good.

132
Figure 112.Seventh question result

In this question, we want to know what interest the student most in a semester

Figure 113. Eighth question result

Most of the student has shown a positive response to having an app that holds all the features we
mentioned

133
Figure 114.ninth question result

most of the student would like to patriciate in our app

To sum up, most of the students have shown a positive response that they want app like the one we
are developing

134
135
136
137
138

Das könnte Ihnen auch gefallen