Friday, October 28, 2016

Riddle Game Documentation

I. Introduction

SDLC also known as Software Development Life Cycle is actually a process that was defined by steps or tasks to be performed in the development process. Usually represented by conceptual models. Conceptual Models vary with each other with pros and cons.

Listed below are example of existing SDLC Models.

1. Waterfall Model


Description
The waterfall Model is a linear sequential flow. In which progress is seen as flowing steadily downwards (like a waterfall) through the phases of software implementation. This means that any phase in the development process begins only if the previous phase is complete. The waterfall approach does not define the process to go back to the previous phase to handle changes in requirement. The waterfall approach is the earliest approach that was used for software development.


Advantage
Easy to explain to the user· Structures approach.· Stages and activities are well defined· Helps to plan and schedule the project· Verification at each stage ensures early detection of errors / misunderstanding· Each phase has specific deliverables

Disadvantage
Assumes that the requirements of a system can be frozen· Very difficult to go back to any stage after it finished.· Little flexibility and adjusting scope is difficult and expensive.· Costly and required more time, in addition to detailed plan.


2. V-Shaped Model

Description
It is an extension for waterfall model, Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. The major difference between v-shaped model and waterfall model is the early test planning in v-shaped model.
Advantage
Simple and easy to use.· Each phase has specific deliverables.· Higher chance of success over the waterfall model due to the development of test plans early on during the life cycle.· Works well for where requirements are easily understood. Verification and validation of the product in early stages of product development
Disadvantage
Very inflexible, like the waterfall model.· Little flexibility and adjusting scope is difficult and expensive.· Software is developed during the implementation phase, so no early prototypes of the software are produced.· Model doesn’t provide a clear path for problems found during testing phases.· Costly and required more time, in addition to detailed plan



3. Prototyping Model


Description
It refers to the activity of creating prototypes of software applications, for example, incomplete versions of the software program being developed. It is an activity that can occur in software development. It used to visualize some component of the software to limit the gap of misunderstanding the customer requirements by the development team. This also will reduce the iterations may occur in waterfall approach and hard to be implemented due to inflexibility of the waterfall approach. So, when the final prototype is developed, the requirement is considered to be frozen.
Advantage:
Reduced time and costs, but this can be disadvantage if the developer loses time in developing the prototypes· Improved and increased user involvement
Disadvantage:
Insufficient analysis· User confusion of prototype and finished system· Developer misunderstanding of user objectives· Excessive development time of the prototype· Expense of implementing prototyping
All of this models are good but I choose Prototyping Model for my proposed Riddle Game App. Riddle Game App is a hybrid application project which utilizes Phonegap / Apache Cordova Framework. 

With limited time for development. Prototyping Model is my personal choice to maximize time and reduce risk of project failure. 


II. Related Apps

I come across with this apps from Google Play Store similar to my Riddle Game App.
Note: During the time of writing all links below are valid and may subject to change without prior notice.

1. Little Riddles - Word Game

The game revolves around riddles playable in offline mode only. Player progresses with points for every corresponding correct answer.

2. Riddles with Answer
The game is pretty similar in terms of interface and game play. Player can also view the answer which i think compromises the very reason of adding competitiveness to the game. 

3. Pinoy Bugtong
The game is actually very much similar offers hint and playable offline mode only. Users may share the game in facebook social network. It offers point based system for every correct answers with no countdown timer at all. Proudly Pinoy made for Filipino.


III. Development Life Cycle

1. Identification Phase
On this phase,the following details was captured to streamline identification of the entire project scope.

1.1 Target Audience / User 
The project is intended for educational and brain gyming use. Targeting audience especially the pinoy ages 7 years old and above. 

1.2 Project Scope
The development of the project is limited only to 2 platforms. 
A stand-alone Hybrid Mobile App capable of connecting online for score rankings.
A web app for viewing both capable online mode only. 

Both platform doesn't apply access restriction based on country, IP Addresses. 
The platform is open for everyone for free.

1.3 Function Scope
The project is limited only on the development of the following functions identified below.

Hybrid Mobile Platform
a. Add, Edit User Profile.
b. Selection of Game Difficulty Criterion.
c. Function to share game information in Social Network not limited to Facebook, Google +.
d. Function to save,update user information and scores and logs.

Browser Platform 
a. Function to select and view global player ranking scores.
b.View announcements and app information.


2. Design Phase

I used gomockingbird wireframe tool to design the whole UI and UX of Riddle Game (Bugtong App). Here is an illustration for UI Design in Figure 1.

Figure 1. UI Design using Wire Frame Tool ( Please click image below to enlarge )



Figure 2. Use Case Diagram for Hybrid App ( Please click image below to enlarge )



Figure 3. Flowchart Hybrid App ( Please click image below to enlarge )

The flowchart represents the overall game design of proposed hybrid mobile app. The app will check the connectivity to our server and validates user based on mobile device information. The game will launch series of random questions taken out from its local storage. For as long as the player's lives doesnt reach 0, the game continues to add a point for every correct answer. On the other hand, if the game ends, the app will automatically updates player score to our server (if online) and displays final score. 





Figure 4. Data Model ( Please click image below to enlarge )

