Version Control and Development Languages

Version Control

We opted to use Git for our version control. This decision was made because Git is by
far the most widely-used and documented option.

We used SourceTree to manage our Git repositories. It has an extremely helpful
graphical user interface, and excellent GitFlow functionality.

Development Languages 

There were various options for programming languages that could be used in the
project such as ASP.NET, PHP and JAVA EE. Even though each framework is
well-developed and has a wide range objects and libraries, PHP was chosen. This is
because PHP easily integrates with HTML and CSS and it is easy to host. (DuBois,2015)
MySQL was chosen over an Oracle relational database management system because
it is open source and has a very good support.

Moreover, it was decided that the JSON format will be used to transmit the structured
data between the server and web application. It was decided that the UML will be used
to visualize and therefore understand better, the relationships between different
components of the system.

References:
DuBois, MB 2015, ‘Learning PHP, MySQL, JavaScript, CSS & HTML5: a step-by-step guide to creating dynamic Websites. 3rd ed’, Choice: Current Reviews For Academic Libraries, 52, 5, p. 845, Supplemental Index, EBSCOhost, viewed 29 April 2015.

The differences between a scenario and a use case

Use cases are a technique for capturing the functional requirements of system.
Use cases work by describing the typical interactions between the users of
a system and the system itself, providing a narrative of how a system is used.

Rather than describe use cases head-on, I find it easier to sneak up on them
from behind and start by describing scenarios. A scenario is a sequence
of steps describing an interaction between a system and a user.
So if
we have a Web-based on-line store, we might have a Buy and Product scenario that
would say like this:

The customer browses the catalog and adds desired items to the shopping basket.
When the customer wishes to pay, the customer describes the shipping and credit
card information and confirms the sale. The system checks the authorization on
the credit card and confirms the sale both immediately and with a follow-up email.

This scenario is one thing that can happen. However, the credit card authorization
might fail, and this would be a separate scenario. In another case, you may have
a regular customer for whom you don’t need capture the shipping and credit card
information, and this is a third scenario.

All these scenario are different yet similar. The essence of their similarity is that
in all these three scenarios. the user has the same goal: to buy a product. The user
doesn’t always succeed, but the goal remains. This user goal is the key to user cases:
A use case is a set of scenarios tied together by a common user goal (Fowler, 2004)

scenario diagram

http://www.inf.unibz.it/~ryzhikov/HCI/hci_02.pdf

References: 

Fowler, M 2004, UML Distilled : A Brief Guide To The Standard Object Modeling Language / Martin Fowler ; [Forewords By Cris Kobryn … [Et Al.]], n.p.: Boston : Addison-Wesley, c2004., University of Southampton Library Catalogue, EBSCOhost, viewed 28 April 2015.

REST API

As Small.World was designed to be relatively simple to integrate into other systems,
a method of communicating with the coordinator was required. A REST API was chosen for this as REST makes use of standard HTTP protocol for sending commands (via the message body)
and requesting information (Masse, 2011), allowing developers to work with a widely used and familiar protocol rather than one tailor made for Small.World. It was decided that commands themselves would be formatted as JavaScript Object Notation (JSON),chosen because it is lightweight and used in many other web services.

Jobs Functionality

The REST API can request a single job (specied by its ID). It can also request a collection of all jobs (or all job IDs) currently in the system (Maximilien  et al, 2007). The REST API can request a timestamp indicating the last time that any job was added or deleted(but not modified). There is also a method that returns a collection of all jobs which have been modified since a specified time.The REST API can also call a method to delete a single job, specified by its ID.

Agents Functionality

The REST API can request a single Agent by specifying its ID. It can also request a collection of all Agents currently in the database (not just the currently connected Agents). There is a method which returns a collection of all jobs currently assigned a specified Agent (on any of its cores). There is also a method which allows the REST API to manually delete an Agent from the system. This will force the Agent to disconnect(if it is currently connected), will unassign all of its currently allocated jobs, and will remove the Agent (and all of its cores) from the database. For a specific Agent, the REST API is able to request the number of jobs which are currently allocated to that Agent’s cores, and is able to request a collection including those jobs. It can also request a boolean indicating whether or not the Agent is currently online.

Languages Functionality

The REST API can request a collection of all languages currently supported by Small.World and its Agents. An assumption is made that all Agents support the same languages, since language support is determined by Small.World.

References:

Masse, M. (2011). REST API design rulebook. ” O’Reilly Media, Inc.”.

Maximilien, E. M., Wilkinson, H., Desai, N., & Tai, S. (2007). A domain-specific language for web apis and services mashups (pp. 13-26). Springer Berlin Heidelberg.

