SRS - SmartProjector: Difference between revisions

From air
Jump to navigation Jump to search
 
(42 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Introduction =
= Introduction =


== Purpose ==
== Purpose of the requirements document ==
This Software Requirements Specification (SRS) identifies the requirements for project StartAir Safe. In case of a open source project, we must present the requirement to others potential contributors. This document is a guideline about the functionalities offered and the problems that the system solves.
This Software Requirements Specification (SRS) identifies the requirements for project SmartProjector. In case of a open source project, we must present the requirement to others potential contributors. This document is a guideline about the functionalities offered and the problems that the system solves.

== Scope of the product ==

There are a lot of projectors in Polytech Grenoble. But they are old and technology changes fast. As a consequence, the projectors only use VGA ports which are out of date. With this project, we want to be able to connect to projectors wirelessly while adding interactions between students and professors in a classroom. Therefore, it fits in SmartClassRoom's frame.

== Glossary ==

*Server : a micro-computer connected to a displayer.
*Client : any computer with the software.


== Document conventions ==
== Intended audience ==
== Additional information ==
== Contact information/SRS team members ==
== References ==
== References ==
* [[Projets-2015-2016-SmartClassRoom]]
* [[GStreamer]]


== Overview of the remainder of the document ==
= Overall Description=

In the remainder of the document, the general description of the software will be exposed. The requirements (functional and non-functional) will be specified in another part.
The document will end with the product evolution, the appendices and the index.

= General Description=
== Product perspective ==
== Product perspective ==

The main aim of our project is to put projector in wireless to solve problems about cables. In this case, we develop a software able to connect to a server link to a displayer and share your screen.

== Product functions ==
== Product functions ==

== User classes and characteristics ==
Basically, this product will allow laptops without VGA ports or adapter to connect to a displayer by wifi.
Moreover, it'll provide useful interactions between a teacher and his students during a lessons.


Each of the following points should make part of the project :
*Multi display with multi users (different types of displays)
*Multi display with one user (one screen for each app)
*Zoom/Unzoom on a screen with a click
*Check if students are here / presence dashboard
*Drop files into a screen to share it with the screen owner.
*Quizz : questions on screen / students answer on their computers
*feedback about the lesson.
*save courses + transcription (link with some other projects)

== User characteristics ==

There are 2 types of users.

Teacher : only one in the room. He can manage the display and launch actions.

Students : they can cast they screen, react to launched actions and give feedback about the lesson.

== Operating environment ==
== Operating environment ==

== User environment ==

== Design/implementation constraints ==
The software is developped under MAC OSX EL Capitan 10.11.3 and Ubuntu 15.10.

== General constraints ==

We are limited by to latency of '''Wifi Campus''' wireless network. We test on our laptop with a normal power of calculate. At the end we try to put the application on Raspberry Pi 2 or equivalent.

== Assumptions and dependencies ==
== Assumptions and dependencies ==


We used to framework into our project : '''GStreamer''' and '''Qt5'''. We must include user version into our application.

= 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.

== Requirement ==

=== Multi display with multi users (different types of displays) ===
'''Function''': Sharing your screen on a displayer via our application.

'''Description''': Launch application and enjoy.

'''Inputs''': Flow from a desktop.

'''Source''': Your laptop desktop.

'''Outputs''': Displayer (projector, TV…).

'''Destination''': Displayer into the same classroom.

'''Action''': Sharing your screen.

'''Non functional requirements''': Be connected to the stick.

'''Pre-condition''': Server is on.

'''Post-condition''': Server stay on.

'''Side-effects''': Reduce quality of screen sharing due to reach the maximum debit can capte the stick.

=== Multi display with one user (one screen for each app) ===
'''Function''': Display chosen application windows on the same displayer screen.

'''Description''': Launch application, click on windows which you want to share and enjoy.

'''Inputs''': Flow from a desktop : one per chosen application windows.

'''Source''': Your laptop desktop.

'''Outputs''': Displayer (projector, TV…).

'''Destination''': Displayer into the same classroom.

'''Action''': Sharing some windows.

'''Non functional requirements''': Be connected to the stick.

'''Pre-condition''': Server is on.

'''Post-condition''': Server stay on.

'''Side-effects''': Reduce quality of screen sharing due to reach the maximum debit can capte the stick, depends of the number of sharing windows.

=== Zoom/Unzoom on a screen with a click ===
'''Function''': Optimize view of sharing screens by zoom on focus one.

'''Description''': In the master view, select the screen that you want to increase/reduce size.

'''Inputs''': Capture of mixing flow from stick server.

'''Source''': Flows from stick server.

'''Outputs''': Nothing change from flows.

'''Destination''': Displayer into the same classroom.

'''Action''': Change size of each sharing screens to increase/reduce one.

'''Non functional requirements''': Log as a master, there are more than one people connected.

'''Pre-condition''': Be a master and be connected to the stick.

'''Post-condition''': Stick stays on.

'''Side-effects''': Reduce size of others received screens.

=== Check if students are here / presence dashboard ===
'''Function''': Able to take the roll.

'''Description''': If each present students are connected to the stick, the master can easily take the roll.

'''Inputs''': A ''csv'' file.

'''Source''': List from server which contains each connected clients.

'''Outputs''': Complete a ''csv'' document by adding a column.

'''Destination''': A file to list present students.

'''Action''': Check into a database who have to be presents.

'''Non functional requirements''': Database contains students foreach classroom foreach hour.

'''Pre-condition''': Have a database access, be the master, be connected.

'''Post-condition''': Stick stays on.

'''Side-effects''':

=== Drop files into a screen to share it with the screen owner ===
'''Function''': Sharing documents easy by drag and drop.

'''Description''': The master can drag a file from outside of sharing window to a screen of one student to start transfert.

'''Inputs''': Dragged file.

'''Source''': List of clients from server.

'''Outputs''': A window shows the progression of transfert.

'''Destination''': One connected client.

'''Action''': Drag a file to transfert it to a client.

'''Non functional requirements''': More one clients in addition of the master.

'''Pre-condition''': Be master.

'''Post-condition''': The document is transferred.

'''Side-effects''':

=== Quizz : questions on screen / students answer on their computers ===
'''Function''': The master can make quizz and subtends have to answer.

'''Description''': Watch on the attention of students by create interaction.

'''Inputs''': Client written responses.

'''Source''': A dialogue box on master's application.

'''Outputs''': Grid of reponses.

'''Destination''': Displayer in the same room.

'''Action''': Master asks questions, popup on clients which a dialogue box to answer.

'''Non functional requirements''': More than one client connected.

'''Pre-condition''': Be master.

'''Post-condition''': Anonymous response.

'''Side-effects''':

=== Feedback about the lesson ===
'''Function''': Ask questions during the lesson, or ask explications.

'''Description''': You can make a notification on the displayer to inform speaker you have questions, comments.

'''Inputs''': A dialogue box.

'''Source''': Written text.

'''Outputs''': A notification on displayer and on master's application (if there is one).

'''Destination''': Displayer into the same classroom.

'''Action''': Write on an dialogue box and publish your questions.

'''Non functional requirements''': Select only correct ask, no insults…

'''Pre-condition''': Be connected as sample client to server stick.

'''Post-condition''': Delay before next questions, managed by the master.

'''Side-effects''': Anonyme questions for everyone expect the master.

=== Save courses + transcription (link with some other projects) ===
'''Function''': Have a written lesson after it.

'''Description''': Use project [[Sous-titre_en_temps_r%C3%A9el_d%27un_cours| Sous-titre d'un cours en temps réel]] to transcrit talk to a written report.

'''Inputs''': Sounds catch by a microphone link to server stick.

'''Source''': Transcription by application of other project.

'''Outputs''': A simple text in a Latex document.

'''Destination''': Foreach clients a copy of Latex document.

'''Action''': Just listen the speaker.

'''Non functional requirements''': Service from [[Sous-titre_en_temps_r%C3%A9el_d%27un_cours| Sous-titre d'un cours en temps réel]] application available.

'''Pre-condition''': Server is on, microphone is connected.

'''Post-condition''': Server stays on.

'''Side-effects''':

= Product Evolution =

== Device ==

We are limited by the power of the card. We might make performance tests to find the right needs and adjust the stick. Nowadays we use Raspberry Pi 2, it must be not enough, we have latency and a no fluid visual.


== Network ==
= External Interface Requirements =
== User interfaces ==
== Hardware interfaces ==
== Software interfaces ==
== Communication protocols and interfaces ==


We are also limited by '''Wifi Campus'''. All ports are blocked by UGA. Nowadays we pass through a phone to use it as a router. To improve our application, we can make a folder to administration, to unlocked some ports, and connected directly the stick to a RJ45 wall outlet.
= System Features =
== System feature A ==
=== Description and priority ===
=== Action/result ===
=== Functional requirements ===
== System feature B ==


= Appendices =


= Other Nonfunctional Requirements =
== Performance requirements ==
== Safety requirements ==
== Security requirements ==
== Software quality attributes ==
== Project documentation ==
== User documentation ==


= Index =
= Other Requirements =
== Appendix A: Terminology/Glossary/Definitions list ==
== Appendix B: To be determined ==

Latest revision as of 06:34, 5 April 2016

Introduction

Purpose of the requirements document

This Software Requirements Specification (SRS) identifies the requirements for project SmartProjector. In case of a open source project, we must present the requirement to others potential contributors. This document is a guideline about the functionalities offered and the problems that the system solves.

Scope of the product

There are a lot of projectors in Polytech Grenoble. But they are old and technology changes fast. As a consequence, the projectors only use VGA ports which are out of date. With this project, we want to be able to connect to projectors wirelessly while adding interactions between students and professors in a classroom. Therefore, it fits in SmartClassRoom's frame.

Glossary

  • Server : a micro-computer connected to a displayer.
  • Client : any computer with the software.

References

Overview of the remainder of the document

In the remainder of the document, the general description of the software will be exposed. The requirements (functional and non-functional) will be specified in another part. The document will end with the product evolution, the appendices and the index.

General Description

Product perspective

The main aim of our project is to put projector in wireless to solve problems about cables. In this case, we develop a software able to connect to a server link to a displayer and share your screen.

Product functions

Basically, this product will allow laptops without VGA ports or adapter to connect to a displayer by wifi. Moreover, it'll provide useful interactions between a teacher and his students during a lessons.


Each of the following points should make part of the project :

  • Multi display with multi users (different types of displays)
  • Multi display with one user (one screen for each app)
  • Zoom/Unzoom on a screen with a click
  • Check if students are here / presence dashboard
  • Drop files into a screen to share it with the screen owner.
  • Quizz : questions on screen / students answer on their computers
  • feedback about the lesson.
  • save courses + transcription (link with some other projects)

User characteristics

There are 2 types of users.

Teacher : only one in the room. He can manage the display and launch actions.

Students : they can cast they screen, react to launched actions and give feedback about the lesson.

Operating environment

The software is developped under MAC OSX EL Capitan 10.11.3 and Ubuntu 15.10.

General constraints

We are limited by to latency of Wifi Campus wireless network. We test on our laptop with a normal power of calculate. At the end we try to put the application on Raspberry Pi 2 or equivalent.

Assumptions and dependencies

We used to framework into our project : GStreamer and Qt5. We must include user version into our application.

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.

Requirement

Multi display with multi users (different types of displays)

Function: Sharing your screen on a displayer via our application.

Description: Launch application and enjoy.

Inputs: Flow from a desktop.

Source: Your laptop desktop.

Outputs: Displayer (projector, TV…).

Destination: Displayer into the same classroom.

Action: Sharing your screen.

Non functional requirements: Be connected to the stick.

Pre-condition: Server is on.

Post-condition: Server stay on.

Side-effects: Reduce quality of screen sharing due to reach the maximum debit can capte the stick.

Multi display with one user (one screen for each app)

Function: Display chosen application windows on the same displayer screen.

Description: Launch application, click on windows which you want to share and enjoy.

Inputs: Flow from a desktop : one per chosen application windows.

Source: Your laptop desktop.

Outputs: Displayer (projector, TV…).

Destination: Displayer into the same classroom.

Action: Sharing some windows.

Non functional requirements: Be connected to the stick.

Pre-condition: Server is on.

Post-condition: Server stay on.

Side-effects: Reduce quality of screen sharing due to reach the maximum debit can capte the stick, depends of the number of sharing windows.

Zoom/Unzoom on a screen with a click

Function: Optimize view of sharing screens by zoom on focus one.

Description: In the master view, select the screen that you want to increase/reduce size.

Inputs: Capture of mixing flow from stick server.

Source: Flows from stick server.

Outputs: Nothing change from flows.

Destination: Displayer into the same classroom.

Action: Change size of each sharing screens to increase/reduce one.

Non functional requirements: Log as a master, there are more than one people connected.

Pre-condition: Be a master and be connected to the stick.

Post-condition: Stick stays on.

Side-effects: Reduce size of others received screens.

Check if students are here / presence dashboard

Function: Able to take the roll.

Description: If each present students are connected to the stick, the master can easily take the roll.

Inputs: A csv file.

Source: List from server which contains each connected clients.

Outputs: Complete a csv document by adding a column.

Destination: A file to list present students.

Action: Check into a database who have to be presents.

Non functional requirements: Database contains students foreach classroom foreach hour.

Pre-condition: Have a database access, be the master, be connected.

Post-condition: Stick stays on.

Side-effects:

Drop files into a screen to share it with the screen owner

Function: Sharing documents easy by drag and drop.

Description: The master can drag a file from outside of sharing window to a screen of one student to start transfert.

Inputs: Dragged file.

Source: List of clients from server.

Outputs: A window shows the progression of transfert.

Destination: One connected client.

Action: Drag a file to transfert it to a client.

Non functional requirements: More one clients in addition of the master.

Pre-condition: Be master.

Post-condition: The document is transferred.

Side-effects:

Quizz : questions on screen / students answer on their computers

Function: The master can make quizz and subtends have to answer.

Description: Watch on the attention of students by create interaction.

Inputs: Client written responses.

Source: A dialogue box on master's application.

Outputs: Grid of reponses.

Destination: Displayer in the same room.

Action: Master asks questions, popup on clients which a dialogue box to answer.

Non functional requirements: More than one client connected.

Pre-condition: Be master.

Post-condition: Anonymous response.

Side-effects:

Feedback about the lesson

Function: Ask questions during the lesson, or ask explications.

Description: You can make a notification on the displayer to inform speaker you have questions, comments.

Inputs: A dialogue box.

Source: Written text.

Outputs: A notification on displayer and on master's application (if there is one).

Destination: Displayer into the same classroom.

Action: Write on an dialogue box and publish your questions.

Non functional requirements: Select only correct ask, no insults…

Pre-condition: Be connected as sample client to server stick.

Post-condition: Delay before next questions, managed by the master.

Side-effects: Anonyme questions for everyone expect the master.

Save courses + transcription (link with some other projects)

Function: Have a written lesson after it.

Description: Use project Sous-titre d'un cours en temps réel to transcrit talk to a written report.

Inputs: Sounds catch by a microphone link to server stick.

Source: Transcription by application of other project.

Outputs: A simple text in a Latex document.

Destination: Foreach clients a copy of Latex document.

Action: Just listen the speaker.

Non functional requirements: Service from Sous-titre d'un cours en temps réel application available.

Pre-condition: Server is on, microphone is connected.

Post-condition: Server stays on.

Side-effects:

Product Evolution

Device

We are limited by the power of the card. We might make performance tests to find the right needs and adjust the stick. Nowadays we use Raspberry Pi 2, it must be not enough, we have latency and a no fluid visual.

Network

We are also limited by Wifi Campus. All ports are blocked by UGA. Nowadays we pass through a phone to use it as a router. To improve our application, we can make a folder to administration, to unlocked some ports, and connected directly the stick to a RJ45 wall outlet.

Appendices

Index