DIGITAL SIGN BOARD -A transpiring communication technology
Section1: INTRODUCTION
1.1 Project Description
Section2: LITERATURE SURVEY
2.1 Existing And Proposed System
2.2 Feasibility Study
2.3 Tools And Technologies Used
2.4 Hardware And Software Requirements
Section3: SOFTWARE REQUIREMENT SPECIFICATION
3.1 Functional and Non-functional Requirements
Section4: SYSTEM DESIGN
4.1 System Perspective
Section5: DETAILED DESIGN
Use Case Diagram
Sequence Diagrams
Collaboration Diagrams
Activity Diagram
Database Design
Section6: IMPLEMENTATION
Section1: Introduction
Digital signage is a transpiring communication technology. The digital sign is just an electronic display that presents info, advertising or other targeted messages in the form of graphics, videos or text.
"Digital signage is a network of remotely placed customizable displays that can be controlled electronically using a computer from one place, allowing the content being played to be modified accordingly for the most targeted users". LCD displays, LED displays, or digital projector screens, etc. can be used to implement a Digital signage system. This kind of digital signage systems can be set up in retail stores, schools, colleges, airports, hospitals, research organizations, restaurants, shopping centres, train stations and resorts to dynamically provide content. Here the content is targeted to the viewers and it can be in the form of graphics, text, animation, video and other web content. Any content can be displayed at a specific time.
The deployment and the successful integration of a digital signage system is the main encounter for many organizations. In organizations like hospital, education and research organizations, many proceedings occur on a daily basis and different people will attend these events. So there is a persistent necessity to guide the people about what actions are scheduled, where they occur, and guidelines to where the event is going on. Notifying the probable viewers in these organizations through conservative signalling have numerous drawbacks and disadvantages which comprises of the financial overheads of printing, distribution and elimination of paper posters; environmental costs of these posters; the stationary content of the posters which communicates static text and images.
1.1 Description
Smart Signage is a Cloud-based Digital Signage System. With Smart Signage, it is easy to entertain your viewers with images, videos, animations, text messages and web-based contents. These messages can be user submissions or dynamically updated content from sources anywhere in the Internet.
The main objective of the system is as follows:
To design and develop a software solution, to be capable of controlling, scheduling and displaying different contents on digital displays. Such displays can be remotely placed and can accessed from anywhere using a web-browser.
The system will display information as scheduled with a Scheduler using which the content to be played can be dynamically updated. Each display that is configured will have an attached android box and a local storage containing both the info to be presented and the local schedule list of what content the display has to present.
Section2. Literature
2.1 Existing and Proposed system
Existing System Overview:
In may use cases the scope of the proposed system is valid. The environment of educational institutions, retails stores and similar use cases are taken to describe the existing system.
Schools and colleges have dozens of notice boards on walls to display school related information such as results, events, displaying timetables, displays of students work and giving information on seminars, etc.
In libraries, museums, hotels, resorts, restaurants, hospitals, airports, shops and such public areas, there are advertising posters and notice boards giving information and other details.
A4 or A3 sized papers, printed with content are used as traditional posters. When the content on the printed poster needs to be changed, you then need to add the content in a new poster, reprint it and physically replace the posters on the notice boards.
To track the proof/stat of which poster or piece of paper was displayed in which notice board and when it was displayed is totally impossible.
Even if there are digital displays set up to overcome the above stated points, it is still managed with pen drives or other storage devices to play the content and change it and based on time which includes more human dependencies.
Proposed System Overview:
Smart signage is about using small and/or large screen displays to present dynamic and animated graphics as posters which have different content scheduled at varying times and can be updated from a web-browser of a computer which is internet connected or a
networked computer system which is placed somewhere in the building or outside the building.
LCD screen connected to an android box and the proposed cloud based Smart Signage solution is said to be a typical example of the proposed system.
A hotel’s reception area with Smart Signage scheduled display screen is a classic example of the proposed system. Where this display can be used to welcome the guests and to display the features or attractions of the hotel. Along with information on which Lounge/Hall a particular event is taking place, Direction to the hall’s location, advertisement if desired, a RSS news feed, etc. Hotel Informational and Videos in the primary area of the display. Event names and Directions to the halls in the secondary area of the display. Welcome text and RSS feed can be scheduled as a scrolling text on the bottom part of the screen.
2.2 Feasibility Study
The feasibility study was carried out in 3 different scenarios including an educational institute, a hotel and a hospital. Following off the shelf components were used in order to quickly, cost effectively carry out the experiments
1) A Computer Screen / 21” Television screen
2) Android Box
3) Open source digital signage solution
4) Web browser based signage application
2.3 Tools and Technologies
Smart Signage Scheduler has been developed using following technologies
Programming Language : PHP
UI Design : HTML and CSS
Database : MySQL
API Design : JSON over HTTP
2. 4 Softare and Hardware requirments
Software Requirements:
Following software requirements are needed on both the server side and the client side for running a complete Smart Signage solution.
Server Side:
Operating System : Linux (Ubuntu-12.04 LTS or above)
Webserver : Apache2
Programming : PHP5, HTML5, JavaScript & CSS3
Database : MySQL 5 or above
Client Side:
Operating System : Android 4.4 or above
Application : Smart Signage Android app
Version : v2.1
Hardware Requirements:
Following hardware requirements are needed on both the server side and the client side for running a complete Smart Signage solution.
Server Side:
Cloud Platform : Microsoft Azure
Virtual Machine/Instance: Compute Optimized
D-series or above - (Scalable)
Min Requirements : 1 Core, 3.5GB RAM, 80GB Local SSD
Section3: Software requirement specification
Users play an important role in every project. In smart signage everything that is built is directly targeting users.
The Smart signage solution has 3 kinds of users
Admin
User
Observer / Viewer
3.1 Functional and Non functional
3.2 Functional Requirements
Functional requirement of the system includes the following,
Support virtual environment.
Allow uploading multiple files at once.
Discover, configure, manage, and monitor WizBoxes (Media Players) on the network.
Provide offline playback support to scheduled content.
Instant updates of scheduled content has to be passed on to the app.
Allow dynamic scheduling, i.e., scheduling of different contents to play automatically at different times of the day, in different days of the week, repeatedly, on different displays.
Create and design screen layouts, template designs. These layouts are divided into regions which should be populated using a double click.
Create and manage web based contents and configure on-screen Really Simple Syndication (RSS) or static text tickers.
View proof of play statistics for layouts scheduled on Smart Signage displays.
The system should be scalable. i.e., the system should be capable of handling any number of displays.
Scheduler and Content Server
Emergency Messages – Layouts can be scheduled with appropriate content and priority so that it can be scheduled to take priority over the content played at specific times or when external events occur such as emergencies.
Archive uploaded files in the content server.
Smart Content Distribution – Scheduler tells the players what files are scheduled for it to play, then each player will intelligently download the files assigned to it and delete the files form its local library when they are unassigned.
Web-based simple user interface.
Create campaigns for scheduling which will comprise of multiple layouts which individually has text messages, videos, images, or local videos assigned to them.
System should be capable of storing the proof of play reports which comprises of the log history of played media content by day/hours, on which displays.
Digital Media Player
Android based application.
Full screen video or screen zoning.
Support integration with Scheduler. Media Players should be able to download content directly from the Content Server.
Support integration with third party media servers such as Dropbox, Google drive.
Graphics, Videos, and static text or RSS tickers.
Support of built-in infrared receiver. The player should be equipped with a respective remote controller.
Peripheral extensions, such as extendable storage, USB.
MPEG-2 and MPEG-4, H.264, and VC-1 hardware decoding.
Should provide minimum one HDMI (v1.3a) video interface.
Should provide minimum one VGA video interface.
Should provide minimum one 10/100/1000Mbps Ethernet.
Support of wireless 802.11a/b/g/n, dual-band.
Minimum 32 GB built-in Flash storage.
IP-network addressable and upgradeable.
Displays
LED / LCD digital display (16:9).
Support of Full 1080p resolution.
High-Definition Multimedia Interface (HDMI) input.
Built-in speakers.
Remote Control.
3.3 Non Functional Requirements
Usability:
Usability refers to the ease of usage that the users will obtain. The Scheduler UI should be designed to be simple and easily usable even by a naive user. Using simple terminologies in the module names will ease the usability. The system should have a well-designed UI with icons to specify status of the display’s schedule states, such as, System is up to date, System is downloading content, System has never checked with the server.
System should also be capable of providing details on which displays are online currently and when a display last accessed the Scheduler or the Content server.
Security:
Security is a major concern for users in every application. It applies with Smart Signage too. Users of Smart Signage should feel free to upload the content to the Media Library. The media content uploaded by a user should be accessible only by that user and those contents should be accessed only by the displays for which it is scheduled. Similarly the user should have control on the displays for which he has permission to access and should be able to assign a media content only to those displays.
Reliability:
Reliability is very important for the successful business. Smart Signage Scheduler should be hosted on a reliable cloud platform so that the server is accessible all the time. Smart Signage solution is internet based, hence a reliable internet connection with a decent bandwidth is required to upload contents using a PC. And the client application should also be connected to a reliable internet connection, only then it will be capable of downloading content or syncing content that is scheduled.
Efficiency:
Efficiency again plays an important role in Smart Signage solution. The scheduler is used to schedule content on displays based on time. So whenever there is a new schedule and the API call from the application in the android box happens, the scheduler should
provide efficient results. This process enlightens the application with what it has to play. Hence the Scheduler should provide results appropriately for the application to run efficiently.
Verifiability:
The system should be tested in various conditions and in various use scenarios to verify the stand of the product. It should be deployed as an actual solution providing system only after verification by users in the testing phase. Verifiability with respect to the system includes verifying that the system is delivering results as desired.
Capacity:
The Content Server should be capable of storing large files and streaming it to the media player when requested. The Media player should be capable of displaying content of varying sizes. Similarly the Scheduler should be capable of handling multiple requests from different media players at the same time.
Portability:
The system that is proposed is capable of portability. When customers need the system to be implemented in a dedicated server or for a dedicated purpose, then the system will be capable of supporting such needs.
Expandability:
The proposed system is developed with plan for expandability where in, the code designed is capable of reuse. Similarly, the existing proposed system is capable of handling Android based clients but it can be expanded to support other client applications such as iOS and Windows.
Section4: System Design
System Perspective
Smart Signage is a solution for the publishing of dynamic and on-demand signage using digital media displays deployed locally over the IP network. The digital signage application is a media management and publishing application that creates a playlist with a set of content that is required to be published to a single or group of WizBoxes in the network.
The Smart Signage system is centrally controlled by Smart Signage Scheduler. Media and messages are sent to the displays with minimal control at the endpoint. SSS’s administrators control what is shown and when it is shown. The connection between the SSS and the WizBox is an HTTP connection, used for delivering instructions to the WizBox from the SSS.
Server holds all contents or media that is referenced by the SSS. All such streaming requests issued to the WizBox are serviced from this server.
Flash application content, messaging, and live or pre-recorded video can be presented on the displays. Video can be displayed in a subset of the screen with Flash content around it, allowing for messaging and images to be placed around the borders of the screen.
The context diagram describes the context of the overall system. It describes the users in a system, the interaction between modules in the system. The digital signage system can be used in schools or colleges for displaying Educational videos. In hospitals for displaying Hospital information and facilities provided in the hospital, Emergency safety instructions, along with advertisements if desired. Content Management is the Media Library which can be used for Video-on-Demand storing and streaming purposes. Media Management is where the media content is scheduled and decided how it should be presented. Managing Staff are the people who take care of the above tasks of Content Management and Media Management. System Administrator is responsible for setting up the entire system and to create users in the system, assign roles, set permissions to the users. Observers or Viewers are the targeted audience for whom the content is presented using Digital displays.
Section5: Detailed Design
Use Case Diagram
Use case diagram demonstrations the use cases and the actors present in the system. The three actors of Smart Signage system are Observer, User and Admin.
The Observer is one of the actors of the Smart Signage system. The Observer plays the key role in the system as the whole system revolves around displaying relevant content to the observer. The observer is the actual actor to whom the user schedules contents and targets it to.
The user of the Smart Signage system can Add Media, Manage Displays assigned to him, Schedule content on displays – which includes, Assigning media to layouts, Deleting/Removing assigned content, Assigning a layout to display. And user can view stats, which comprises of the proof of play records.
The Admin of the Smart Signage system can perform all the tasks that a user can perform. The admin can also Manage Users – which includes, Create Users, Assigning roles, and providing permissions to users. Manage Displays – which includes, Creating display groups, assigning them to user. Manage Layouts – which includes, Creating Layouts, Managing layouts and assigning them to displays.
Sequence diagram
The sequence diagram of the Smart Signage system describes the sequential flow of processing in the Smart Signage system. Firstly the Admin has to create users, so that they can work with the Smart Signage system. The admin can perform all the fuctions that a user can do. Meanwhile Admin can also Create Layouts and Add Screens to the Smart Signage Scheduler. The admin also assigns them to appropriate users. The uses then can Add Media and Assign them to Layouts and can also Schedule those layouts to play on displays.
Section6: Implementation
Code Snippet
Mobile API:
<?php
$con=mysql_connect("localhost","root","define53") or die("could not connect to db");
mysql_select_db("xibo");
$macid=$_GET['mac_id'];
$date=date('Y-m-d H:i:s');
$DisplayID=$_GET['screen_id'];
/*************************************************/
$i=1000;
$current = date('Y-m-d H:i:s');
$t1 = strtotime($current);
$diff=0;
$defaultlayoutid=0;
$screen_time = mysql_query("SELECT FROM_UNIXTIME(lastaccessed), defaultlayoutid, MediaInventoryStatus FROM display WHERE displayid=$DisplayID", $con);
while($time = mysql_fetch_array($screen_time)){
$api = $time[0];
$t2 = strtotime($api);
$diff = $t1 - $t2;
$defaultlayoutid=$time[1];
$mediaStatus=$time[2];
}
if($macid=='')$diff=350;
/* Hard coded to get result when called from Browser */
if($diff > 300 || $mediaStatus != 1){
if($macid!='')/* To check if not a call from browser */
$display_update=mysql_query("UPDATE display SET lastaccessed=$t1, MacAddress='$macid', MediaInventoryStatus=1 where displayid=$DisplayID", $con);
$delete = mysql_query("DELETE FROM contents_mobileapi WHERE screen_id=$DisplayID" , $con);
$userID=1;
$DisplayGroupID=0;
$display_result = mysql_query("SELECT DisplayGroupID FROM lkdisplaydg WHERE DisplayID=$DisplayID", $con);
while($row = mysql_fetch_array($display_result)){
$DisplayGroupID=$row['DisplayGroupID'];
$campaign_result = mysql_query("SELECT FROM_UNIXTIME(sd.FromDT), FROM_UNIXTIME(sd.ToDT), s.CampaignID, s.DisplayOrder, s.eventID FROM
schedule_detail sd INNER JOIN schedule s on sd.eventID=s.eventID WHERE sd.DisplayGroupID=$DisplayGroupID order by s.DisplayOrder", $con);
while($row = mysql_fetch_array($campaign_result)){
$FromDT=$row[0];
$ToDT=$row[1];
$CampaignID=$row[2];
$eventID=$row[4];
if ($FromDT<=$date && $ToDT>=$date)
{
$layout_result = mysql_query("SELECT * FROM lkcampaignlayout WHERE CampaignID=$CampaignID", $con);
while($row = mysql_fetch_array($layout_result)){
$LayoutID=$row['LayoutID'];