Blog Summary

The table below presents blog posts logically classified and organised according to the mark scheme.

Post Categories List

Blog Posts

Welcome and project brief

Welcome and Project Brief – Neil Amos

Analysis of existing similar tools

It’s more than Facebook – Online Social Networks with Interesting Features – Miroslaw Jaroszak

Related academic work

Are you trustworthy ? – Muna

Game Theory and Recommendation systems – Muna

Branding and Design – Edmund Baird

The differences between a scenario and a use case – Jingyuan li

Links to related news items in the tech media

Let’s Get Rid of All That Noise – Miroslaw Jaroszak

Surveys and focus groups

Requirements Gathering Survey – Muna

Mockups and Ideas

Task Allocation – Muna

Project Schedule-Gantt Chart – Awezan

Project Process –  Miroslaw Jaroszak

Mockups – Edmund Baird

Scenarios and Personas

Scenarios – Jingyuan Li

Tech demos

System Requirements – Miroslaw Jaroszak

Small World Prototype – Muna

System Modeling – Muna

UML diagrams

Class Diagram – Awezan

Use Case Diagram for SmallWorld – Awezan

Overview of standards and protocols

REST API – Jingyuan Li

Location Determining via SMS – Miroslaw Jaroszak

Version Control and Development Languages – Jingyuan Li

Social / Ethical considerations

Ethical Challenges Might Face SmallWorld – Awezan

Design and Accessibility Considerations – Edmund Baird

Say goodbye to the awkward moments – Muna

Next Antisocial person ? – Muna

Economic context

Cashing in on success: Advertising or Subscription? – Neil Amos

Making Small.World Pay – Neil Amos

Related Technology

Geosocial Networking – Awezan

Scenarios

A scenario provides the description of the use’s interaction with the application.
For the Small.World, let us assume the following roles:
Bob -a student who is studying the Master of Science programme in England.
He has a flatmate named Alice comes from Holland in the university.
He also has a good friend named Tess in his class.
Alice -Bob’s flatmate.
She expects to meet her parents in Amsterdam after the end of the second semester.
Tess -Bob’s classmate.
She has a nice plan about traveling to Amsterdam during the easter holiday.
System: The Small.World.

The scenarios take place in the following manner:

1.Bob enters the website of the Small.World.
2.Bob registers by his facebook account at the first time.
3.Bob allows the Small.World to search and add all his friends who use this application.
4.Bob customizes the Small.World’s layout.
5.Alice downloads the mobile app of the Small.World.
6.Alice logs in using her Google+ email account for free.
7.Alice relates her Google+ account to her facebook account.
8.Alice selects keep her personal information secret.
9.Tess receives a recommodation message from Bob about the Small.World.
10.Tess downloads the Small.World app into her phone following the link in the text message.
11.Tess logins in with her facebook account.
12.Tess puts her first review about movies by her phone.
13.The Small.World tracks Alice’s movement when she comes back to Amsterdam.
14.Tess checks-in at her new location when she travels to Amsterdam.
15.The Small.World displays Tess’s current location in a multi-layered map.
16.Bob receives a push notification-”Your friends Alice and Tess are both in Amsterdam,would you like to reccommand them to be friends?” from the Small.World.
17.Bob shares the basic information about Alice and Tess in the Small.World.
18.Bob reccommands Alice and Tess to add each other through the Small.World.
19.Alice adds Tess into her friends’ list.
20.Alice says Hello to Tess in the chat section.
21.Alice reviews Tess’s past posts.
22.Bob hosts a three-people’s video conference to discuss Tess’s travel plan in Amsterdam.
23.Tess adds more personal information in the Small.World app, such as personal hobbies and preference on food and places.
24.Alice finds a video about Anne Frank Huis and shares with Tess to recommend tess
to travel together.
25.Tess receives a sound notification from Small.World.
26.Tess accepts Alice’s recommendation.
27.Tess posts a review of locations and events.
28.Alice shares Tess’s review.
29.Alice makes an appointment with Tess in the comment area of the review to travel
together at 7th, April.
30.Bob tags Alice and Tess on a same map.
31.Tess turns on the GPS tracking.
32.The Small.World displays the current location of Tess in both online and offline mode.
33.The Small.World tracks Tess’s location in real time by GPS.
34. Tess receives an alert on presence of Alice within 5 miles proximity.
35.Alice selects a restaurant from the advertisements in Small.World app.
36.Tess gives a good feedback for the restaurant through the app.