CSF 35204: FINAL YEAR PROJECT 2 REPORT TITLE: I-SURAU AR … · 2020. 7. 18. · Besut including...

112
CSF 35204: FINAL YEAR PROJECT 2 REPORT TITLE: I-SURAU AR-RAUDHAH NOTIFICATION SYSTEM MUHAMMAD IKMAL BIN ABDULLAH BACHELOR OF COMPUTER SCIENCE (SOFTWARE DEVELOPMENT) WITH HONOURS FACULTY OF INFORMATICS AND COMPUTING UNIVERSITI SULTAN ZAINAL ABIDIN 2019/2020

Transcript of CSF 35204: FINAL YEAR PROJECT 2 REPORT TITLE: I-SURAU AR … · 2020. 7. 18. · Besut including...

  • CSF 35204: FINAL YEAR PROJECT 2 REPORT

    TITLE:

    I-SURAU AR-RAUDHAH NOTIFICATION SYSTEM

    MUHAMMAD IKMAL BIN ABDULLAH

    BACHELOR OF COMPUTER SCIENCE

    (SOFTWARE DEVELOPMENT) WITH HONOURS

    FACULTY OF INFORMATICS AND COMPUTING

    UNIVERSITI SULTAN ZAINAL ABIDIN

    2019/2020

  • i

    DECLARATION

    I hereby declare that this report is based on my original work except for

    quotations and citations, which have been duly acknowledged. I also declare that it has

    not been previously or concurrently submitted for any other degree at Universiti Sultan

    Zainal Abidin or other institutions

    ________________________________

    Name : ..................................................

    Date : ..................................................

  • ii

    ENDORSEMENT

    This is to confirm that:

    The research conducted and the writing of this report was under my supervisor.

    ________________________________

    Name : ..................................................

    Date : ..................................................

  • iii

    DEDICATION

    First and all, I express my gratitude to Allah SWT for the health and strength

    that He gave to His servant to complete this final year project, I-Surau Ar-Raudhah

    Notification System. Peace and blessings be upon to the Prophet Muhammad SAW.

    This study is wholeheartedly dedicated to my beloved parents, who have been

    my source of inspiration and strength when we thought of giving up, who continually

    provide their moral, spiritual, emotional, and financial support.

    To my supervisor, Dr. Mumtazimah Binti Mohamad for his advices, guidance’s

    and support toward this project. Also, thanks to all the panels and lecturers for their

    attention and opinions on my project.

    And lastly to my friends who shared their words of advice and encouragement

    to finish this project.

  • iv

    ABSTRACT

    In the today’s advancing world of technology, Mobile Applications are rapidly

    growing segment of global mobile market. Mobile applications are developing at a

    meteor space to give user a rich and fast user experience.

    Over the years, notification on notice board has been carried to notify on

    information with respect to the medium for the people to know the latest news.

    Currently all the program or activities notification announce manually using social

    media. Due to this problem, all JaPSAR’s members must participate to notify the

    notification to students using WhatsApp in all group’s chats. So, to solve the problem

    I-Surau Ar-Raudhah Notification System has been introduced. This system will notify

    students about activities and program that will be held by JaPSAR for Surau Ar-

    Raudhah by push the notification in web-based system.

    In the nutshell, I-Surau Ar-Raudhah Notification System must function with full

    functionality and meet the specified user’s requirement.

  • v

    CONTENTS

    DECLARATION I

    ENDORSEMENT II

    DEDICATION III

    ABSTRACT IV

    CONTENTS V

    LIST OF FIGURES IX

    LIST OF TABLES XII

    LIST OF ABBREVIATIONS XIV

    LIST OF APPENDICES XV

    CHAPTER 1 1

    1.1 Background 1

    1.2 Problem Statement 2

    1.3 Objectives 3

    1.4 Scope 3

    1.4.1 Admin 3

    1.4.2 User 4

    1.4.3 System 4

    1.5 Limitation of Works 5

    1.6 Expected Result 5

    CHAPTER 2 6

    2.1 Introduction 6

    2.2 JavaScript Object Notation (JSON) 6

  • vi

    2.3 Procedure of invoking a JSON-based Web Service 8

    2.4 Extensible Mark-up Language (XML) 9

    2.5 Comparison between JSON and XML 10

    2.6 PHP (Hypertext Pre-processor) 12

    2.7 Existing System 14

    2.8 Comparison of SDLC Methodologies 16

    2.9 Proposed Idea 18

    CHAPTER 3 19

    3.1 Introduction 19

    3.2 Agile Model 20

    3.2.1 Basic Stages of Agile Model 22

    3.2.2 Advantages and Disadvantages of Agile Model 24

    3.3 System Requirements 25

    3.4 Framework and Design 27

    3.4.1 Use Case Diagram 27

    3.4.2 Data Flow Diagram Admin Level 0 Process 29

    3.4.3 Data Flow Diagram User Level 0 process 30

    3.4.4 Data Flow Diagram Level 1 Process for Admin 31

    3.4.5 Data Flow Diagram Level 1 Process for User 32

    3.4.4 Entity Relationship Diagram 34

    3.4.5 Framework Design 36

    3.4.6 Algorithms (Firebase Cloud Messaging (FCM)) 37

    3.5 Implementation Phase 43

    3.6 Testing Phase 43

    3.7 Summary 43

    CHAPTER 4 44

    IMPLEMENTATION AND RESULT 44

    4.1 Introduction 44

    4.2 Implementation of I-Surau Ar-Raudhah Notification System 44

    4.3 Design Interface for Web-Based System 45

  • vii

    4.3.1 Login Form Interface 45

    4.3.2 Main Interface / Dashboard 46

    4.3.3 Form Add Activities Interface 47

    4.3.4 Form Edit Activities Interface 48

    4.3.5 List of Table Notification Interface 50

    4.3.6 Form Add / Send Notification Interface 51

    4.3.7 Form Edit / Resend Notification 52

    4.3.8 Table List of Hadith Interface 54

    4.3.9 Form Add Hadith and Form Edit Hadith Interface 55

    4.3.10 Manage User Interface 57

    4.4 Design Interface for Mobile Application 58

    4.4.1 Login Interface 58

    4.4.2 Sign Up Interface 60

    4.4.3 Home Page Interface 61

    4.4.4 Notification List Page Interface 63

    4.4.5 Gallery Activity Page Interface 64

    4.4.6 List of Hadith Page Interface 65

    4.4.7 User Profile Interface 67

    4.4.8 Form Edit User Profile Interface 68

    4.4.9 The Notification Interface 70

    4.5 Testing Analysis 71

    4.6 Test Case 71

    4.6.1 Login 71

    4.6.2 Add Activities 72

    4.6.3 Edit Activities 73

    4.6.4 Delete Activities 74

    4.6.5 Send Notification 75

    4.6.6 Edit Notification 76

    4.6.7 Delete Notification 77

    4.6.8 Add Hadith 78

    4.6.9 Edit Hadith 79

    4.6.10 Delete Hadith 80

    4.6.11 Manage User 81

    4.6.12 Login 82

    4.6.13 Register 83

    4.6.14 View Notification 84

    4.6.15 View Hadith 85

    4.6.16 View User Profile 86

    4.6.17 Edit User Profile 86

    4.6.18 Log Out 87

    4.7 Summary 88

    CHAPTER 5 89

  • viii

    5.1 Introduction 89

    5.2 Project Contribution 89

    5.3 Limitation 90

    5.4 Recommendation 90

    REFERENCES 91

  • ix

    LIST OF FIGURES

    CHAPTER 2

    Figure 2. 1: A simple JSON document ..................................................................... 7

    Figure 2. 2: Step for Invoking JSON-based Web Service .......................................... 8

    Figure 2. 3: Example of php code............................................................................13

    Figure 2. 4: Interface of OneSignal app ...................................................................14

    Figure 2. 5: Interface of NotifyMe app ....................................................................15

    CHAPTER 3

    Figure 3. 1: Type of SDLC Model...........................................................................20

    Figure 3. 2: Agile Model ........................................................................................21

    Figure 3. 3: Graphical Illustration of the Agile Model ..............................................22

    Figure 3. 4: Use Case Diagram ...............................................................................28

    Figure 3. 5: Data Flow Diagram Admin Level 0 Process..........................................29

    Figure 3. 6: Data Flow Diagram for User Level 0 process ........................................30

    Figure 3. 7: Data Flow Diagram Level 1 process for admin......................................31

    Figure 3. 8: Data Flow Diagram Level 1 Process for User........................................33

    Figure 3. 9: Entity Relationship Diagram for User ...................................................34

    Figure 3. 10: Entity Relationship Diagram for Admin ..............................................35

    Figure 3. 11: Framework Design .............................................................................36

    Figure 3. 12: Method for display regid and retrieve from firebase.............................37

    Figure 3. 13: PHP file that contain declaration of firebase API key...........................38

    Figure 3. 14: PHP code for retrieve input from admin ..............................................39

    Figure 3. 15: Push Method ......................................................................................41

  • x

    Figure 3. 16: Method to push notification into mobile app .......................................42

    CHAPTER 4

    Figure 4. 1: Sketch login interface...........................................................................45

    Figure 4. 2: Login Interface for Admin....................................................................46

    Figure 4. 3: Sketch Layout for dashboard / Main Interface .......................................47

    Figure 4. 4: Main Interface of I-Surau Ar-Raudhah Notification System...................47

    Figure 4. 5: Sketch Layout for Add Activities..........................................................48

    Figure 4. 6: Add Activities Interface .......................................................................48

    Figure 4. 7: Sketch Layout form Edit Activities .......................................................49

    Figure 4. 8: Form Edit Activities .............................................................................49

    Figure 4. 9: Sketch layout for table list of notification..............................................50

    Figure 4. 10: List of Table Notification Interface .....................................................51

    Figure 4. 11: Sketch of interface for add new notification ........................................52

    Figure 4. 12: Form Send Notification ......................................................................52

    Figure 4. 13: Sketch of Edit Notification interface ...................................................53

    Figure 4. 14: Form Edit / Resend Notification .........................................................53

    Figure 4. 15: Sketch interface for list of hadith ........................................................54

    Figure 4. 16: Table List of Hadith Interface .............................................................55

    Figure 4. 17: Sketch interface for form adding hadith ..............................................55

    Figure 4. 18: Form Add Hadith Interface.................................................................56

    Figure 4. 19: Sketch interface for Form update hadith ..............................................56

    Figure 4. 20: Form Edit Hadith Interface .................................................................57

    Figure 4. 21: Sketch interface for manage user ........................................................58

    Figure 4. 22: Manage User Interface .......................................................................58

    Figure 4. 23: Sketch layout for login interface .........................................................59

    Figure 4. 24: Login Interface for I-Surau Mobile Application...................................59

    Figure 4. 25: Sketch Layout for register interface ....................................................60

    Figure 4. 26: Sign-Up Interface for I-Surau Mobile Application ...............................61

    Figure 4. 27: Sketch for main interface....................................................................62

    Figure 4. 28: Home Page Interface ..........................................................................62

    Figure 4. 29: Sketch of List notification interface ....................................................63

    Figure 4. 30: Notification List Page Interface ..........................................................63

  • xi

    Figure 4. 31: Sketch for gallery notification interface...............................................64

    Figure 4. 32: Gallery Activity Page Interface...........................................................64

    Figure 4. 33: Gallery Activity Page Interface...........................................................65

    Figure 4. 34: Sketch for list of hadith interface ........................................................66

    Figure 4. 35: List of Hadith Page Interface ..............................................................66

    Figure 4. 36: Sketch of User profile interface ..........................................................67

    Figure 4. 37: User Profile Interface .........................................................................68

    Figure 4. 38: Sketch for edit profile interface...........................................................69

    Figure 4. 39: Form Edit User Profile Interface .........................................................69

  • xii

    LIST OF TABLES

    CHAPTER 2

    Table 2. 1: Advantages and Disadvantages JSON over XML (Haq, Khan, & Hussein,

    2015) .....................................................................................................................10

    Table 2. 2: Comparison of Waterfall, Spiral and Agile Model (Victor, 2017). ...........16

    CHAPTER 3

    Table 3. 1: Advantages and Disadvantages of Agile Model (Victor, 2017) ...............24

    Table 3. 2: List of Software ....................................................................................25

    Table 3. 3: List of Hardware ...................................................................................26

    CHAPTER 4

    Table 4. 1: Test Case for Login ...............................................................................71

    Table 4. 2: Test Case Add Activities .......................................................................72

    Table 4. 3: Test Case Edit Activities .......................................................................73

    Table 4. 4: Test Case Delete Activities ....................................................................74

    Table 4. 5: Test Case Send Notification. ..................................................................75

    Table 4. 6: Test Case Edit Notification. ...................................................................76

    Table 4. 7: Test Case Delete Notification. ...............................................................77

    Table 4. 8: Test Case Add Hadith. ...........................................................................78

    Table 4. 9: Test Case Edit Hadith. ...........................................................................79

    Table 4. 10: Test Case Delete Hadith. .....................................................................80

    Table 4. 11: Test Case Manage User. ......................................................................81

  • xiii

    Table 4. 12: Test Case for Login .............................................................................82

    Table 4. 13: Test Case for Register .........................................................................83

    Table 4. 14: Test Case for View Notification ...........................................................84

    Table 4. 15: Test Case for View Hadith...................................................................85

    Table 4. 16: Test Case for View User Profile ...........................................................86

    Table 4. 17: Test Case for Edit User Profile.............................................................86

    Table 4. 18: Test Case for Log Out. ........................................................................87

  • xiv

    LIST OF ABBREVIATIONS

    JSON JavaScript Object Notation

    JaPSAR Jawatankuasa Pengurusan Surau Ar-Raudhah

    DFD Data Flow Diagram

    XML Extensible Mark-up Language

    UniSZA University of Sultan Zainal Abidin

    SDLC Software Development Life Cycle

    FCM Firebase Cloud Messaging

    FYP Final Year Project

    Regid Firebase Id

    App Application

  • xv

    LIST OF APPENDICES

    APPENDIX TITLE PAGE

    A Gantt Chart FYP 1 94

    B Gantt Chart FYP 2 96

  • 1

    CHAPTER 1

    INTRODUCTION

    1.1 Background

    Kampus Besut is one of the campus of Universiti Sultan Zainal Abidin

    (UniSZA) with only three faculty. There are many associations in UniSZA Kampus

    Besut including ‘Jawatankuasa Pengurusan Surau Ar-Raudhah’ which is known as

    JaPSAR.

    JaPSAR is the organization that responsible in managing Surau Ar-Raudhah

    such as making programs or activities to the Islamic activities and welfare of student

    community in relate to the Surau Ar-Raudhah. Moreover, JaPSAR also provide a duty

    schedule of Imam and Bilal for Surau Ar-Raudhah and many more.

    Surau Ar-Raudhah has been the main place for Muslim students do religious

    events like tazkirah, the reminder of the best practices as Muslim and Islamic guidance.

    The Muslim students also prays at Surau Ar-Raudhah. Unfortunately, only few students

  • 2

    commit to attend events. Despite being notified, maybe they not remember or packed

    with others schedule. Therefore, the activities of JaPSAR would have less attendee. In

    addition, students always busy with learning schedule with assignment and other needs,

    yet they still lack of mindfulness of Islamic teaching, spiritual reminder that is believed

    will support good spiritual and self-development.

    Through this problem, JaPSAR need to come up with an apps that able to record

    the activities and remind the follower on the hadith, takzirah and the future activities of

    Surau Ar-Raudhah so that the attendee will be increased, the program got many

    attendances, and all in all the JaPSAR can achieve its objective. So, one way to solve

    this problem is to have and mobile app that always notify reminder for students about

    the activities will be held by JaPSAR.

    Thus, the I-Surau Ar-Raudhah Notification System has been introduced in order

    to solve the problem.

    1.2 Problem Statement

    Certainly, notifying the students is the most problem which is there’s no other

    medium for centralised information for the Surau Ar-Raudhah. According to the past,

    the medium that JaPSAR used only through verbal or conversation between members

    of surau and students. Furthermore, usually all the program and activities announce

    manually in surau or notified using social media like sharing in WhatsApp groups,

    Instagram and many more. Despite being notified, only few students commit to attend

    events. Maybe they not remember or packed with others schedule. Moreover, students

    always busy with learning schedule with assignment and other needs, yet they still lack

  • 3

    of mindfulness of Islamic teaching, spiritual reminder that is believed will support good

    spiritual and self-development.

    1.3 Objectives

    The objectives of developing I-Surau Ar-Raudhah Mobile App are to develop

    integrated notification system for students about Surau Ar-Raudhah activities or events.

    Moreover, the objective also to design information sharing management system for

    Surau Ar-Raudhah. Last but not least, to test the functionality of application and system.

    1.4 Scope

    The scope means what will recovered in the research project and who involves

    in the system. It defines clearly the extent of the content that will be covered by whole

    system. The scope of study has to define at a preliminary stage and it is very important

    to do it early as possible.

    1.4.1 Admin

    For web-based system, admin can log in to the system by entering the username

    and password. Next, admin also can manage user such as delete user account or change

    the user data. For the important function, admin can push notification with title,

  • 4

    message and image and anymore. Other than that, admin can manage user reviews such

    as reports, ratings, and commends. Lastly, admin can add, delete and update data in

    database.

    1.4.2 User

    For the mobile app, user can register and login with username and password as

    user. User can get notification about events and activities that admin push in web-based

    system. User also get notified hadith, make report about surau problems and commend

    activities. Moreover, user can fill out the form in the mobile app for examples fill out

    the form for joining JaPSAR. User also can access their profile and can update their

    data in the mobile app. Lastly, user can do rating to activities that passed already.

    1.4.3 System

    System will interact with admin and user. For example, when the user entered

    wrong password and username, the system will notify that the username or password

    that entered is wrong. The system has security like password and username for admin

    and user to login before using the app or system. The system will provide notification

    to users.

  • 5

    1.5 Limitation of Works

    There are several limitations that occurred for this application. These problem

    and limitation for this project is user need to have internet connection to get data from

    server and this system is designed for students of UniSZA Kampus Besut. Moreover,

    the system is for android phone only.

    1.6 Expected Result

    This project aims to involves an application for the android base operating

    system for Surau Ar-Raudhah which will provide the notification and reminders to

    users about activities that will be held at Surau Ar-Raudhah. There are abundance

    applications that provide notifications about business, news and many more. Next, this

    app will assist JaPSAR in notify activities or program about Surau Ar-Raudhah to

    students or users. Other than that, the students must get notification from I-Surau Surau

    Ar-Raudhah mobile app when the admin push the notification in web-based system.

    Lastly, I-Surau Ar-Raudhah Notification System must function with full functionality

    and meet the specified user’s requirement.

  • 6

    CHAPTER 2

    LITERATURE REVIEW

    2.1 Introduction

    This chapter to present knowledge of existing research and debates relevant to

    this project. Based on this project, JavaScript Object Notation (JSON) is chosen for data

    exchange between web servers and browsers and mobile applications. This chapter also

    cover the research on what is XML and comparison between JSON and XML.

    2.2 JavaScript Object Notation (JSON)

    JSON is a lightweight format based on the data types of the JavaScript

    programming language. In their essence, JSON documents are dictionaries consisting

    of key-value pairs, where the value can again be a JSON document, thus allowing an

    arbitrary level of nesting.

  • 7

    As we can see from Figure 2.1, apart from simple dictionaries, JSON also

    supports arrays and atomic types such as integers and strings.

    {

    "name": {

    "first": "John",

    "last": "Doe"

    }

    "age": 32,

    "hobbies": ["fishing","yoga"]

    }

    Figure 2. 1: A simple JSON document

    Arrays and dictionaries can again contain arbitrary JSON documents, thus

    making the format fully compositional. JSON is quickly becoming one of the most

    popular formats for exchanging data on the Web because it is easily readable both by

    humans and by machines (Bourhis, Reutter, Vrgoc, & Suarez, 2017).

    Despite its popularity, the coverage of the specifics of JSON format in the

    research literature is very sparse, and to the best of our knowledge, there is still no

    agreement on the correct data model for JSON, no formalisation of the core query

    features which JSON systems should support, nor a logical foundation for JSON

  • 8

    Schema specification. Bourhis et al (2017) state while some preliminary studies do

    exist, as far as we are aware, no attempt to describe a theoretical basis for JSON has

    been made by the research community. Therefore, the main objective of this paper is to

    formally define an appropriate data model for JSON, identify the key querying features

    provided by the existing JSON systems, and to propose a logic allowing us to specify

    schema constraints for JSON documents.

    2.3 Procedure of invoking a JSON-based Web Service

    Nowadays, data exchanging in web service applications between client and

    server is through HTTP. HTTP itself might be a bottleneck of the web service

    performance. Figure 2.2 shows the entire procedure of invoking a JSON-based request-

    response web service. As we can see, it consists of five steps

    Figure 2. 2: Step for Invoking JSON-based Web Service

  • 9

    Step 1 is to parse JSON data, which means the server will parse the data as soon

    as it receives the request data from the clients. In Step 2, the parsed JSON data is DE

    serialized into application data. Step 3 is service invocation. The server invokes specific

    web service and catches the results. The time it takes is relevant to the computational

    complexity of the web service. Step 4 is serializing the results returned from Java data

    into JSON data. Step 5 is the final step which writes the JSON data into an output stream

    of HTTP, and then sends it to the client side.

    2.4 Extensible Mark-up Language (XML)

    XML is a simple standard that can be used to transform and encode both text

    and data and it can be processed and transformed across different platforms. XML is

    simpler and more manageable as compared to SGML, it is not a full independent mark-

    up language but it is a tool that enables users to define their own mark-up language,

    user can define their own tags which are easier and more readable by both machines, as

    well as user (Zia, Gul, & Tazar, 2015).

    To take care of compatibility the XML is built to in the way to fit the HTML in

    the new framework and after some time HTML 5.0 which is a very suitable version that

    is compatible with XML and there it is named as XHTML, and simply we can say that

    it is nothing more but a special application of XML.

  • 10

    2.5 Comparison between JSON and XML

    Table 2.1 shows the strengths JSON over XML and strengths XML over JSON.

    Both JSON and XML can be used to receive data from a web server and both also are

    hierarchical (values within values).

    Table 2. 1: Advantages and Disadvantages JSON over XML (Haq, Khan, & Hussein, 2015)

    JSON XML

    JSON strengths over XML

    Completely programmed

    technique for de-serializing

    and serializing JavaScript

    objects, with very little

    coding.

    JavaScript code

    will be written by

    developer to

    serialize and de-

    serialize to and

    from XML

    Most of the browsers have

    enough support of JSON

    All new browsers

    have built in XML

    parser but it could

    be a bit tricky

    when it comes to

    cross-browser

    XML parsing.

  • 11

    The format is very concise

    due to having name/value

    pair-based approach.

    Because of tags

    and namespaces,

    the format is very

    lengthy.

    de-serialization is very

    speedy in JavaScript

    De-serialization is

    slower in

    JavaScript

    Most of JavaScript libraries

    and AJAX toolkits have good

    support of JSON

    AJAX toolkits

    don’t have strong

    support for it.

    Having simple API for JS

    and more other languages

    The APIs are very

    complicated

    XML strengths over JSON

    There is no grammar support

    and that’s why it is difficult

    to communicate and enforce

    interface contracts

    While XML have

    XML schema and

    Document Type

    Definition which

    can be used to

    define grammar

    rules

    Extensibility is not good as

    namespaces are not

    supported

    Very strong

    support for

    namespaces,

    schema have more

    extensibility

    options

  • 12

    2.6 PHP (Hypertext Pre-processor)

    PHP (recursive acronym for PHP: Hypertext Pre-processor) is a widely-used

    open source general-purpose scripting language that is especially suited for web

    development and can be embedded into HTML.

    Development tools support is

    very limited as it is newly

    introduced.

    As XML is in the

    market since long

    time there for is

    supported by most

    of the

    development tools.

    JSON is very narrow focused

    as it is used only for Remote

    Process Call (RPC), mainly

    with JavaScript Clint.

    XML is very

    broad focused, it

    can be used for

    Remote Process

    Call (RPC),

    Electronic Data

    Interchange (EDI),

    Metadata etc.

    Very limited support for web

    services associated stuff

    (products).

    Huge hold of web

    services related

    products.

  • 13

    Instead of lots of commands to output HTML (as seen in C or Perl), PHP pages

    contain HTML with embedded code that does "something" (in this case, output "Hi, I'm

    a PHP script!"). The PHP code is enclosed in special start and end processing

    instructions that allow you to jump into and out of "PHP mode" (Shen,

    2018).

    What distinguishes PHP from something like client-side JavaScript is that the

    code is executed on the server, generating HTML which is then sent to the client. The

    client would receive the results of running that script, but would not know what the

    underlying code was. You can even configure your web server to process all your

    HTML files with PHP, and then there's really no way that users can tell what you have

    up your sleeve.

    The best things in using PHP are that it is extremely simple for a newcomer, but

    offers many advanced features for a professional programmer. Figure 2.3 below shows

    the example of php code.

    Figure 2. 3: Example of php code

  • 14

    2.7 Existing System

    I. OneSignal (George Deglin, CEO of One Team One Dream (2017))

    OneSignal is incredibly helpful with a front-facing user interface that non-devs

    can easily use, impeccable service, and the consistent system uptime that make

    delivering pushes reliable. Figure 2.4 below shows the interface of the app.

    Figure 2. 4: Interface of OneSignal app

    The advantages of OneSignal app is real time reporting which is user can view

    delivery and conversion performance for every message. This app is easy to use for user

    and user friendly.

  • 15

    II. NotifyMe - Notes, Reminders and Birthdays (Sourabh Nayak (2016))

    User can create remainder tasks for user daily day to day use and set the task

    occurrence frequency. This system also can create shopping lists and to-do lists with

    reminders. Figure 2.5 show the interface of the app.

    Figure 2. 5: Interface of NotifyMe app

    The advantages for NotifyMe app are the app will remind us about important

    things that we have to do when we set up the reminder. This app also will make sure

    that we did not late to go to work. Lastly, this app can ease our life by remind many

    things that we can’t remember.

  • 16

    2.8 Comparison of SDLC Methodologies

    Methodology is commonly heard among developer and there are many

    methodologies that have been used for developed the systems such as System

    Development Life Cycle or known as SDLC. Table 2.2 shows the comparison between

    three methodologies in SDLC with advantages and disadvantages.

    Table 2. 2: Comparison of Waterfall, Spiral and Agile Model (Victor, 2017).

    Model Waterfall Model Spiral Model Agile Model

    Definition The development

    process moving step

    by step through the

    phases from the

    requirement

    analysis to

    maintenance

    phases.

    A combined

    architecture of the

    iterative and

    Waterfall SDLC

    models and

    prototyping by stages.

    It is a risk-driven

    software development

    process model

    The requirements

    and solutions

    evolve through the

    collaborative efforts

    of the development

    team and their

    customer (end

    user).

    Advantages • Simple to

    use and can

    understand

    easily

    • The phase can

    be finished

    early to

    control threats

    if exist.

    • Project is

    divided by

    short and

    transparent

    iterations.

  • 17

    • Developmen

    t stages

    proceed one

    by one.

    • Easy to

    determine

    the key

    points in the

    development

    cycle.

    • The process is

    precisely

    documented

    yet scalable to

    the changes.

    • Can make

    changes and

    new

    functionality

    even at the

    late stages.

    • Risks are

    minimized

    thanks to the

    flexible

    change

    process.

    • First product

    version is

    released

    early.

    Disadvantage

    s

    • The

    software is

    ready only

    after the last

    stage is

    over.

    • High risks

    uncertainty.

    • The

    progress of

    the stage is

    hard to

    measure

    while it is

    • The risk

    control

    demands

    involvement

    of highly-

    skilled

    professionals.

    • Big number of

    the

    intermediate

    stages requires

    excessive

    documentatio

    n.

    • Difficulties

    in

    measuring

    the final cost

    because of

    permanent

    changes.

    • New

    requirement

    s may

    conflict with

    the existing

    architecture.

  • 18

    still in

    development

    .

    • Can be quite

    expensive.

    • The project

    may exceed

    expected

    time

    because of

    the

    corrections

    and changes

    along the

    project

    development

    .

    2.9 Proposed Idea

    I-Surau Ar-Raudhah is a mobile application which notify the students about

    ‘surau’ programs or activities, 1 day 1 hadith. The methodology for develop this system

    is Agile Model because the development can be divided into parts and the phase is

    repeated in each part. This allow the developer to make improvement from time to time

    if there are any changes made.

  • 19

    CHAPTER 3

    METHODOLOGY

    3.1 Introduction

    Methodology is commonly heard among developer and there are many

    methodologies that have been used for developed the systems such as System

    Development Life Cycle or known as SDLC.

    SDLC have been widely used by in the development of software as a model of

    how a software will be developed. Figure 3.1 shows some of the methodologies. There

    are Waterfall Model, Spiral Model, Agile Model, Top-Down Model, Bottom-Up

    Model, and Rapid Application Development (RAD) Model (Victor, 2017).

  • 20

    Figure 3. 1: Type of SDLC Model

    3.2 Agile Model

    Agile software development is an approach to software while requirements and

    solutions develop through the combine efforts of the development teams and their

    customers as the end user. It supports adjustable planning, advancement development,

    early delivery, and continual development. Also, it is flexible and rapid response to

    changes (Victor, 2017).

    Figure 3.2 below shows the stages or steps in agile model. There are four steps

    in agile model which are requirements, architecture and design, development, and test

    and feedback.

    Waterfall

    Rapid Application

    Development (RAD) Bottom-Up Top-Down

    Agile Spiral

  • 21

    Figure 3. 2: Agile Model

    Agile methods break the product into small parts that can be called as

    replication. After every development of replication, the customer is able to see the result

    and understand if he satisfied or not. This one of the advantages of the agile software

    development life cycle model (Victor, 2017). The chosen methodology is Agile Model

    because the development can be divided into parts and the phase is repeated in each

    part. This allow the developer to make improvement from time to time if there are any

    changes made. The method chosen and its development phase will also be explained

    more in this chapter.

    Figure 3.3 shows the graphical illustration of the agile model. Agile model can

    have many iterations until the user is satisfied with the system that had been developed.

  • 22

    Figure 3. 3: Graphical Illustration of the Agile Model

    3.2.1 Basic Stages of Agile Model

    a) Stage 1: Planning and Requirement Analysis

    In this stage, planning and requirement analysis is discussed. The objective of

    the project is to build a notification system for Surau Ar-Raudhah. The title of this

    project is selected, I-Surau Ar-Raudhah Mobile App. The abstract was constructed with

    all the information gathered. The risk may exist and once the risk is identified, a plan is

    finalized to overcome the risk. The problems on current state of notification without

    using apps are not all students are in the groups that members of JaPSAR notify the

  • 23

    notification, only few students attend to surau to announce the activities or program,

    not all students use android phone, students takes time to find the message or

    notification about the program in social media.

    b) Stage 2: Designing Project Architecture

    In this second phase, the project architecture is designed. Here are the defined

    the limitations and milestones. The limitations of this project are listed including the

    app is for android user only. The possible list to design the project based on the

    problems in stage one is the student can create account for the mobile application before

    they get the notification from app and the app will only available to android user only.

    c) Stage 3: Development and Programming

    In the third phase, the development and programming of the project is

    conducted. I-Surau Ar-Raudhah Mobile App will be developed. It will combine the

    modules to become a complete system. The development will be based on design stage

    which are the login and registration for user, list of activities program and notification

    for user, list of hadith and user profile for user details.

  • 24

    d) Stage 4: Testing

    The testing phase involves the debugging process. All the code flaws missed

    during the development are detected and fixed. Any improvements are listed and be

    implemented to the system.

    • These stages are repeated until user is satisfied with the end product of the

    system

    3.2.2 Advantages and Disadvantages of Agile Model

    Table 3.1 below shows the advantages and disadvantages of agile model for use

    in the proposed project.

    Table 3. 1: Advantages and Disadvantages of Agile Model (Victor, 2017)

    Advantages Disadvantages

    Functionality can be developed rapidly

    and demonstrated.

    Not suitable for handling complex

    dependencies.

    Suitable for fixed or changing

    requirement.

    More risk of sustainability,

    maintainability, and extensibility.

    Gives flexibility to developers. There is very high individual

    dependency, since there is minimum

    documentation generated.

  • 25

    Minimal rules, documentation easily

    employed

    Strict delivery management determines

    the scope. Functionality to be delivered,

    and adjustments to meet the deadlines.

    3.3 System Requirements

    System requirement is a very essential part to develop a system. They

    are the software and the hardware that built up the system from scratch into a complete

    system. Thus, I-Surau Ar-Raudhah Mobile App deployed several software and

    hardware when developing the system, as listed below. Table 3.2 below shows the list

    of software that had been part to develop a proposed system and the description for all

    software.

    Table 3. 2: List of Software

    Software Description

    Wi-Fi UniSZA Internet connection used to search

    information such as journals, articles

    and coding-solve alternatives.

    XAMPP Server, MySQL Localhost to create database for this

    system.

    Notepad++ Platform used to write coding to be run

    into localhost.

  • 26

    Microsoft Office Software to write report for references

    and slides for presentation

    Microsoft Visio Software to design ERD, DFD and Use

    Case Diagram.

    Google Drive Cloud storage which is used for back up

    all the coding and report.

    Google Platform to search for information,

    images and references.

    Snipping tool Used to cut and capture image from the

    computer screen.

    In addition, hardware is important too in the project for make the project

    success. Table 3.3 below shows the list of hardware and hardware description.

    Table 3. 3: List of Hardware

    Hardware Description

    Laptop Asus Windows 10 Laptop used in developing the system

    with 16GB Ram, 64-bit operating

    system and write report using Microsoft

    Office.

    Printer Hardware used for printing the hard

    copy of related information and the

    report of this system.

  • 27

    External Hard Drive Hardware used to back up all coding,

    data, information’s about the system and

    references.

    3.4 Framework and Design

    This section discussed about the framework and design used in

    developing this project. Project modelling has been used in order to define and analyses

    the data required in this project. Use Case Diagram, Data Flow Diagram, Entity

    Relationship Diagram and Framework diagram are used in order to explain the project

    modelling. These diagrams also will represent the framework of the system. Algorithm

    for method used in this system also represent in this chapter. In conclusion, this section

    will explain more about how the system is designed and modelled.

    3.4.1 Use Case Diagram

    Figure 3.4 shows the use case diagram that includes the two main entities and

    their main process in this system.

  • 28

    Users Admin

    Register Login

    View Notification

    Comment and Rating

    Make report

    Log Out

    Access profile

    Fill out the form

    username and password

    Activities, program and hadith

    View reports and commends

    update data

    Login as admin

    Add activities notification

    upload

    Manage users

    Figure 3. 4: Use Case Diagram

    User will register and input all the user information such as name, matric

    number and so on. Then the user will input the username and password that has been

    register to login the system. User can get notification about activities and hadith after

    login into system. User also can access their profile and update the profile. Next, user

    can comment, rating for the activities that had been passed in the system. User also can

    make report about Surau Ar-Raudhah problem or anything that involve with it.

  • 29

    Lastly, user can log out from the system by logging out the user account. Admin

    can update activities and information into the system to notify the user later. Admin can

    view report, comments and rating.

    3.4.2 Data Flow Diagram Admin Level 0 Process

    Figure 3.5 shows DFD for admin level 0 process. Based on Figure 3.5, admin

    need to login to use all the function in the system. There are 5 function in homepage

    after login which are logout, view activities, view hadith, manage user and view user

    review. All the data are retrieved and store in the database.

    Admin

    1.0

    Login

    2.0

    Logout

    3.0

    View Activities

    4.0

    View Hadith

    5.0

    Manage user

    6.0

    View User

    Review

    Database

    Store and retrieve

    Figure 3. 5: Data Flow Diagram Admin Level 0 Process

  • 30

    3.4.3 Data Flow Diagram User Level 0 process

    Figure 3.6 show the DFD user level 0 process. First, user need to register and

    login to use all the function in the system. There are 8 function in homepage after login

    which are logout, view current notification, view archive, view user review, view

    report, view hadith, manage account, and setting. All the data are retrieved and store in

    the database.

    1.0

    Register

    2.0

    Login

    3.0

    Logout

    4.0

    View Current

    notification

    8.0

    View Hadith

    6.0

    View User

    Review

    5.0

    View Archive

    7.0

    View Report

    9.0

    Manage

    account

    10.0

    Setting

    Database

    User

    Figure 3. 6: Data Flow Diagram for User Level 0 process

  • 31

    3.4.4 Data Flow Diagram Level 1 Process for Admin

    Figures 3.7 shows diagram (DFD) for admin. DFD is the expansion from Use

    Case Diagram.

    1.0

    Login page displayed

    Admin

    2.0

    Login into system

    Admin

    3.0

    Logout from system

    4.0

    View Activities

    14.0

    View user review

    13.0

    Manage User

    10.0

    View Hadith

    5.0

    Display activities and

    Options

    8.0

    Add activities

    9.0

    Edit activities

    6.0

    Delete activities

    15.0

    Display User Review Options

    16.0

    View Comment

    12.0

    Add/Modify and Delete

    Hadith

    11.0

    Display Hadith and

    Options

    7.0

    Create form for join activiies

    Activities

    18.0

    View Report

    20.0

    View Rating

    Hadith

    17.0

    Display Comment

    19.0

    Display Report

    21.0

    Display Rating

    Comment Report Rating

    User

    Request login

    LoginValidate

    Try again

    True

    Choose

    Retrieve and store

    Choose

    RetrieveRetrieveRetirive

    Logout

    Retrieve

    Store

    Store

    Store

    Figure 3. 7: Data Flow Diagram Level 1 process for admin

  • 32

    All the processes are connected with an entity and saved in data store. Admin

    need to login into system in order to view, insert, update, delete and manage user. At

    homepage, admin can logout, view activities page, view hadith page, go to manage user

    page, and view user review page. Admin can create, add, edit and delete the activities

    in view activities page. Next, admin also can add, edit, delete hadith in view hadith

    page. At view user review, admin can view all the user comment, report and rating. All

    the data is saved to database and retrieve from database.

    3.4.5 Data Flow Diagram Level 1 Process for User

    Figure 3.8 below shows the diagram (DFD) for user. Same like admin, all the

    user needs to login into the system in order to view, insert, update, delete and create

    report. In homepage, there are many links that go to another page which are view

    current notification, view current hadith, view archive, view user review, view report,

    manage account and setting.

  • 33

    1.0

    Login page

    displayed

    10.0

    View user

    review

    3.0

    Logout from

    system

    2.0

    Login into

    system

    4.0

    View current

    notification

    7.0

    Dsiplay list of

    archive

    6.0

    View archive

    18.0

    View report

    5.0

    View curent

    hadith

    notification

    25.0

    View system

    setting

    24.0

    View / Modify

    account profile

    User

    8.0

    Display Past

    Activities/

    Programs

    9.0

    Display Hadith

    12.0

    View

    Comments

    11.0

    Display list of

    user review

    16.0

    View Rating

    15.0

    Delete

    comment

    14.0

    Edit comment

    13.0

    Add/upload

    comment

    17.0

    Make Rating/

    Unrating

    19.0

    Display list

    report

    20.0

    Add report

    21.0

    Edit report

    22.0

    Delete Report

    23.0

    Upload

    document

    Request login

    Login

    Choose

    Choose option Choose option

    Choose Option

    Logout

    UserValidate

    True

    Try again

    Store

    Comment Rating Report

    Store

    Store

    Store

    Activities

    Retrieve

    Hadith

    Retrieve

    Data Flow Diagram User

    24.0

    Register page

    displayed

    User request register

    Store

    Request login

    Choose

    Retrieve

    Retrieve

    Retrieve

    Retrieve

    Figure 3. 8: Data Flow Diagram Level 1 Process for User

  • 34

    3.4.4 Entity Relationship Diagram

    Figure 3.9 below shows the relationship table user among another table in the

    database. User also can give one or many comment, rating and report. Table Comment,

    Rating and Report contain one foreign key which is MatricNo (matric number). In table

    Comment, actId is foreign key from table Activities. MatricNo in table User is primary

    key. The attribute for table User is matricNo, Uname, Course, email, Fname, phoneNo,

    icNo, Faculty and password. The attribute for Report table is reportId as primary key,

    MatricNo, reportname and report. The attribute for table Comment is comId as primary

    key, actId, Matricno and comment. The attribute for table Rating is ratingId as primary

    key, MatricNo, actId, and rating. One user can create many reports, ratings and

    commends.

    User

    MatricNoPK

    Uname

    Course

    email

    Fname

    phoneNo

    icNo

    Faculty

    Password

    Rating

    ratingIdPK

    actId

    rating

    Report

    reportIdPK

    MatricNo

    reportName

    MatricNo

    report

    Comment

    comIdPK

    actId

    MatricNo

    comment

    Give

    Give

    Give

    Figure 3. 9: Entity Relationship Diagram for User

    1.M

    1.M

    1.M

  • 35

    Based on Figure 3.10, admin have all access to all tables in database. In table

    Activities, ActId is primary key, and others attribute is actName, StartTime, EndTime,

    StartDate, EndDate, Place, Descriptuion and actStatus. One admin can access many

    activities. Other than that, the attribute for table Hadith is Hid that act as primary key,

    hadith and Hstatus. One admin can access many hadith. Lastly, for Admin table have

    username as primary key and password for another attribute.

    Hadith

    HidPK

    Hadith

    Hstatus

    Activities

    ActIdPK

    actName

    StartTime

    EndTime

    StartDate

    EndDate

    Place

    Description

    actStatus

    Admin

    usernamePK

    password

    Rating

    ratingIdPK

    actId

    rating

    Report

    reportIdPK

    MatricNo

    reportName

    MatricNo

    report

    Comment

    comIdPK

    actId

    MatricNo

    comment

    Figure 3. 10: Entity Relationship Diagram for Admin

    1.M 1.M 1.M

    1.M

    1.M

  • 36

    3.4.5 Framework Design

    Figure 3.11 below shows the framework design for I-Surau Ar-Raudhah Mobile

    App.

    User

    Server

    Admin

    Laptop

    Data

    StoreSend

    Get Notification

    Manage profile

    View notification

    View Hadith

    View setting

    Create Report

    Do Comment and Rating

    Manage user

    Manage activities

    Manage system

    Manage Hadith

    View User Review

    Figure 3. 11: Framework Design

    Based on Figure 3.11, user can manage profile, view notification, view hadith,

    view setting, create report and do comment and rating in the app. Admin can manage

    user, manage activities such as add activities and many more. Admin also can manage

    system, manage hadith and view user review like report, comment and rating in web-

    based system.

  • 37

    3.4.6 Algorithms (Firebase Cloud Messaging (FCM))

    For this system, firebase cloud messaging is used to generate the token that declared

    as regid and give to user that register account in mobile app. There are several steps to

    set up the firebase cloud messaging.

    a) STEP 1: Set up firebase cloud messaging into mobile app project in android

    studio.

    - Connect I-Surau Ar-Raudhah app with Firebase

    - Add FCM into app

    b) STEP 2: Retrieve regId from firebase that will be unique id for user when

    register.

    Based on Figure 3.12 below shows the example method of get regid from firebase

    and display in mobile app.

    private void displayFirebaseRegId() {

    SharedPreferences pref =

    getApplicationContext().getSharedPreferences(Config.SHARED_PREF, 0);

    String regId = pref.getString("regId", null);

    Log.e(TAG, "Firebase reg id: " + regId);

    if (!TextUtils.isEmpty(regId))

    txtRegId.setText("Firebase Reg Id: " + regId);

    else

    txtRegId.setText("Firebase Reg Id is not received yet!");

    }

    Figure 3. 12: Method for display regid and retrieve from firebase.

  • 38

    c) STEP 3: Copy Firebase server key/ API key from firebase console.

    For each project that connected with firebase cloud messaging, it should have

    one firebase server key or API key in firebase console. The firebase server key need to

    define in php file. For example, is in Figure 3.13:

  • 39

    $push = new Push();

    // optional payload

    $payload = array();

    $payload['team'] = 'Ikmal';

    $payload['score'] = '10';

    // notification title

    $title = isset($_GET['title']) ? $_GET['title'] : '';

    // notification message

    $message = isset($_GET['message']) ? $_GET['message'] : '';

    // push type - single user / topic

    $push_type = isset($_GET['push_type']) ? $_GET['push_type'] : '';

    // whether to include to image or not

    $include_image = isset($_GET['include_image']) ?

    $_GET['include_image']:'';

    $push->setTitle($title);

    $push->setMessage($message);

    if ($include_image != null) {

    $push->setImage($include_image);

    } else {

    $push->setImage('');

    }

    $push->setIsBackground(FALSE);

    $push->setPayload($payload);

    $json = '';

    $response = '';

    if ($push_type == 'topic') {

    $json = $push->getPush();

    $response = $firebase->sendToTopic('global', $json);

    echo "alert('Done')";

    } else if ($push_type == 'individual') {

    $json = $push->getPush();

    $regId = isset($_GET['regId']) ? $_GET['regId'] : '';

    $response = $firebase->send($regId, $json);

    }

    ?>

    Figure 3. 14: PHP code for retrieve input from admin

  • 40

    e) STEP 5: Create push method

    In Figure 3.15 below, $title, $message and $include_image will set into title,

    message and image.

  • 41

    $res['data']['message'] = $this->message;

    $res['data']['image'] = $this->image;

    $res['data']['payload'] = $this->data;

    $res['data']['timestamp'] = date('Y-m-d G:i:s');

    return $res;

    }

    Figure 3. 15: Push Method

    f) STEP 6: Create php file and rename as firebase.php for push notification to

    mobile app.

    In Figure 3.16 below shows the code will send the title, message and image in

    array to mobile app.

  • 42

    );

    return $this->sendPushNotification($fields);

    }

    // function makes curl request to firebase servers

    private function sendPushNotification($fields) {

    require_once __DIR__ . '/config.php';

    // Set POST variables

    $url = 'https://fcm.googleapis.com/fcm/send';

    $headers = array(

    'Authorization: key=' . FIREBASE_API_KEY,

    'Content-Type: application/json'

    );

    // Open connection

    $ch = curl_init();

    // Set the url, number of POST vars, POST data

    curl_setopt($ch, CURLOPT_URL, $url)

    curl_setopt($ch, CURLOPT_POST, true);

    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    // Disabling SSL Certificate support temporarly

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

    curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode($fields));

    // Execute post

    $result = curl_exec($ch);

    if ($result === FALSE) {

    die('Curl failed: ' . curl_error($ch));

    }

    // Close connection

    curl_close($ch);

    return $result;

    }

    }

    ?>

    Figure 3. 16: Method to push notification into mobile app

  • 43

    3.5 Implementation Phase

    For the implementation phase, the I-Surau Ar-Raudhah Notification System will

    be developed using PHP and MySQL for Web-based system and JAVA for mobile-

    based. The editor tools to write the programming parts is Notepad++ using PHP

    language and MySQL for database. The editor tools to write the programming part for

    mobile -based is Android Studio. In this phase, Firebase algorithm will be used to send

    the notification from web-based system to mobile application. Apache is run as local

    host server to run this system. This phase is critical phase where user requirement needs

    to be implemented.

    3.6 Testing Phase

    Testing the I-Surau Ar-Raudhah Notification System is the important part to

    ensure the system works perfectly and firebase algorithm is successful implemented in

    the system. The purpose of testing is to discover error so that the error found can be

    corrected and thus lead to a better system development. The details testing phase in

    Chapter 4.

    3.7 Summary

    In this Chapter, we discussed about methodology, hardware and software

    requirement to develop this system. It is important to choose the right and suitable

    methodology to fulfil the system requirement and can affect the development process.

    This chapter also involve the design and framework of the system to ensure the system

    is developed according to the requirement that have discussed.

  • 44

    CHAPTER 4

    IMPLEMENTATION AND RESULT

    4.1 Introduction

    This chapter will cover the implementation and the result of the I-Surau Ar-

    Raudhah Notification System using firebase algorithm to ensure that the system is

    develop according to the main objectives and achieve user requirement.

    4.2 Implementation of I-Surau Ar-Raudhah Notification System

    I-Surau Ar-Raudhah Notification System is develop using several languages.

    For the web-based system interface, HTML and CSS had been used. For the

    programming language, this system used PHP (Hypertext Pre-processor) language.

    PHP is widely used because it is an open source for general-purpose scripting language,

  • 45

    can be embedded into HTML and it suits for Web-development. This system used

    HTML5, PHP and JavaScript for the validation. Validation is important to make sure

    user have a minimum chance to make mistake when inserting data. Open Source

    database also used in this system and the database is MySQL version 7.4.2- XAMP.

    Apache use to run local host server. Notepad++ used for writing and edit the code.

    While for mobile application, JAVA was used for programming language. Android

    Studio 3.5 used for develop the mobile application.

    4.3 Design Interface for Web-Based System

    4.3.1 Login Form Interface

    The proposed system also needs login system because only admin can use the

    system. Figure 4.1 below shows the sketch login interface for I-Surau Ar-Raudhah

    Notification System.

    Figure 4. 1: Sketch login interface

  • 46

    Figure 4.2 below shows the interface for admin to log in into the I-Surau Ar-

    Raudhah Notification System after development. The Admin must enter username

    and password before log in.

    Figure 4. 2: Login Interface for Admin

    4.3.2 Main Interface / Dashboard

    Main interface needs to have the table of list activities, form add activities and

    time interface. Figure 4.3 shows the sketch dashboard interface after login into the

    system.

  • 47

    Figure 4. 3: Sketch Layout for dashboard / Main Interface

    Figure 4.4 shows the dashboard interface after login into the system. Admin can

    view the activities in the table at dashboard.

    Figure 4. 4: Main Interface of I-Surau Ar-Raudhah Notification System

    4.3.3 Form Add Activities Interface

    The add activities form is for admin adding the activities to MySQL (Database).

    Figure 4.5 below shows the sketch interface about form to add activities.

  • 48

    Figure 4. 5: Sketch Layout for Add Activities

    Figure 4.6 below shows the interface about form to add activities. There are

    several input boxes like activity title, category, date, time, content and image. While,

    for submitting the form, there are submit button and preview button.

    Figure 4. 6: Add Activities Interface

    4.3.4 Form Edit Activities Interface

    The edit activities form is the essential to this system because it is for admin

    easier edit the activities details in the system. Figure 4.7 below shows the sketch

    layout form interface for admin edit the activities details.

  • 49

    Figure 4. 7: Sketch Layout form Edit Activities

    Figure 4.8 below shows the form interface for admin edit the activities details.

    After admin click button edit, the form edits activities appear and shows the activities

    details that admin select to edit based on activities id. Admin can edit the image by

    uploading new image at edit activities form.

    Figure 4. 8: Form Edit Activities

  • 50

    4.3.5 List of Table Notification Interface

    The table list of notification is to display the notification details from database

    into the system. Figure 4.9 shows the sketch layout list of notification that admin

    notifies using the system.

    Figure 4. 9: Sketch layout for table list of notification

    Figure 4.10 shows the list of notification that admin notifies using the system.

    The attribute for table list notification are title, content, category, date, time and content

    control. In content control, there are two text links named delete and resend.

  • 51

    Figure 4. 10: List of Table Notification Interface

    4.3.6 Form Add / Send Notification Interface

    This form is to send notification to user when admin click the submit button.

    Figure 4.11 below shows the sketch interface about form add notification/send

    notification to user.

  • 52

    Figure 4. 11: Sketch of interface for add new notification

    Figure 4.12 below shows the interface about form add notification/send

    notification to user. There are several input tables, one drop-down option and one

    upload file function. In order to submit the notification, the admin must enter all the

    details before submit.

    Figure 4. 12: Form Send Notification

    4.3.7 Form Edit / Resend Notification

    This form is to when admin want to update the notification or resend. Figure

    4.13 shows the sketch interface with update/send notification form.

  • 53

    Figure 4. 13: Sketch of Edit Notification interface

    Figure 4.14 shows the same interface with add/send notification but have 3

    buttons in the form. The admin needs to enter the details before submit.

    Figure 4. 14: Form Edit / Resend Notification

  • 54

    4.3.8 Table List of Hadith Interface

    This table is for display the hadith from database into the system and make the

    admin can delete and update the hadith. Figure 4.15 shows the sketch interface for list

    of hadith.

    Figure 4. 15: Sketch interface for list of hadith

    Figure 4.16 shows the list of hadith in one table with three attribute which are

    hadith title, hadith content and content control.

  • 55

    Figure 4. 16: Table List of Hadith Interface

    4.3.9 Form Add Hadith and Form Edit Hadith Interface

    This form is to adding hadith into the database from system. Figure 4.17 shows

    the sketch interface for form adding hadith.

    Figure 4. 17: Sketch interface for form adding hadith

    Figure 4.18 below shows the form of adding hadith into database MySQL.

    There are two input box and one button for submit.

  • 56

    Figure 4. 18: Form Add Hadith Interface

    This form is to admin update the hadith details in case admin make a mistake

    when adding the hadith.Figure 4.19 below shows the sketch interface for form update

    hadith.

    Figure 4. 19: Sketch interface for Form update hadith

  • 57

    Figure 4.20 below shows the interface where there are two input box and two

    buttons for submit and go back.

    Figure 4. 20: Form Edit Hadith Interface

    4.3.10 Manage User Interface

    This interface for admin manages the registered user from the system. Figure

    4.21 shows the sketch interface for Admin manage user.

  • 58

    Figure 4. 21: Sketch interface for manage user

    Figure 4.22 shows the manage user interface which is the admin can only delete

    the user account. The attribute is name, email, description, gender, phone number and

    content control.

    Figure 4. 22: Manage User Interface

    4.4 Design Interface for Mobile Application

    4.4.1 Login Interface

    This form is needed it is because the user needs to login first before enter to

    home page. Figure 4.23 below shows the sketch login interface for I-Surau mobile

    application. Figure 4.24 below shows the login interface for I-Surau mobile application

    after development. The user needs to enter email and password to log in into the system.

  • 59

    Figure 4. 23: Sketch layout for login interface

    Figure 4. 24: Login Interface for I-Surau Mobile Application

  • 60

    4.4.2 Sign Up Interface

    This form is for user register new account from app to use for login. Figure 4.25

    shows the sketch layout for register user. Figure 4.26 below shows the sign-up interface

    for I-Surau mobile application. User need to enter name, email and password to sign-

    up. After sign-up, the page will go to login page.

    Figure 4. 25: Sketch Layout for register interface

  • 61

    Figure 4. 26: Sign-Up Interface for I-Surau Mobile Application

    4.4.3 Home Page Interface

    This page is for displaying all the activities that admin submits. Figure 4.27

    shows the sketch for home page interface. Figure 4.15 below shows the home page for

    I-Surau Ar-Raudhah Mobile App. This page will display about the activities data from

    MySQL. The latest activities will display at top.

  • 62

    Figure 4. 27: Sketch for main interface

    Figure 4. 28: Home Page Interface

  • 63

    4.4.4 Notification List Page Interface

    This interface is for listing the notification from MySQL. Figure 4.29 shows the

    sketch of notification list interface. Figure 4.30 below shows the list of notification that

    had been delivered from web-based I-Surau Ar-Raudhah Notification System. This

    interface only shows the title of notification and category.

    Figure 4. 29: Sketch of List notification interface

    Figure 4. 30: Notification List Page Interface

  • 64

    4.4.5 Gallery Activity Page Interface

    This page will display the notification details with more details included image

    and date. Figure 4.31 shows the sketch for gallery interface. Figure 4.32 and 4.33 shows

    the notification data with all data. This page will display, category, title, message and

    date of notification.

    Figure 4. 31: Sketch for gallery notification interface

    Figure 4. 32: Gallery Activity Page Interface

  • 65

    Figure 4. 33: Gallery Activity Page Interface

    4.4.6 List of Hadith Page Interface

    This page is for displaying all the hadith in text view. Figure 4.34 shows the

    sketch for list of hadith interface. Figure 4.35 below shows the list of hadith interface

    after development. In this page, all the hadith been displayed with scroll function.

  • 66

    Figure 4. 34: Sketch for list of hadith interface

    Figure 4. 35: List of Hadith Page Interface

  • 67

    4.4.7 User Profile Interface

    This profile interface is for user view their information and image. Figure 4.36

    shows the sketch for user profile interface. Figure 4.21 shows the user profile of

    registered user. At the top profile bar, the Full name display there. There are six text

    view that had been used for view the user data and two buttons for edit profile and sign

    out. User need to click edit profile for go to edit profile page and click sig out button

    for sig out account from app.

    Figure 4. 36: Sketch of User profile interface

  • 68

    Figure 4. 37: User Profile Interface

    4.4.8 Form Edit User Profile Interface

    This form is for user to edit their profile data and image. Figure 4.38 shows the

    sketch for edit profile interface. Figure 4.22 shows the form for user edit their profile.

    There are five input boxes which is username, email, description, gender and phone

    number. User can upload their photo from click the change photo text and select the

    photo from gallery.

  • 69

    Figure 4. 38: Sketch for edit profile interface

    Figure 4. 39: Form Edit User Profile Interface

  • 70

    4.4.9 The Notification Interface

    This interface will show when the notification arrives. Figure 4.23 shows the

    notification and when the user clicked the notification, the notification will be clear and

    redirect to notification list page.

    Figure 4.22: Notification Interface

  • 71

    4.5 Testing Analysis

    After the development of the system are already complete. This system will be

    test using two techniques of software testing which are black box testing and white box

    testing in order to examine the functionality of the system. Black box testing module

    involve login, sign-up, add activities, create notification. In white box testing it involve

    generate the report of notification send.

    4.6 Test Case

    A test case is a set of condition or variables under which a tester will determine

    whether a system works correctly or under test satisfies requirement. Process of

    developing test case may help to find problem in the requirement or design of an

    application.

    a) Test Case for Web Based System.

    4.6.1 Login

    This test case is for validate the input and login the admin account. Table 4.1

    shows the test case for admin login the I-Surau Ar-Raudhah Notification System.

    Table 4. 1: Test Case for Login

    Use case Login

    Description Admin login to access the function in the

    system.

  • 72

    Pre-condition Admin is on the login page

    Basic flow 1. Admin enters username and

    password

    2. Admin click button Login

    3. The System processes the login

    Alternative flow 1. Admin browse I-Surau Ar-

    Raudhah Notification System.

    2. Admin enters id and password

    3. Admin click button “Login”

    4. The system processes the login.

    Exception flow Admin enter wrong password

    Post-condition Admin successfully login and able to

    proceed to make services/ use the system

    function.

    Rules Admin who intended to send the

    notification must login first.

    4.6.2 Add Activities

    This test case is for validate the input data and submit the data into database.

    Table 4.2 shows the test case for add activities.

    Table 4. 2: Test Case Add Activities

    Use case Add Activities

    Description Admin want to add activities

  • 73

    Pre-condition Admin must successfully login into

    system

    Basic flow 1. Admin enter the activities data

    into input box.

    2. Admin click button to submit.

    Alternative flow Admin submit the form add activities

    Exception flow Admin may abandon the login into

    system

    Post-condition Admin on add activities form

    Rules Admin who intended to add the activites

    must login first.

    4.6.3 Edit Activities

    This test case is for test the form is function and update the table in database.

    Table 4.3 shows the test case for edit activities.

    Table 4. 3: Test Case Edit Activities

    Use case Edit Activities

    Description Admin want to edit the information

    about activities

    Pre-condition Admin must successfully login into

    system

  • 74

    Basic flow 1. Admin enter the activities data

    into input box.

    2. Admin click button to submit.

    Alternative flow Admin submit the form edit activities

    Exception flow Admin may abandon the login into

    system

    Post-condition Admin on edit activities form

    Rules Admin who intended to edit the

    activities must login first.

    4.6.4 Delete Activities

    This test case is for testing the delete button it is working or not and make sure

    the data that selected for delete is deleted from database. Table 4.4 shows the test case

    for add activities.

    Table 4. 4: Test Case Delete Activities

    Use case Delete activities

    Description Admin want to delete activities

    Pre-condition Admin must successfully login into

    system

    Basic flow 1. Admin click delete button.

    Alternative flow Admin successfully delete the activities

  • 75

    Exception flow Admin may abandon the login into

    system

    Post-condition Admin on dashboard page

    Rules Admin who intended to delete the

    activities must login first.

    4.6.5 Send Notification

    This test case is for testing send notification through form in the system. Table

    4.5 shows the test case for send notification to user.

    Table 4. 5: Test Case Send Notification.

    Use case Send notification

    Description Admin want to send notification about to

    user

    Pre-condition Admin must successfully login into

    system

    Basic flow 1. Admin enter the data about what

    to notify into input box.

    2. Admin click button to send

    notification.

    Alternative flow Admin submit the form to notify user

    Exception flow Admin may abandon the login into

    system

  • 76

    Post-condition Admin on add notification page

    Rules Admin who intended to add/send the

    notification must login first.

    4.6.6 Edit Notification

    This test case is for validate the input data and make sure the data is updated

    into database and can resend the notification. Table 4.6 shows the test case for edit

    notification and resend notification.

    Table 4. 6: Test Case Edit Notification.

    Use case Edit notification

    Description Admin want to edit notification and

    resend to user

    Pre-condition Admin must successfully login into

    system

    Basic flow 1. Admin click edit in list of

    notification table.

    2. Admin enter the data about what

    to notify into input box.

    3. Admin click button to resend

    notification or only save the

    notification into database.

  • 77

    Alternative flow Admin submit the form to edit or notify

    user

    Exception flow Admin may abandon the login into

    system

    Post-condition Admin on edit notification page

    Rules Admin who intended to edit notification

    must login first.

    4.6.7 Delete Notification

    This test case is for test the delete button for deleting notification. Table 4.7

    shows the test case for admin to delete notification from system.

    Table 4. 7: Test Case Delete Notification.

    Use case Delete notification

    Description Admin want to delete the notification

    Pre-condition Admin must successfully login into

    system

    Basic flow 1. Admin click delete button to

    delete notification.

    Alternative flow Admin click the delete button in the list

    of notification table

  • 78

    Exception flow Admin may abandon the login into

    system

    Post-condition Admin on notification page

    Rules Admin who intended to delete

    notification must login first.

    4.6.8 Add Hadith

    This test case is to test the input data is submitted to database and submit

    button is working. Table 4.8 shows the test case for admin adding the hadith into the

    system database using system.

    Table 4. 8: Test Case Add Hadith.

    Use case Add hadith

    Description Admin want to add hadith into system

    Pre-condition Admin must successfully login into

    system

    Basic flow 1. Admin enter the data into input

    box.

    2. Admin click button to add hadith

    and submit.

    Alternative flow Admin submit the form to add hadith

  • 79

    Exception flow Admin may abandon the login into

    system

    Post-condition Admin on hadith page

    Rules Admin who intended to add hadith must

    login first.

    4.6.9 Edit Hadith

    This test case is to make sure admin can edit the hadith and submit button is

    working. Table 4.9 shows the test case for edit hadith.

    Table 4. 9: Test Case Edit Hadith.

    Use case Edit hadith

    Description Admin want to edit hadith

    Pre-condition Admin must successfully login into

    system

    Basic flow 1. Admin enter the hadith title and

    hadith content to input box.

    2. Admin click button to submit.

    Alternative flow Admin submit the form to edit hadith

    Exception flow Admin may abandon the login into

    system

    Post-condition Admin on edit hadith page

    Rules Admin who intended to edit hadith must

    login first.

  • 80

    4.6.10 Delete Hadith

    This test case is to test the delete button for deleting hadith is working and the

    selected id is deleted from database. Table 4.10 shows the test case for admin to delete

    hadith.

    Table 4. 10: Test Case Delete Hadith.

    Use case Delete hadith

    Description Admin want to delete the hadith

    Pre-condition Admin must successfully login into

    system

    Basic flow 1. Admin click delete button to

    delete hadith.

    Alternative flow Admin click the delete button in the list

    of hadith table

    Exception flow Admin may abandon the login into

    system

    Post-condition Admin on hadith page

    Rules Admin who intended to delete hadith

    must login first.

  • 81

    4.6.11 Manage User

    This test case is to test the table is display the user information from database

    and delete button working for delete the selected user. Table 4.11 shows the test case

    for admin to manage user.

    Table 4. 11: Test Case Manage User.

    Use case Manage user

    Description Admin want to manage user

    Pre-condition Admin must successfully login into

    system

    Basic flow 1. Admin can view user profile at

    list of user table in manage user

    page.

    2. Admin can click delete button to

    delete user.

    Alternative flow Admin click the delete button in the list

    of user table

    Exception flow Admin may abandon the login into

    system

    Post-condition Admin on manage user page

    Rules Admin who intended to manage user

    must login first.

  • 82

    b) Test Case for Mobile Based System.

    4.6.12 Login

    This test case is to validate the credentials that user inputs and make sure the

    login process is working successfully. Table 4.12 shows the test case for user login the

    I-Surau Ar-Raudhah Notification System.

    Table 4. 12: Test Case for Login

    Use case Login

    Description User login to access the function in the

    system.

    Pre-condition User is on the login page and already

    have registered account.

    Basic flow 1. User enters email and password

    2. User click button Login

    3. The System processes the login

    Alternative flow 1. User browse I-Surau Ar-Raudhah

    Notification System.

    2. User enters email and password

    3. User click button “Login”

    4. The system processes the login.

    Exception flow User enter wrong password and email

    Post-condition User successfully login and able to

    proceed to make services/ use the system

    function.

  • 83

    Rules User who intended to use the function of

    the system must login first.

    4.6.13 Register

    This test case is to test user can input the data into input box and make sure

    button is working. Table 4.13 shows the test case for user register the I-Surau Ar-

    Raudhah Notification System.

    Table 4. 13: Test Case for Register

    Use case Login

    Description User register to create an account before

    login.

    Pre-condition User is on the register page.

    Basic flow 1. User enter the user information

    2. User click sign up to register

    Alternative flow 1. User click Create one at login

    page and redirect to register page.

    2. User enter their credentials like

    email, full name, password,

    description, gender and phone

    number.

    3. User click Register button.

    Exception flow User didn’t enter the credentials

  • 84

    Post-condition User successfully create an account

    before login.

    Rules User who intended to login must register

    first.

    4.6.14 View Notification

    This test case is to test user can view the notification. Table 4.14 shows the test

    case for user view notification.

    Table 4. 14: Test Case for View Notification

    Use case View notification

    Description User can view the all list of notification

    at notification page.

    Pre-condition User is on the notification page.

    Basic flow 1. User view notification

    Alternative flow 1. User click notification tab at

    bottom the app and go to

    notification page.

    2. User can view notification by

    selecting one from all notification

    in list.

    Exception flow User didn’t click the notification tab

    Post-condition User view the notification

  • 85

    Rules User who intended to view notification

    must login first.

    4.6.15 View Hadith

    This test case is to test the user can view hadith. Table 4.15 shows the test case for user

    view hadith.

    Table 4. 15: Test Case for View Hadith

    Use case View hadith

    Description User can view the all list of hadith at

    hadith page.

    Pre-condition User is on the hadith page.

    Basic flow 1. User view hadith

    Alternative flow 1. User click the hadith tab at the

    bottom app.

    2. User can view all list of hadith

    by scrolling.

    Exception flow User didn’t click the hadith tab

    Post-condition User view the hadith

    Rules User who intended to view hadith must

    login first.

  • 86

    4.6.16 View User Profile

    This test case is to make sure user can view their user profile. Table 4.16 shows

    the test case for user view their profile at profile page.

    Table 4. 16: Test Case for View User Profile

    Use case View user profile

    Description User can view the user profile.

    Pre-condition User is on the user profile page.

    Basic flow 1. User view user profile

    Alternative flow 1. User click profile tab at the

    bottom

    2. User view their profile picture

    and profile data.

    Exception flow User didn’t click the profile tab

    Post-condition User view their profile

    Rules User who intended to view user profile

    must login first.

    4.6.17 Edit User Profile

    This test case is to test the edit profile button is working and redirect to edit

    profile page and make sure the user can edit their profile and test the s