In order to create a stand alone Riddle Game. It is important to consider utilizing local storage database. Here below is an example of Data Model for our database design. Please refer to illustrations below.


Illustration: Mobile App Data Model


In this illustration, a single table named mobile will hold our riddle questions , choices and actual answer columns. This model will be applied using SQLite Database (Mobile Devices like Android uses SQLite as preference)



Illustration: Web Server Data Model

In this illustration, 2 tables will be used to hold our player information and player's score data. MYSQL Database will be used for our Web Server Application.





3. Development Phase

The development of Riddle App requires 3 separate requirements which involves utilization of the following tools: 

1. Phonegap /Cordova. (Hybrid Mobile App) 
2. Configuration of Personal Web Server
3. Development of Responsive Web Application  (Browser)


I. Phonegap/ Cordova Development 
In order to build a Riddle Application for Mobile. I use 3 common native functionalities present in most android phone,IOS,Windows platform.

Plugin sim is used to request personal information about user's phone.

Plugin splashscreen will be used to provide loading screen while app starts

Plugin Sqlite will be used for local data storage.

Other requirements:

1. Bootstrap Framework for HTML ,CSS for responsiveness
2. JQuery Library and widgets



2. Configuration of Personal Web Server
In order to build our own server the following resources are required.
Must be configuration for production release to avoid data compromise.

1. MYSQL Database or other variants of database (optional)
2. PHP Server-side script
3. Apache Server / Nginx / Node
4. Router / Firewall Configuration
5. Internet Connection depends on ISP provider 

3. Development of Responsive Web Application  (Browser)
In order to build our browser platform. We need the following:

1. Bootstrap Framework for HTML ,CSS for responsiveness
2. JQuery Library and widgets
3. PHP Server-side script



4. Prototyping Phase

During the prototyping phase. The application itself involves versioning updates to patch up unwanted bugs and malfunctioning behavior. Changes to the old version of app depends on the user interaction and comments after testing. A prototype ends only if end user requirements are met. Below was an old version of a hybrid app.

Illustration of an old version of hybrid app. (Please click image below to enlarge)


Subversioning uses the same conceptual model below to resolve software issues as fast as possible. 



5. Testing Phase

During Testing Phase. Hybrid App requires the following procedure to ensure stability of application. 

1. Development requires Software Emulator to test and actual Smart Phone.
2. APK release are tested and must be tested by other users.

Below are list of test taken in tabular format including a co-worker who tested the app.


App Name (Released) Tester's Name Date Remarks / Suggestions
Bugtong v 1.0.0 Sandy Oct.17,2016
  • unable to proceed if no internet access.
  • add countdown timer for every question.


Bugtong v 1.0.1 Sandy Oct. 18,2016
  • buttons are non-responsive at some point during selection of possible answer.
  • add player ranking
Bugtong v 1.0.3 Sandy Oct 19,2016
  • change background color and app name
  • add difficulty level for competitiveness
  • change app name to Riddle Games 
  • overhaul existing code base/ recreate app
Riddle Game v 1.0.0 Dianil Oct 21,2016
  • Game is acceptable and responsive to offline or online game play


6. Deployment Phase

During the development phase a tabular format below illustrates how deployment was done without supervising team on hand.

Major Task Owner Completion Date
Completing deployment preparations 
Updates the deployment plan installs, configures, and tests hardware and software components.
DevOps Oct 22,2016
Creating operations procedures 
Creates procedures and defines checkpoints to help the operations and monitor system
DevOps Oct 24,2016
Deploying the solution 
Deploys the core technology and completes site deployments.
DevOps Oct 26,2016
Stabilizing the deployment 
Work toward a predefined state of completion for stable solution 
DevOps Oct 28,2016
Transferring ownership to operations 
Handing over responsibility of ownership
DevOps Oct 29,2016
Closing the Deploying Phase 
Completion of Project 
DevOps Oct 29,2016

7. Maintenance Phase

During maintenance phase. A scheduled plan is required for compliance to ensure server stability and updates.

Private Server Scheduled Maintenance: Between 11:00 PM - 7:00PM.
Status: Offline

Server Availability: Between 7:00 PM - 11:00 PM.
Status: Online
All Day
Hybrid App Cumulative Updates: Game Database Weekly
Web Platform Cumulative Updates: Future Add-ons Monthly







Thursday, October 27, 2016

Riddle Games


Riddle Games is a guessing game targeted for young vibrant filipinos intended to test their mind,word analysis using filipino language called Bugtong or Riddles.

Game Features:
+ Enable Players to select Level of Difficulty
+ Share Players score to Social Network and Bugtong Community
+ Compete Online Score Rankings (Server Online)
+ Playable Offline (without internet connection)
+ No Cash Shop Purchase

Price:
The Game is FREE and always will be.

Website:
http://bugtong.ddns.net
https://www.facebook.com/BugtongPinoy



Screenshot:
Game Screenshot and preview








































Video:




About the App:

Riddle Games is 100% Pinoy game intended for educational purpose to promote and preserve Filipino Bugtong. Unlike traditional riddle games this app allows players to compete for score ranking and share it to social bugtong community.