Proj-2014-2015-Ext XBMC/SRS

=1.  Introduction=

1.1 Purpose of the requirements document
This Software Requirements Specification (SRS) identifies the requirements for the Kodi(former XBMC) extension development project. This document is a guideline about the functionalities offered and the problems that the system solves.

1.2 Scope of the product

 * The purpose of this project is to allow a user, playing files with Kodi, to have an experience of mobility while watching a film or listening to music, thanks to numerous computers with Kodi on it and sharing of files over the network.


 * The code used in this project is extensible and open-source.

1.3 Definitions, acronyms and abbreviations

 * NFC : Near Field Communication is a technology that enables devices to establish radio communication with each other by touching them together or bringing them into proximity
 * XBMC : former name of the media center software Kodi, in this document references to XBMC or Kodi designe the same software : Kodi

1.4 References

 * Page of the project : Extensions XBMC Sujet 2015
 * Last year project : Extensions XBMC Sujet 2014

1.5 Overview of the remainder of the document
The rest of the SRS examines the specifications of the Extensions XBMC 2015 project in details. Section two of the SRS presents the general features of the FollowME extension. Section three outlines the detailed, specific and functional requirements, system and other related requirements of the project. Supporting information about appendices is provided in Section three.

=2.  General description=

2.1 Product perspective
Play video or music on various screen/Kodi application according to the location of the main user.

2.2 Product functions
This Kodi Addon called FollowMe allow user to change screen while watching a movie or listening to music with Kodi, with minimum interaction and resuming the media. Furthermore, the remote control Android application enable user to add host for the remote only taging NFC tags. It also allow user to write his own tags with host information.

2.3 User characteristics
The user does not need to be familiar with coding or computer science. The only requierement is to be able to share files on a network and to install Addon for Kodi.

2.4 General constraints

 * Possece a kinect for the kinect mode
 * The device used as remote controller have to :
 * run on Android 4.0+
 * be NFC compatible
 * have wi-fi antenna (mostly all the android devices)

2.5 Assumptions and dependencies

 * The android device used as remote controller have a wi-fi access to the network in order to control the Kodi instances
 * The Kodi instances are runned on computers on the same network with shared library contaning files that will be resumed.

=3.Specific requirements, covering functional, non-functional and interface requirements=
 * document external interfaces,
 * describe system functionality and performance
 * specify logical database requirements,
 * design constraints,
 * emergent system properties and quality characteristics.

3.1 Requirement X.Y.Z (in Structured Natural Language)
Requirement : same version of Kodi (former XBMC) installed on the computers used as screens, our Addon installed on these computers, our version of the remote control application installed on an android device with NFC technology and Wi-Fi, a network between computers and android device, kinect sdk installed on the computers used with kinect mode, NFC tags, files shared on the network

Function: allow user to change screen while watching a movie or listening to music with Kodi, with minimum interaction and resuming the media

Description: an android application and a Kodi Addon to

Inputs: options in the Addon, options in the Android application, number of person in front of a screen, "position" of the user

Source: keyboard or mouse in the Addon option menu in Kodi, ouch screen on the Android device, kinect, NFC tags for the "position"

Outputs: video or sound, depending of the media played

Destination: user(s)

Action:
 * play media using network shared files
 * resume play of media on various screen
 * automatically add host on the remote control Android applicaion thanks to NFC tags

Non functional requirements:

Pre-condition:
 * materials conditions:
 * Android device with Wi-Fi and NFC
 * NFC tags
 * computers with screens
 * network
 * kinect (optionnal)


 * Software conditions:
 * netwotk between coputers used as screens and android device
 * shared media files on the network between machines
 * same version of Kodi on every computers used as screeens
 * our Kodi Addon installed on the computers used as scrrens
 * our remote control android applciation installed on the Android device
 * kinect sdk installed on computer(s) where the kinect(s) is(are) connected

Post-condition:

Side-effects:

=4. Product evolution=


 * Use of Bluetooth instead of/with the NFC tags
 * Find a way to avoid installing Kinect sdk to use the Addon
 * Play (a movie or a music) on the remote between two screens using an elegant method

=5. Appendices=

5.1. SRS structure
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard. References:
 * http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx
 * http://en.wikipedia.org/wiki/Software_requirements_specification
 * IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998

5.2 Sources

 * The other groups who work on Kodi/XBMC extensions
 * www.microsoft.com/en-us/kinectforwindows
 * developer.android.com
 * www.python.org
 * mirrors.xbmc.org/docs/

5.3 Licensing Requirements
XBMC extension (or more precisly FollowMe) will be released under a GNU/GPL licence