Beruflich Dokumente
Kultur Dokumente
College of Engineering
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.
Signature:
Signature:
Signature:
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.
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:
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
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.
14
2. HarvardUniversity
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.
15
3. Roane State Community College (Brightspace Pulse)
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
16
4. Aims Community College (Campus Connect)
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!
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
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
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
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]
20
3.2. Functional requirements
21
Table 1. Use cases summary
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
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
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.
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
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
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
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:
2. Marketing API:
You may benefit by utilizing the Marketing API in the event that you
coordinate it within one of these profiles:
3. Pages API
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.
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:
Facebook Platform:
30
1. Boston College:
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.
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
- 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.
- 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.
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.
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
Both Apple and Google offer the developers their very own development kits, interface
components, and SDKs.
1. Performance:
- With native mobile application development, the application is specifically made and
tailored for a particular operating system.
- 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.
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]
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]
- 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]
37
4.3. Structural model
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
39
Figure 15. Login activity diagram
40
Figure 17. Apply to the work activity diagram
41
Figure 19. Remove work activity diagram
42
Figure 21. Remove 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 27. View friend’s activity diagram
47
Figure 29. View chat activity diagram
48
Figure 31. Add comment activity diagram
49
Figure 33. Add material activity diagram
50
Figure 34. Add post activity diagram
51
Figure 36. Approve adding material activity diagram
52
Figure 38. Remove friend’s activity diagram
53
1.1.1.Design Sequence Diagrams
54
Figure 40. Login Sequence Diagram
55
Figure 41. View Book Shelf 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
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)
61
4.6. User interface design
62
Figure 51. Timeline
63
Figure 53. Friends
64
Figure 55. Bookshelf
65
Figure 57. Work
66
4.6.2. Navigation design of the UI
In this step the user wants to register in the app, he will click on “signup here” and the registration page will show up.
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
68
Figure 62. User Profile – Editing user info
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.
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.
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
72
Figure 70. Timeline – a Post
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.
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.
75
Figure 76. Viewing Book Shelf
The user clicks on the side menu button, Bookshelf is under the Materials section.
76
Figure 78. Book Shelf – Editing a book
To Edit 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).
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.
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
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.
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.
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
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.
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 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
86
ASUS laptop ASUS laptop with the Used to test the app and to
poor-good specs identify any problems
5. Implementation
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
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 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.
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.
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.
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.
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.
4. Check whether the user is able to complete the required task in the test.
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.
1. Asking the testers to leave thoughts and feelings out of their test when interacting with the
product
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.
1. Gather quantitative-type information such as time taken to perform the tasks and success and
failure in performing the tasks.
93
Facilitating the test
94
Figure 93.Students at testing (1)
95
Figure 95. Students at testing (2)
96
Figure 97. Students at testing (4)
97
Figure 99. Abdullatif watching closely one of the students
98
Figure 101. Dr. Zeyad was asking about the test.
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.
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.
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 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.
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.
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
Performance
117
Maintainability Crashlytics
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.
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 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 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.
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.
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
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.
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
127
A.3. Anticipated risks
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:
129
Figure 107.Second 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.
132
Figure 112.Seventh question result
In this question, we want to know what interest the student most in a semester
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
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