You are on page 1of 60

Project Report on

Smart Notice Board

Submitted by

Subhalaxmi Behera (2121229025)


Milan Dixit (2001229095)
Rudra ranjan Dash (2001229116)

Project Report submitted in partial fulfillment of the requirements for the award of degree
of B.Tech. in Computer Science & Engineering under
DRIEMS University

2020 - 2024

Under the Guidance of

Prof. Niva Tripathy


Asst. Professor, Dept. of CSE

Department of Computer Science and Engineering


School of Engineering & Technology, Tangi, Cuttack-754022
Department of Computer Science & Engineering
School of Engineering and Technology, Tangi, Cuttack - 745022

Certificate

This is to certify that, this is a Bonafide Project report, titled “Smart Notice Board”,done
satisfactorily by, Subhalaxmi Behera (2121229025), Milan Dixit (2001229095), Rudra
ranjan Dash (2001229116) in partial fulfillment of requirements for the degree of
B.Tech. in Computer Science & Engineering under DRIEMS University.

This Project report on the above-mentioned topic has not been submitted for any other
examination earlier before in this institution and does not form part of any other course
undergone by the candidate.

Prof. Niva Tripathy Prof. Surajit Mohanty


Asst. Professor, Dept. of CSE Asso. Professor & Head
Guide Dept of CSE
ACKNOWLEDGEMENT

We express our indebtedness to our guide Prof. Niva Tripathy, of the Computer Science &
Engineering department who spared her valuable time to go through manuscript and offer her
scholar advice in the writing. Her guidance, encouragement and all out help have been
invaluable to us. There is short of words to express our gratitude and thankfulness to her.

We are grateful to all the teachers of Computer Science & Engineering department, for their
encouragement, advice and help.

At the outset, we would like to express our sincere gratitude to Prof. Surajit Mohanty,
H.O.D of Computer Science & Engineering department for his moral support extended
towards us throughout the duration of this Project.

We are thankful to our friend Biswajit Mohapatra (2121229016) who have helped us in this
project and also thankful to all our friends who helped us directly or indirectly for the success of
this Project.

Subhalaxmi Behera (2121229025)


Milan Dixit (2001229095)
Rudra ranjan Dash (2001229116)
Department of Computer Science & Engineering
ABSTRACT

Today’s fast-paced digital era, effective communication and information dissemination have
become paramount in both educational and corporate settings. Traditional notice boards are no
longer sufficient to meet the demands of modern information sharing. This is where the concept
of a "Smart Notice Board using a Standee" emerges as a revolutionary solution. This innovative
system combines the convenience of a traditional standee with cutting-edge technology to
create a dynamic and interactive communication platform. The Smart Notice Board offers an
engaging and efficient way to convey information, announcements, and updates to a diverse
audience. The essence of this solution lies in its versatility and accessibility. Unlike static notice
boards, the Smart Notice Board can display a wide range of content, from text and images to
videos and real-time data. This adaptability ensures that information remains fresh, engaging,
and relevant. Moreover, the integration of cloud-based technology enables remote content
management, facilitating instant updates and real-time communication. Users can control and
customize the content displayed on the notice board through a user-friendly interface, whether
from a computer or a mobile device. In educational institutions, businesses, public spaces, and
more, the Smart Notice Board using a Standee promises to transform the way information is
shared and received. This report explores the design, implementation, and benefits of this
innovative solution, shedding light on its potential to enhance communication in various
environments.

Keywords: Smart Notice Board, Content Scheduling, Multimedia Display, Digital Signage
Standee, Real-time Updates, Wireless Display System.
CONTENTS

TOPIC PAGE NO.


LIST OF FIGURES I
CHAPTER 1 1-6
1 INTRODUCTION 1
1.1 LITERATURE SURVEY 2
1.2 PROBLEM DEFINITION 4
1.3 MOTIVITION FOR WORK 5
1.4 OBJECTIVE OF THE PROJECT 5
CHAPTER 2 7-22
2 SYSTEM DESIGN AND ANALYSIS 7
2.1 PROPOSED MODEL 7
2.2 FLOWCHART 8
2.3 REQUIREMENTS 8
2.3.1 LCD DISPLAY 8
2.3.2 ANDROID MOTHERBOARD 10
2.3.3 LDVS (LOW VOLTAGE DIFFERENTIAL 12
SIGNALING)
2.3.4 SPEAKERS 13
2.3.5 POWER CABLE 14
2.3.6 IR CONTROL WIRE 15
2.3.7 IR REMOTE CONTROL RELAY MODULE 16
2.3.8 T-CON BOARD 16
2.3.9 REMOTE 17
2.3.10 CONVERTER 19
2.3.11 INVERTER 20
2.3.12 SCREEN-HOLDING STAND 21
CHAPTER 3 23-30
3 TECHNOLOGY USED 23
3.1 BACK-END TECHNOLOGIES 23
3.1.1 NODE.JS 23
3.1.2 FIREBASE 23
3.2 FRONT-END TECHNOLOGIES 24
3.2.1 HTML 24
3.2.2 CSS 26
3.2.3 JAVASCRIPT 28
3.3 TECHNOLOGY USED FOR ANDROID APPLICATION 30
CHAPTER 4 32-34
4 PROCESS TO DISPLAY THE NOTICE 32
4.1 STEPS FOR THE WEBAPP 32
4.2 STEPS FOR THE ANDROID APP 34
CHAPTER 5 35-51
5 CODE SNIPPETS 35
CONCLUSION 52
REFERENCES 53
LIST OF FIGURES
Fig 2 SYSTEM DESIGN 7
Fig 2.2 FLOWCHART 8
Fig 2.3.1 LCD DISPLAY 8
Fig 2.3.2 ANDROID MOTHERBOARD 10
Fig 2.3.3 LOWVOLTAGE DIFFERENTIAL SIGNALING 12
Fig 2.3.4 SPEAKERS 13
Fig 2.3.5 POWER CABLE 15
Fig 2.3.6 INFRARED CONTROL WIRE 15
Fig 2.3.7 IR REMOTE CONTROL RELAY MODULE 16
Fig 2.3.8 T-CON BOARD 16
Fig 2.3.9 REMOTE 18
Fig 2.3.10 CONVERTER 19
Fig 2.3.11 INVERTER 20
Fig 2.3.12 SCREEN-HOLDING STAND 22
Fig 4.1(a) PROCESS TO DISPLAY THE WEBAPP FRONT SCREEN 32
Fig 4.1(b) PROCESS TO SELECT THE NOTICE 33
Fig 4.1(c) PROCESS TO DISPLAY THE NOTICE 33

Fig 4.2(a) SELECTING APP FROM APP LIST 34


Fig 4.2(b) NOTICE VIEW ON THE SCREEN 34
CHAPTER 1
1 INTRODUCTION

A Notice Board is a place where people can leave public messages, for example, to advertise
things to buy or sell, announce events, or provide information. To make a notice much easier
in a paperless community as the world tends to graduate into that line of interaction. [1]. Notice
boards are often made of a material such as cork to facilitate addition and removal of paper
messages or it can be placed on digital devices such as computers, phones. The main aim of
this paper is to make information much easier in a paperless community [2]. The inclination
of making the manually controlled things automatic has become a common practice these days
and make our life better. Making things automatic reduces burden on the humans. The time
utilized and the effort used in manually controlled processes is much higher than the automated
systems. In many institutes, we still use manual way of putting the important notices, class
examination schedules, results, and any type of image etc. in the notice boards. This manual
system needs more effort and time to get the written announcements from the faculty and then
put it on the notice board. In this paper, we have developed a Smart Notice Board System [3].
Smart phones are playing very important role in human life. They are easy to use, promising
and durable devices that help in performing today tasks. The proposed system uses either
Bluetooth or Wi-Fi based wireless serial data communication in displaying messages on a
manually digital notice board. [4]. There are lots of possibilities for them to miss out messages.
To overcome such problem, we implement an Android Display for the Screen [5]. We can see
notice boards in various places like educational institutions, railway stations, shopping malls,
bus stations, offices etc. and these boards are managed manually. It is a long process to put up
notices on the notice board. Nowadays a separate person is needed to stick that information on
the notice board. It is a place where people can leave public messages, for example, to advertise
things to buy or sell, announce events, or provide information. It will lead to loss of time as
well as usage of manpower. We know that information counts are endless. So, there is a usage
of a huge amount of paper for displaying those endless counts of the information. The problems
faced by the wooden or conventional type notice boards are resolved by the implementation
of our digital notice board. It will bring an advanced means of passing notices around in the
world in a much easier and efficient way. Due to the popularity of the internet, we choose the
internet as a medium for transferring information. The Android monitors are now available
with all facilities which is required to display anything easily in an effective way. Our primary

Page | 1
aim is to get more people’s attention on the display. By the usage of high-definition display
devices, people can get more attention on the notice board rather than conventional notice
boards. The conventional wireless notice board can display only texted messages. Since in
Educational institutions the majority of information given from the higher authorities is in the
form of text format hence displaying these types of information makes our system more user-
friendly. Due to the utilization of the internet, the sender can send a message anywhere in the
world.

1.1 LITERATURE SURVEY

Notice board is a necessary thing in any public places, but conveying various messages day to
day manually is a difficult process, a separate person is needed to take care of these notice
boards. Hence electronic notice boards are used to convey the message which provides
multiple users to update the messages in the notice board with security. In this paper we study
the various technologies included in electronic notice board by reviewing different researches
done over time, which uses GSM and Wi-Fi module to convey the notice and is displayed in
the screen. The wireless notice board is enhanced to display the information through an android
application where the message is received by the Bluetooth device at the display unit, it is then
sent to the microcontroller which further displays the notice sent on the Android display. When
using the GSM technology, the GSM module is used instead of the microcontroller. [6]

Notice Board is the basic thing in any organization or institution. This paper deals with digital
notice board in which there is an android application that is connected with Android display.
The main feature of this application is scheduling of notices on the basis of priority and backup
facility The wireless notice board is designed using inbuild Android OS connected to it which
displays the message through a notification on the mobile. Here we study how the display
shows the notice, update, delete and send the notice according to the time and date set by the
user and as per the scheduling the notice is displayed on the notice board. [7]

Now a day, the advertisement process is done digitally. Hence, scrolling Android displays are
used to represent in the form of notice boards by the well-developed educational institutes.
GSM means Global System for Mobile Communication. Due to this international roaming
capability of GSM messages are sent and received from any part of the world. In this paper we
study about an electronic notice board with GSM modem at the receiver end. Here we send

Page | 2
message to the GSM module using a mobile phone. Then the GSM module receives or accepts
the message that is sent and transfers the message to the microcontroller. Now the
microcontroller displays the sent message on Android display. [8]

Notice board is one of the important things in any organization or public places like bus stops,
railway stations, parks etc. GSM is widely used to facilitate the communication for displaying
messages and this paper deals with advanced notice board incorporating the GSM. Here we
study the operation of notice board based on microcontrollers ATMEG A32 programmed in
assembly language. A SIM300 GSM modem with a sim card is connected to the ports of
microcontroller. SIM300 GSM receives an SMS sent by a registered number at the receiver’s
end. IC MAX32 is the level shifter through which the GSM is connected to the microcontroller.
Therefore, the message is fetched into the microcontroller. The message in the microcontroller
is now displayed on an electronic notice board equipped with LCD display. [9]

In today’s world, displaying message and advertisement is an important part of


communication. Recently wireless communication has announced its arrival on a bigger
platform. The whole world is becoming familiar and gaining knowledge about smart phone
technology. In this paper, by introducing the concept of wireless technology, our
communication is made more efficient and faster. With greater efficiency, the displaying of
messages on the notice board is done with a smaller number of errors and maintenance. [10]

In this world, everyone needs a comfortable life. Humans have researched different
technologies for the sake of their lives. In today’s world, people are becoming accustomed to
easy access to the information, whether it is through the internet or television. People want to
be informed and kept updated with the latest events happening all over the world. Here, a
system which will enable people to wirelessly transmit notices to the notice board is proposed.
This is done using Wi-Fi or through the data access over a mobile phone. Here, only an
authorized person can access the notice board. It requires less time due to fat data transmission
through Wi-Fi, less cost and saves resources like humans, ink and majorly paper. [11]

GSM network is used widely either for calling or sending an SMS. Places like Colleges,
Railway Stations, Share Markets need urgent notices to be displayed. This needs to be in real-
time which is why we need an appropriate type of notice board. Here, in this project, a remote
notice board is used with a modem connected to it. When the user sends messages in SMS

Page | 3
format, it is displayed on the notice board. The message is received by the modem which is in
the display system. It updates the display according to the message. The system will check for
source number for every message received. If the source number is correct, then the controller
will display the message. [12]

1.2 PROBLEM DEFINITION


The notices were written on wooden notice board hanging on the wall to display
announcements. The notice board used in various places like bus station, colleges, railway etc.
In old notice board there have some difficulties such as need large places to stick more notices,
paper needed to print, need to install at a reachable place. The goal of Digital notice board is
to provide the access to notices and articles quickly not only within the college premises, also
wherever and whenever they need to know. Electronic display board is fast gaining acceptance
and application in different spheres of life which include educational institutions, public utility
places. It also allows to present the particular topic by the help of video and audio for which it
can be a more effective way to understand the announcement for spectators.

Problem Statement :1
Develop a digital notice board system for a university campus that allows administrators to
easily broadcast announcements, events, and important information to students and faculty in
real-time.
Problem Statement :2
Create a digital notice board solution for a corporate office environment, enabling HR
departments to efficiently communicate company updates, policies, and events to employees.
Problem Statement :3
Design a digital notice board platform for public spaces like libraries, museums, and
community centers to display relevant information, news, and upcoming events to visitors.
Problem Statement :4
Build a digital notice board app for schools that enables teachers and school administrators to
share homework assignments, exam schedules, and other school-related information with
students and parents.
Problem Statement :5
Design a digital notice board software for a residential apartment complex to inform residents
about maintenance schedules, community events, and security notices.

Page | 4
Problem Statement :6
Develop a cloud-based digital notice board platform that can be easily customized and
deployed by organizations of various sizes and industries to enhance internal communication.

1.3 MOTIVATION
In a rapidly evolving technological landscape, embracing this digital solution becomes not just
an option but a necessity. This system can streamline and modernize the dissemination of
information, ensuring that real-time updates, announcements, and notifications reach their
intended audiences promptly. Moreover, by replacing traditional paper-based notice boards, it
aligns with sustainability goals by reducing paper waste.[4] The dynamic and visually
engaging nature of digital displays also captures the attention of viewers more effectively, thus
increasing the likelihood of critical messages being noticed. Customization options, data-
driven insights, remote management capabilities, and long-term cost-effectiveness further
underscore the advantages of adopting this technology. In doing so, organizations and
institutions position themselves at the forefront of efficient communication, gaining a
competitive edge in an increasingly digital world. Smart notice board may become the most
useful assets for Smart city, Office, School, Colleges, Business organizations and all other
places to display the noticeremotely.[2]

1.4 OBJECTIVES
The main objective is to design this advanced wireless notice board is to display Notice in a
different way by adding extra digital formats. It also can be used for display the message in
video and animation formats which can be a simplified process to announce a complicated
matter. This Digital screen can show multiple events at a time and also by interchanging
themselves in a defined time interval. A person can manage more than one notice board Screen
by sitting at the server. It can be also managed by the Smart phones which takes comparatively
minimum time from the traditional Wooden notice board system.

1. Clear Visibility: Ensure that the information displayed on the digital notice board is easily
readable and visible from a reasonable distance.

2. Responsive Design: Design the notice board to adapt to different screen sizes and
orientations, making it compatible with various devices.

Page | 5
3. Attractive Layout: Create an appealing and organized layout that effectively presents
information, including headings, images, and text.

4. Multimedia Support: Enable the display of multimedia content, such as images, videos, and
animations, for more engaging notices.

5. Font and Color Consistency: Maintain consistency in fonts, colors, and styles to enhance
readability and branding.

6. Content Rotation: Implement a feature to rotate through different notices or announcements


at scheduled intervals.

7. Date and Time Display: Include the date and time to ensure viewers know when each notice
was posted or last updated.

8. Emergency Alert Display: Prioritize emergency alerts and notifications to ensure they are
prominently displayed.

9. Customizable Themes: Allow users, especially administrators, to choose from different


themes or templates to suit their organization's branding.

10. Interactive Features: Incorporate interactive elements, such as touchscreens or interactive


buttons, for user engagement.

11. Scheduled Content: Provide the capability to schedule when specific content should be
displayed, such as event details or daily specials.

12. User-Friendly Interface: Create an intuitive interface for both administrators and viewers
to navigate and interact with the digital notice board.

13. Accessibility Features: Ensure that the display is accessible to individuals with disabilities,
including support for screen readers and high-contrast modes.

Page | 6
CHAPTER 2

2 SYSTEM DESIGN AND ANALYSIS

Fig-2: System Design

2.1 PROPOSED MODEL


In this System we will use to access Notice or Contents from external storage devices as well
as by using internet server. The Android motherboard is playing a vital role in this system. It
collects the data, process it and manage it while showing in the Screen. We will use a remote
to change the content according to our use. Designing an Android TV system involves creating
a user-friendly interface optimized for large screens and remote controls. The core components
include the Lean back library for UI design, content providers to fetch media, and Media
Session for playback control. The system should support TV-specific interactions like D-pad
navigation and voice search. Compliance with Google's Android TV guidelines is essential for
app approval on the Play Store. Integrating features like recommendations and voice
commands enhances the user experience. Accessibility and focus management are also critical
for usability. Lastly, keep app updates and maintenance in mind for long-term success

Page | 7
2.1 FLOWCHART

Fig- 2.2: Flowchart

2.2 REQUIREMENTS

2.2.1 LCD DISPLAY


A Liquid Crystal Display (LCD) is a flat panel display, electronic visual display, or video
display that uses the light modulating properties of liquid crystals. Liquid crystals do not emit

Fig- 2.3.1: LCD Display

Page | 8
light directly. It is a flat panel display which operates by using the liquid crystal properties of
light modulation.

Like LED generates light it not generates but uses reflectors to make images in a single color.

Features of LCD:
1. Thin and Lightweight: LCDs are thin and lightweight, making them suitable for
portable devices.
2. Low Power Consumption: LCDs consume less power compared to older CRT (Cathode
Ray Tube) displays, which helps improve device battery life.

3. Sharp and Clear Images: LCDs produce sharp and clear images with high resolution,
making them ideal for applications like watching videos, gaming, and working with
text.
4. Wide Range of Sizes: LCD technology allows for a wide range of screen sizes, from
small screens in smartphones to large screens in TVs and computer monitors.
5. Easily Adjustable Brightness: LCD displays can be adjusted for brightness levels,
making them usable in various lighting conditions.
6. Lack of Flicker: Unlike CRTs, LCDs do not produce flicker, reducing eye strain during
extended use.
7. Longevity: LCDs generally have a longer lifespan compared to older display
technologies.
8. Reduced Heat Emission: LCDs generate less heat, which contributes to the overall
energy efficiency of devices.
9. Color Reproduction: LCDs can display a wide range of colors, and advancements like
LED backlighting have further improved color accuracy.
10. Viewing Angles: LCDs may have limitations in terms of viewing angles, where colors
and contrast can degrade when viewed from extreme angles, but newer technologies
have improved this aspect.

Working of LCD:

1. Liquid Crystals: LCDs consist of a layer of liquid crystals sandwiched between two
layers of glass or plastic. These liquid crystals are organic compounds that can change
their orientation when subjected to an electric field.

Page | 9
2. Polarized Light: In its natural state, the liquid crystal layer twists the light passing
through it. This twisted light then passes through two layers of polarized glass. The first
layer polarizes the light in one direction, and the second layer polarizes it in a
perpendicular direction.
3. Electric Field Control: When an electric voltage is applied to specific areas of the
liquid crystal layer, it changes the orientation of the crystals in those areas. This
alteration in crystal orientation affects the polarization of light passing through those
regions.
4. Controlled Light Passage: By selectively applying electric fields to different areas of
the liquid crystal layer, the LCD can control which portions of the screen allow light to
pass through and which block it. This manipulation creates the images and colors on
the display.

2.2.2 ANDROID MOTHER BOARD

Fig- 2.3.2: Android Mother board

A motherboard is the main printed circuit board (PCB) in a computer. The motherboard is a
computer's central communications backbone connectivity point, through which all
components and external peripherals connect. Motherboards can be found in virtually all
computers, especially desktop and laptop PCs. The components that connect through them

Page | 10
include chipsets, central processing units (CPU) and memory. The external peripherals include
Wi-Fi, Ethernet and graphics cards with the graphics processing unit, or GPU. Motherboard
manufacturers include Acer, ASRock, Asus, Gigabyte Technology, Intel and Micro-Star
International.

Working of Motherboard:
The PCB of a large motherboard may include six to 14 layers of fiberglass, copper connecting
traces and copper planes for power and signal isolation. Other components get added to a
motherboard through expansion slots. These include processor sockets; dual in-line memory
modules; Peripheral Component Interconnect (PCI), PCI Express (PCIe) and solid-state drive
M.2 slots; as well as power supply connections.

1. Data Routing: The motherboard routes data between the CPU, RAM, storage, sensors, and
other components through a complex network of electrical connections.

2. Power Distribution: It manages power distribution to various components, ensuring that


they receive the appropriate voltage and current.

3. Signal Processing: The motherboard processes signals from various sensors and controls
the display, audio, and other functions accordingly.

4. Operating System Interaction: The motherboard interfaces with the operating system,
allowing users to interact with the device and run applications.

5. Communication: It enables wireless communication through cellular networks, Wi-Fi, and


Bluetooth.

6. Sensor Interaction: The motherboard interacts with sensors to provide features like screen
rotation, auto-brightness adjustment, and gesture recognition.

7. Charging and Battery Management: It controls battery charging and monitors battery
health.

8. External Connectivity: The motherboard provides interfaces for external connections like
USB, HDMI, and audio output.

Page | 11
Features of a Motherboard:
1. Processor (CPU): The motherboard houses the central processing unit (CPU), which is the
brain of the smartphone. The CPU executes instructions and processes data.
2. Memory (RAM): It contains the Random Access Memory (RAM) used for temporarily storing
data and running apps. More RAM allows for smoother multitasking.
3. Storage (eMMC/UFS): The motherboard connects to the storage component, which can be
eMMC (embedded Multi Media Card) or UFS (Universal Flash Storage), where the phone's
operating system and user data are stored.
4. Connectivity: Motherboards include various connectivity options like Wi-Fi, Bluetooth,
cellular radios, GPS, and NFC for communication and location services.
5. Sensors: Sensors like accelerometers, gyroscopes, ambient light sensors, and proximity
sensors are integrated into the motherboard for various functions, including screen orientation,
gaming, and power management.
6. Audio and Video: The motherboard manages audio components, including amplifiers and
audio codecs. It also interfaces with the display and graphics components.
7. Power Management: Power management ICs (PMICs) on the motherboard regulate power
distribution and battery charging.
8. USB and Ports: It includes USB ports and connectors for charging and data transfer, along
with other ports like SIM card slots and headphone jacks.
2.2.3 LDVS (LOW-VOLTAGE DIFFERENTIAL SIGNALING)

Fig-2.3.3: Low-Voltage Differential Signaling

Page | 12
LVDS stands for Low-Voltage Differential Signaling, and it is a technology used for
transmitting digital data at high speeds over relatively long distances while minimizing power
consumption. LVDS cables are commonly used in various applications, including computer
displays, flat-panel TVs, industrial machinery, and automotive systems.

Key characteristics of LVDS cables include:


1. Differential Signaling: LVDS uses a pair of wires to transmit data, with one wire carrying
the inverted signal of the other. This helps reduce electromagnetic interference and allows
for better noise immunity.
2. High-Speed Data Transmission: LVDS is capable of transmitting data at high speeds,
making it suitable for applications that require rapid data transfer, such as high-resolution
displays.
3. Low Power Consumption: LVDS is designed to be power-efficient, making it suitable
for portable devices where battery life is a concern.
4. Long Cable Lengths: LVDS can transmit data over relatively long cable lengths without
significant signal degradation, making it suitable for applications where the data source
and the display are not in close proximity.
5. Common Connector Types: LVDS cables often use connectors like LVDS connectors,
FFC/FPC (Flat Flexible Cable/Flat Printed Circuit), or HDMI connectors with LVDS
support. LVDS cables are an important technology for high-speed data transmission,
particularly in applications where signal integrity, power efficiency, and cable length are
crucial considerations.

2.2.4 SPEAKERS

Fig-2.3.4: Speakers

Page | 13
A speaker is an essential component in a system to produce audio as output. It produces the
voice or audio receiving from the controller. It is a rapid process to spread the message in a
minimum time.

• Audio Output: The primary function of a speaker is to reproduce audio from the screen's
content, such as dialogue, music, and sound effects, providing an immersive audiovisual
experience.
• Sound Quality: Good speakers enhance the audio quality of the TV, ensuring clear, rich,
and immersive sound. They contribute to the overall entertainment value of the TV.
• Voice Commands: Some Android TVs feature voice recognition technology, and the
speaker plays a crucial role in picking up voice commands, making it easier to control the
TV using voice.
• Notifications and Alerts: The speaker is used to deliver system notifications, reminders,
and alerts to the user. For example, it can notify you of software updates, incoming calls,
or calendar reminders.
• Accessibility Features: Speakers enable accessibility features like screen readers and
audio descriptions, making content accessible to individuals with visual impairments.
• Gaming: For gaming on Android TVs, speakers provide the audio cues necessary for an
immersive gaming experience, including in-game dialogue, music, and sound effects.
• Streaming Services: When streaming content from apps like Netflix or YouTube, the
speaker ensures that you can hear the content's audio clearly.

In summary, a speaker in an integrated system is a critical component that plays a central role
in delivering high-quality audio, enabling voice commands, providing notifications, and
enhancing the overall entertainment and accessibility features of the displaying system.

2.2.5 POWER CABLE

A power cable is an electrical cable, an assembly of one or more electrical conductors, usually
held together with an overall sheath. The assembly is used for transmission of electrical power.
Power cables may be installed as permanent wiring within buildings, buried in the ground, run
overhead, or exposed. Power cables that are bundled inside thermoplastic sheathing and that
are intended to be run inside a building are known as NM-B (nonmetallic sheathed building
cable).

Page | 14
Fig-2.3.5: Power Cable

2.2.6 IR CONTROL WIRE (INFRARED WIRE)

Infrared, or IR technology is a form of light just outside the visible spectrum of the human eye.
When modulated and set to a specific frequency it can be used to send unique bursts of IR light
to a device. Each unique infrared code is then interpreted as a specific function by the device
being controlled.

Fig-2.3.6: Infrared Control Wire

Page | 15
2.3.6 IR REMOTE CONTROL RELAY MODULE

An IR remote control relay module is a device that allows you to remotely control electrical
appliances using an infrared (IR) remote control, commonly found with TVs and other home
electronics. When you press a button on the remote control, it emits an IR signal that is received
by the module. The module then interprets this signal and triggers a relay, which can turn on
or off the connected electrical device, such as a light or a fan. This technology is widely used
for home automation and remote control applications, making it convenient to operate
appliances from a distance.

Fig-2.3.7: IR Remote Control Relay Module

2.3.7 T-CON BOARD

Fig-2.3.8: T-CON Board

Page | 16
A T-CON (Timing Controller) board is used in flat-panel LCD and LED TVs and monitors to
control the timing and signal processing of the display panel. It plays a crucial role in
converting incoming video signals into a format that can be displayed on the screen.
Here are a few key reasons why T-CON boards are used:

1. Signal Processing: T-CON boards process the video signals received from the mainboard
or external sources, adjusting parameters like resolution, refresh rate, and color depth to match
the display panel's native capabilities.

2. Timing Control: They synchronize the timing of the incoming signals with the pixel matrix
of the display panel, ensuring that each pixel is activated at the right moment to create a
coherent image.

3. Error Correction: T-CON boards can correct certain display artifacts, such as image
distortion or pixel misalignment, to improve image quality.

4. Panel Compatibility: Different display panels have varying specifications, and T-CON
boards are often customized to match the specific panel used in a TV or monitor.

5. Multiple Inputs: T-CON boards can handle multiple input sources, allowing users to switch
between HDMI, VGA, and other connections seamlessly.

In summary, T-CON boards are essential components in modern LCD and LED displays,
ensuring that incoming video signals are processed and displayed correctly on the screen. They
help optimize image quality and compatibility between the display panel and various input
sources.

2.3.8 REMOTE
Remote controls are used for a variety of electronic devices, in Content players, air
conditioners, and more, for several important reasons:

1. Convenience: Remote controls allow users to operate electronic devices from a distance,
eliminating the need to physically interact with the device. This convenience is especially
valuable for devices that are placed at a distance or are mounted on walls.

Page | 17
2. Accessibility: Remote controls make it easier for individuals with mobility or physical
disabilities to control electronic devices without the need for direct physical interaction.

3. User-Friendly Interface: Remotes typically feature user-friendly interfaces with buttons or


touchpads that are designed for specific functions, making it simple for users to navigate
menus, adjust settings, and perform tasks with minimal effort.

4. Precision: Remote controls offer precise control over device functions. For example, with a
TV remote, users can change channels, adjust volume, and access specific features without the
need to get up or manually operate the TV.

5. Multi-Device Control: Many universal remotes can operate multiple devices, allowing
users to control a TV, DVD player, soundbar, and other devices with a single remote. This
simplifies the overall user experience.

6. Preventing Interruptions: Remotes can help prevent interruptions by allowing users to


quickly and quietly adjust settings without disturbing others in the room.

In summary, remote controls enhance the user experience by providing convenience,


accessibility, and precise control over electronic devices. They simplify interactions with
devices and are an integral part of modern consumer electronics.

Fig-2.3.9: Remote

Page | 18
2.3.9 CONVERTER

Fig-2.3.10: Converter

The converter unit, positioned in the back panel of the LCD, serves a crucial role in our Smart
Notice Board project. This component is responsible for converting and regulating the
electrical power supply to a form that is compatible with the LCD screen's operational
requirements. Essentially, the converter serves as an intermediary between the power source
and the LCD, ensuring that the screen receives the precise voltage, current, and frequency
needed for optimal performance.

By adapting the power supply, the converter unit safeguards the LCD from potential electrical
irregularities or voltage fluctuations that could lead to damage or malfunction. It acts as a
protective barrier, guaranteeing the longevity and reliability of the LCD screen.

Moreover, the converter unit might also facilitate the incorporation of additional features, such
as backlighting control, brightness adjustments, and power-saving modes. This allows for
efficient power management and user customization, making the Smart Notice Board more
energy-efficient and user-friendly.

In summary, the converter unit installed on the back panel of the LCD is an indispensable
component, ensuring that the screen receives the correct electrical input, protecting it from

Page | 19
potential harm, and enhancing its functionality by enabling power management and user
customization features. This makes it an integral part of the overall Smart Notice Board system.

2.3.10 INVERTER

Fig-2.3.11: Inverter

In LCD (Liquid Crystal Display) technology, inverters are used to power and control the
backlight of the display. The backlight is a critical component in LCD screens, as it provides
the necessary illumination for the liquid crystals to modulate and produce the images you see
on the screen. Here's a detailed explanation of how inverters work in LCD models to power the
backlight:

1. Backlight Basics: LCDs are essentially transmissive displays. They do not emit light
themselves, unlike technologies like OLED (Organic Light-Emitting Diode) displays. To make
the LCD screen visible, a source of illumination is required. This is where the backlight comes
into play.

2. Types of Backlights: There are two common types of backlight technologies used in LCD
displays: CCFL (Cold Cathode Fluorescent Lamp) and LED (Light Emitting Diode). LED
backlights have become more prevalent in recent years due to their energy efficiency, longer
lifespan, and better color control.

3. Backlight Inverters: In LCD displays with CCFL backlights, an inverter is used to convert
the DC (direct current) power supply to high-voltage AC (alternating current) power. This high-

Page | 20
voltage AC is then supplied to the CCFL lamps, which emit the white light needed for the
display.

In LCD displays with LED backlights, the term "inverter" is somewhat of a misnomer, as the
power supply is typically converted to low-voltage DC rather than high-voltage AC. These
inverters are more accurately called LED drivers or LED power supplies. LED drivers regulate
the current and voltage supplied to the LEDs, ensuring uniform brightness and color.

4. Control and Dimming: In addition to providing power to the backlight, inverters or LED
drivers also control the brightness of the display. By adjusting the voltage or current supplied
to the backlight, the intensity of the light can be varied, allowing for brightness control. This is
essential for adjusting screen brightness to suit different lighting conditions or user preferences.

5. Advantages of LED Backlights: LED backlights are more energy-efficient and longer-
lasting compared to CCFL backlights. They also offer more precise control over brightness
levels and can be dimmed more effectively. LED backlights are also favored for their ability
to support local dimming, where different sections of the display can be dimmed or turned off
independently to enhance contrast and reduce power consumption.

6. Uniformity and Color Control: Inverters or LED drivers play a crucial role in maintaining
uniform brightness and color across the entire screen. They ensure that each LED or CCFL
lamp operates consistently, preventing uneven illumination or color shifts.

In summary, inverters or LED drivers in LCD models are responsible for converting the power
supply into the necessary form of electrical energy to illuminate the backlight. They also
control the brightness and, in the case of LED backlights, offer fine-grained control over
individual LEDs for better picture quality. These components are essential for the operation
and performance of LCD displays.

2.3.11 SCREEN-HOLDING STAND


The digital screen stand is an integral part of our Smart Notice Board project, providing
structural support, adjustability, cable management, stability, and a visually appealing display.
It plays a significant role in making the notices accessible and engaging for the target audience,
enhancing the overall functionality and aesthetics of the system. Features:

• Design and Material: The stand is designed for optimal functionality and aesthetics. It is
constructed using sturdy and durable materials to provide stability and longevity. The

Page | 21
material used is typically metal or high-quality plastic, which is selected for its durability
and ability to withstand the weight and size of the digital screen.

• Adjustability: The stand is designed with adjustability in mind. It allows for various
screen sizes and orientations, ensuring that the digital screen can be positioned in landscape
or portrait mode as required. This flexibility is essential to accommodate different notice
formats and viewing preferences.

• Cable Management: To maintain a neat and organized appearance, the stand includes
cable management features. These allow for the tidy routing of power and data cables,
reducing clutter and potential tripping hazards.

• Stability and Safety: Safety is a paramount concern in our project. The stand is engineered
to provide stability and prevent accidental toppling. It often includes features such as a
weighted base or adjustable feet to maintain balance on various surfaces.

• Assembly and Disassembly: The stand is designed for ease of assembly and disassembly.
This feature is important for transport, maintenance, and storage. It allows for convenient
relocation of the Smart Notice Board when necessary.

Fig-2.3.12: Screen-holding Stand

Page | 22
CHAPTER 3
3 TECHNOLOGY USED
3.1 BACK-END TECHNOLOGIES
3.1.1 NODE.JS
1. Real-time Updates: Node.js is known for its real-time capabilities, making it ideal for
updating notice boards in real-time. You can use technologies like Web Sockets or libraries
like Socket.io to push updates instantly to all connected clients.

2. Backend Server: Node.js can serve as the backend server to handle data storage, user
authentication, and communication with the front-end. It's efficient in managing asynchronous
I/O, which can be useful for handling a large number of concurrent connections.

3. API Development: You can use Node.js to create RESTful APIs for your Smart Notice
Board application. These APIs can handle requests from various devices and platforms, making
it easy to interact with your notice board system.

4. Database Connectivity: Node.js has various libraries and modules for connecting to
databases, making it suitable for managing and retrieving notice board content from a database.

5. Cross-Platform Compatibility: Node.js allows you to write server-side and client-side code
using JavaScript, making it easier to maintain a consistent codebase throughout your project.

6. Scalability: Node.js is designed to be scalable, which is crucial if your project grows in


terms of users and data. You can easily add more servers or use load balancing to handle
increased traffic.

7. Community Support: Node.js has a vast and active community, meaning you can find
plenty of open-source modules and resources to enhance your Smart Notice Board project.

8. Microservices: Node.js can be used to create microservices that perform specific tasks
within your application, which can help modularize your project and improve maintainability.

3.1. 2 FIREBASE

1. Firebase Authentication: Implement user authentication to allow authorized users to post


notices or announcements. Firebase Authentication offers various sign-in methods, including
email/password, Google, Facebook, and more.

Page | 23
2. Firebase Realtime Database or Firestore: You can use either the Firebase Realtime
Database or Firestore to store notice board data. Firestore is a NoSQL database that offers more
flexibility and querying capabilities. Structure your database to store notices, including fields
like title, content, date, and author.

3. Real-time Updates: Firebase databases provide real-time synchronization, which means


that when someone posts a notice or makes changes, all connected users' notice boards will be
automatically updated. This is perfect for keeping information on the notice board up-to-date.

4. Cloud Functions: You can use Firebase Cloud Functions to automate tasks like sending
notifications to users when new notices are posted or updating statistics or analytics.

5. Storage: If your notices include images or files, use Firebase Storage to store and serve these
files. It integrates seamlessly with other Firebase services.

6. Security Rules: Configure security rules in Firebase to control who can read and write data.
For instance, you might allow anyone to read notices but only authenticated users to post or
edit them.

7. Mobile or Web App: You can build a mobile app or web app that interacts with the Firebase
services. Firebase provides SDKs for various platforms, making it easier to integrate.

8. Push Notifications: Implement Firebase Cloud Messaging (FCM) to send push notifications
to users when a new notice is posted or updated. This ensures that users are promptly informed
about important announcements.

9. Analytics: Use Firebase Analytics to gain insights into user engagement and interactions
with the notice board. This can help you make data-driven decisions about improving the app.
10. Hosting: If you're building a web application, Firebase also offers hosting services. You
can host your notice board web app on Firebase Hosting.

3.2 FRONT-END TECHNOLOGIES

3.2.1 HTML

A smart notice board is a digital or electronic display that can be used to display various types
of information like announcements, news, messages, and more. HTML (Hypertext Markup
Language) is an essential part of creating the user interface for such a project. Here's how
HTML can be used in a smart notice board project:

1. Creating the Structure: HTML is used to create the basic structure of the notice board.
This structure may include headers, footers, sidebars, and the main content area. For instance,
a typical structure might look like:

Page | 24
```html
<!DOCTYPE html>
<html>
<head>
<title>Smart Notice Board</title>
</head>
<body>
<header>
<h1>Welcome to the Smart Notice Board</h1>
</header>
<main>
<!-- Notice content goes here -->
</main>
<footer>
<p>&copy; 2023 Smart Notice Board</p>
</footer>
</body>
</html>
```

2. Displaying Notices: HTML is used to display notices on the notice board. Each notice can
be represented as an HTML element, typically a `div` or `section` element. You can use HTML
to format the text, add images, links, and other multimedia content within each notice. For
example:

```html
<section class="notice">
<h2>Important Announcement</h2>
<p>This is an important notice for all students. Please be advised that...</p>
<a href="details.html">Read More</a>
</section>
```

3. Styling with CSS: While HTML defines the structure and content, you'll use CSS
(Cascading Style Sheets) to control the visual style of the notice board. You can set the
background, font, colors, and layout using CSS. Here's a simple example of how you can
include CSS within your HTML:

```html
<head>
<title>Smart Notice Board</title>
<link rel="stylesheet" type="text/css" href="styles.css">
</head>

Page | 25
```

4. Interactivity: If your smart notice board includes interactive features like user comments,
likes, or notifications, JavaScript can be used along with HTML. JavaScript can be embedded
in your HTML to make your notice board dynamic. For example, you might use JavaScript to
handle user interactions like clicking on a notice for more details.

```html
<script src="script.js"></script>
```

5. Responsive Design: In a smart notice board project, it's important to ensure that your HTML
is responsive, meaning it adapts to different screen sizes and devices. You can use CSS media
queries in combination with HTML to make your notice board display well on desktops, tablets,
and smartphones.

```html
<meta name="viewport" content="width=device-width, initial-scale=1">
```

6. Fetching Data: If your notice board is updated with data from an external source, you might
use HTML to include APIs or data sources through embedded content or script tags.

```html
<script src="https://api.example.com/notices.js"></script>
```

Remember that HTML is just one part of creating a smart notice board. Depending on the
complexity of your project, you'll also need to consider server-side programming, databases,
and potentially other technologies to handle data storage, retrieval, and real-time updates.

3.2.2 CSS
Creating a smart notice board using HTML and CSS is a great project. HTML is used for
structuring your content, while CSS is used for styling and layout. Here's how you can use
HTML and CSS in this project:

HTML Structure:
1. Container: Start by creating a container for your notice board. This could be a `div` or any
other HTML element with an `id` or `class` for styling.

```html
<div class="notice-board">
<!-- Content goes here -->

Page | 26
</div>
```

2. Notices: Inside the container, you can have individual notice items. Each notice can be
structured as a `div` or another suitable HTML element. You can include a title, content, and
any other relevant information.

```html
<div class="notice">
<h2>Notice Title</h2>
<p>Notice content goes here...</p>
</div>
```

3. Add CSS Classes: To style your container, notices, and other elements, add CSS classes to
them. For example:

```html
<div class="notice-board">
<div class="notice">
<h2>Notice Title</h2>
<p>Notice content goes here...</p>
</div>
</div>
```

4. CSS Styling:nNow, you can use CSS to style your smart notice board.

```css
.notice-board {
width: 80%;
margin: 0 auto;
padding: 20px;
background-color: #f4f4f4;
border: 1px solid #ccc;
}

.notice {
background-color: #fff;
margin: 10px 0;
padding: 10px;
border: 1px solid #ddd;
}

Page | 27
.notice h2 {
font-size: 24px;
color: #333;
}

.notice p {
font-size: 16px;
color: #666;
}
```
You can style the container, notices, and any other elements within your notice board according
to your project's design. You may want to use CSS for making it responsive, adding animations,
and customizing the appearance.

3.2.3 JavaScript
A smart notice board is a digital display system that can show announcements, messages, news,
and other information. HTML and JavaScript are commonly used in such projects to create the
user interface and control the behavior of the notice board. Here's how you can use HTML and
JavaScript in a smart notice board project:

1. HTML for the User Interface: Create the structure of the notice board using HTML. This
structure will include elements for displaying text, images, and any other information. Use
HTML to define the layout and style of the notice board, including fonts, colors, and overall
design.

```html
<div id="notice-board">
<h1>Welcome to Smart Notice Board</h1>
<div id="message-container">
<!-- Messages will be displayed here dynamically -->
</div>
</div>
```

2. JavaScript for Dynamic Content: Use JavaScript to fetch and manage the content that will
be displayed on the notice board. This content could be announcements, news, or messages
from a database or an API.

```javascript
// Sample data (you may fetch this from an API or a database)
const messages = [
"Meeting at 3 PM in Room A",
"School closed on Friday for maintenance",

Page | 28
"New product launch on October 15th",
];

// Function to display messages on the notice board


function displayMessages() {
const messageContainer = document.getElementById("message-container");
messageContainer.innerHTML = "";

messages.forEach((message) => {
const messageElement = document.createElement("div");
messageElement.innerText = message;
messageContainer.appendChild(messageElement);
});
}

// Periodically update the messages on the notice board


setInterval(displayMessages, 10000); // Update every 10 seconds
```

3. JavaScript for User Interaction: You can use JavaScript to add interactivity to your notice
board, such as allowing users to scroll through messages or navigate to different sections.
- Add event listeners to handle user input and trigger specific actions.

```javascript
const nextButton = document.getElementById("next-button");
const prevButton = document.getElementById("prev-button");

let currentIndex = 0;

nextButton.addEventListener("click", () => {
currentIndex = (currentIndex + 1) % messages.length;
displayMessages();
});

prevButton.addEventListener("click", () => {
currentIndex = (currentIndex - 1 + messages.length) % messages.length;
displayMessages();
});
```

4. Integration with Hardware: If your smart notice board is part of a hardware project, you
might use JavaScript to interface with sensors, LEDs, or other components to provide real-time
information or reactions to the environment.

Page | 29
3.3 TECHNOLOGY USED FOR ANDROID APPLICATION

Creating a Smart Notice Board using Java, XML, Firebase API, and Servlet involves several
key steps and components. Below is an outline of how you can use these technologies in your
project:

1. Setting Up Firebase: Create a Firebase account and set up a new project. Obtain Firebase
configuration details (api Key, auth Domain, database URL, project Id, storage Bucket,
messaging Sender Id, app Id) for connecting your application to Firebase services.

2. Creating the Database Structure: Define the database schema for storing notices. For
instance, you might have fields like `title`, `content`, `date`, etc.

3. Setting Up Java Servlet: Create Servlet classes to handle HTTP requests and responses.
Use `do Get` and `do Post` methods to handle different types of requests (e.g., displaying
notices, adding a new notice). Connect Servlets with Firebase to perform CRUD (Create, Read,
Update, Delete) operations on the database.

4. Implementing Frontend with XML: Design the user interface using XML layouts (using
Android XML if it's an Android application). Use XML to create components like buttons, text
fields, and Recycler View (for displaying a list of notices). Implement appropriate event
handlers in XML (on Click, etc.) to trigger actions based on user interactions.

5. Using Java to Control Backend Logic: Write Java code to control the backend logic. Use
Firebase API in Java to interact with the Firebase Realtime Database. Implement methods for
adding, retrieving, updating, and deleting notices in the Firebase database.

6. Displaying Notices: Retrieve notices from the Firebase database using Java. Populate the
XML layout components dynamically with the retrieved data. Use Recycler View (or similar)
to display notices in a scrollable list.

7. Handling User Input: Implement forms in XML for users to input notice details. Use Java
to handle form submissions. When a user submits a notice, capture the form data. Validate the
input data before sending it to the Firebase database to maintain data integrity.

Page | 30
8. Real-time Updates (Optional): Implement Firebase Realtime Database listeners in Java to
receive real-time updates when the database changes. Update the UI in real-time based on these
changes, ensuring users always see the latest notices.

9. Authentication and Security (Optional): Implement user authentication if required, to


allow only authorized users to add or modify notices. Set up Firebase security rules to restrict
access to certain parts of the database based on user roles and permissions.

Page | 31
CHAPTER 4
4 PROCESS TO DISPLAY THE NOTICE
4.1 STEPS FOR THE WEB APP

Step 1: Go to any browser on your device and enter the URL-


https://uploadpdf.driemsgpt.tech/

Or/ You can manually Enter- https://uploadpdf.driemsgpt.tech/

The Webapp site will load and it will show you like this. This is the front view of our website
and now follow Step 2.

Fig- 4.1(a): Process to Display the web front

Step 2: Click on “Select PDF” button visible on the Screen and select the
Respective Notice You want to Upload and click on Open.

Page | 32
You can Choose only .pdf format i.e. the PDF format to display on the Screen. NowFollow
Step 3.

Fig- 4.1(b): Process to select notice

Step 3: Click on the “Upload” button.

After the 100% of the upload, your notice uploading is completed. Follow Step 1 of
android app.

Fig- 4.1(c): Process to upload notice


Page | 33
4.2 STEPS FOR THE ANDROID APP

Step 1: Power on the Digital screen and give the internet connection. Now open
the “Smart Notice board app” which is preinstalled in that environment.

Fig- 4.2(a): Selecting the app from app list

Step 2: Click on refresh button to see the recent uploaded notice.

Fig- 4.2(b): Notice view on the Screen

It can display maximum of 2 pages if the Pdf contains more pages.

Page | 34
CHAPTER 5

5 CODE SNIPPETS
To gain a better understanding of the Smart Notice board implementation, we provide code
snippets that illustrate key functionalities and components. These snippets are meant to offer
insights into how the application was developed using Node.js, Firebase for the Back-End and
HTML, CSS, JavaScript for Front-End of the Web app. In the android app we have used XML,
Servlet, Java and Firebase Api.
D:\Mirrorring-WebApp-master\index.html

<!DOCTYPE html> <! -- index.html -- >


<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>PDF Upload</title>
<link rel="stylesheet" href="./index.css" />
<script src="https://www.gstatic.com/firebasejs/8.6.8/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.8/firebase-storage.js"></script>
</head>
<body>
<div class="imageUpload">
<input type="file" class="inp" onchange="getImageData(event)" />
<button onclick="selectImage()" class="selectImage">Select PDF</button>
<span class="filedata"></span>
<div class="progressBar">
<div class="progress"></div>
</div>
<button onclick="uploadImage()" class="upload">Upload</button>
<span class="loading"></span>
<img class="img" />
</div>
<script>
const firebaseConfig = {
apiKey: "AIzaSsBjRxMIHIgdd_wpW8emDsNkKI24GiUj",
authDomain: "minemrror-webapp.firebaseapp.com",
projectId: "minemrror-webapp",
storageBucket: "minemrror-webapp.appspot.com",
messagingSenderId: "634857070489",
appId: "2:634857070489:web:4aeecb712c374a7a04b763",
measurementId: "G-SJPCD6NDQC",
Page | 35
};

const app = firebase.initializeApp(firebaseConfig);

const storage = firebase.storage();

const inp = document.querySelector(".inp");


const progressbar = document.querySelector(".progress");
const img = document.querySelector(".img");
const fileData = document.querySelector(".filedata");
const loading = document.querySelector(".loading");
let file;
let fileName;
let progress;
let isLoading = false;
let uploadedFileName;
const selectImage = () => {
inp.click();
};
const getImageData = (e) => {
file = e.target.files[0];
fileName = Math.round(Math.random() * 9999) + file.name;
if (fileName) {
fileData.style.display = "block";
}
fileData.innerHTML = fileName;
console.log(file, fileName);
};

const uploadImage = () => {


loading.style.display = "block";
const storageRef = storage.ref().child("mypdfs");
const folderRef = storageRef.child(fileName);
const uploadtask = folderRef.put(file);
uploadtask.on(
"state_changed",
(snapshot) => {
console.log("Snapshot", snapshot.ref.name);
progress = (snapshot.bytesTransferred /snapshot.totalBytes) * 100;
progress = Math.round(progress);
progressbar.style.width = progress + "%";
progressbar.innerHTML = progress + "%";
uploadedFileName = snapshot.ref.name;
},
(error) => {

Page | 36
console.log(error);
},
() => {
storage
.ref("myimages")
.child(uploadedFileName)
.getDownloadURL()
.then((url) => {
console.log("URL", url);
if (!url) {
img.style.display = "none";
} else {
img.style.display = "block";
loading.style.display = "none";
}
img.setAttribute("src", url);
});
console.log("File Uploaded Successfully");
}
);
};
</script>
</body>
</html

STYLING USING CSS

D:\Mirrorring-WebApp-master\index.css

/* index.css. */
*{
font-family: "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif;
font-size: 20px;
}

.inp {
display: none;
}

.progressBar {
width: 250px;
background: rgb(196, 193, 193);
padding: 15px 20px;
position: relative;
}
Page | 37
.progress {
height: 100%;
width: 0%;
background: linear-gradient(75deg, rgb(11, 65, 173), rgb(179, 10, 165));
position: absolute;
left: 0;
top: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
color: white;
}

.img {
height: 250px;
width: 300px;
border: 3px solid crimson;
-o-object-fit: contain;
object-fit: contain;
display: none;
}

.selectImage {
background: linear-gradient(75deg, rgb(211, 208, 12), rgb(179, 10, 165));
color: white;
padding: 15px 20px;
border-radius: 10px;
}

.upload {
background: linear-gradient(75deg, rgb(11, 195, 208), rgb(179, 10, 165));
color: white;
padding: 15px 20px;
border-radius: 10px;
}

button {
cursor: pointer;
border: none;
margin: 10px 0;
}

.filedata {

Page | 38
background: cadetblue;
padding: 10px 15px;
font-size: 14px;
max-width: 100px;
text-overflow: ellipsis;
border-radius: 10px;
display: none;
overflow: hidden;
margin: 10px 0;
}

.imageUpload {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}

body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-image: url("https://firebasestorage.googleapis.com/v0/b/mirror-
webapp.appspot.com/o/myimages%2F9790driems-clg-photo2.jpg?alt=media&token=28053c29-
d4f2-4c94-b09d-
1bcf41310320&_gl=1*1c7elw0*_ga*NTE0MDE0OTAzLjE2OTY4NjExMDU.*_ga_CW55HF8
NVT*MTY5Njg2MTEwNC4xLjEuMTY5Njg2MTM1My41OC4wLjA.");
background-repeat: no-repeat;
background-position: center;
background-size: cover;
}

.loading {
display: none;
}/*# sourceMappingURL=index.css.map */

ANDROID CODE

D:\Smart-Notice-Board_System-master\app\src\main\java\com\MainActivity.kt

MainActivity.kt
package com.smart.smartnoticeboard

import android.content.Context
Page | 39
import android.content.SharedPreferences
import android.os.Bundle
import android.util.Base64
import android.util.Log
import android.view.View
import androidx.activity.viewModels
import androidx.core.view.isVisible
import androidx.fragment.app.FragmentActivity
import com.github.barteksc.pdfviewer.util.FitPolicy
import com.google.firebase.storage.FirebaseStorage
import com.google.firebase.storage.StorageReference
import com.smart.smartnoticeboard.databinding.ActivityMainBinding
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.async
import kotlinx.coroutines.awaitAll
import kotlinx.coroutines.launch
import kotlinx.coroutines.tasks.await
import kotlinx.coroutines.withContext
import java.io.ByteArrayOutputStream
import java.io.InputStream

class MainActivity : FragmentActivity() {

private lateinit var binding: ActivityMainBinding


private lateinit var sharedPrefs: SharedPreferences
private lateinit var storageReference: StorageReference

private val pdfViewModel by viewModels<PdfViewModel>()

override fun onCreate(savedInstanceState: Bundle?) {


super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)

storageReference = FirebaseStorage.getInstance().reference
FirebaseStorage.getInstance().maxDownloadRetryTimeMillis = 2500

sharedPrefs = getPreferences(Context.MODE_PRIVATE)

pdfViewModel.pdfStreamLiveData.observe(this) { listOfInputStream ->


if(listOfInputStream.size==1){
val inputStream = listOfInputStream[0]
if(inputStream!=null){
binding.pdfView1.fromStream(inputStream)

Page | 40
.pages(0)
.enableSwipe(true) // allows to block changing pages using swipe
.swipeHorizontal(false)
.enableDoubletap(true)
.defaultPage(0)
.enableAnnotationRendering(false) // render annotations (such as comments, colors
or forms)
.scrollHandle(null)
.enableAntialiasing(true) // improve rendering a little bit on low-res screens
.spacing(0)
.autoSpacing(false) // add dynamic spacing to fit each page on its own on the
screen
.fitEachPage(true) // fit each page to the view, else smaller pages are scaled relative
to largest page.
.pageFitPolicy(FitPolicy.HEIGHT)
.pageSnap(false) // snap pages to screen boundaries
.pageFling(false) // make a fling change only a single page like ViewPager
.nightMode(false) // toggle night mode
.load()
binding.progressBar.isVisible = false
binding.pdfView1.isVisible = true
binding.pdfView2.visibility = View.GONE
}
}else{
val inputStream1 = listOfInputStream[0]
val inputStream2 = listOfInputStream[1]
if (inputStream1 != null && inputStream2 !=null) {

binding.pdfView1.fromStream(inputStream1)
.pages(0)
.enableSwipe(true)
.swipeHorizontal(false)
.enableDoubletap(true)
.defaultPage(0)
.enableAnnotationRendering(false)
.scrollHandle(null)
.enableAntialiasing(true)
.spacing(0)
.autoSpacing(false)
.fitEachPage(true)
.pageFitPolicy(FitPolicy.HEIGHT)
.pageSnap(false)
.pageFling(false)
.nightMode(false)
.load()

Page | 41
binding.pdfView2.fromStream(inputStream2)
.pages(1)
.enableSwipe(true)
.swipeHorizontal(false)
.enableDoubletap(true)
.defaultPage(1)
.enableAnnotationRendering(false)
.scrollHandle(null)
.enableAntialiasing(true)
.spacing(0)
.autoSpacing(false)
.fitEachPage(true)
.pageFitPolicy(FitPolicy.HEIGHT)
.pageSnap(false)
.pageFling(false)
.nightMode(false)
.load()
binding.progressBar.isVisible = false
binding.pdfView2.isVisible = true
binding.pdfView1.isVisible = true
binding.pdfView2.visibility = View.VISIBLE
} else {
binding.pdfView2.isVisible = true
loadPreviousPdf()
binding.progressBar.isVisible = false
}
}
}

fetchPdfUrl()

binding.updateButton.setOnClickListener {
fetchPdfUrl()
}
}

private fun fetchPdfUrl() {


Log.d("PDF_FETCH", "Fetch called for pdf")
binding.progressBar.isVisible = true
binding.noticeImage.isVisible = false
binding.pdfView1.isVisible = false
binding.pdfView2.isVisible = false

storageReference.child("mypdfs").listAll()

Page | 42
.addOnSuccessListener { result ->
Log.d("PDF_FETCH", "Fetch success")
CoroutineScope(Dispatchers.IO).launch {
try {
val allFilesDetails = result.items.map { s ->
async {
PdfResponse(
s.downloadUrl.await().toString(),
s.metadata.await().updatedTimeMillis,
)
}
}.awaitAll()
val sortedList = allFilesDetails.sortedBy {
it.uploadTime
}
pdfViewModel.retrievePDFStream(sortedList.last().pdf_url)
val byteArray =
inputStreamToByteArray(pdfViewModel.pdfStreamLiveData.value?.get(0))
savePdf(byteArray)

withContext(Dispatchers.Main) {
binding.progressBar.isVisible = false
binding.pdfView1.isVisible = true
binding.pdfView2.isVisible = true
}
} catch (e: Exception) {
withContext(Dispatchers.Main) {
binding.progressBar.isVisible = false
binding.pdfView1.isVisible = true
binding.pdfView2.isVisible = true
loadPreviousPdf()
}
}
}
}
.addOnFailureListener { exception ->
// Handle failure here
Log.e("PDF_FETCH", "Failed to fetch PDF: ${exception.message}", exception)

binding.progressBar.isVisible = false
binding.pdfView1.isVisible = true
binding.pdfView2.isVisible = true
loadPreviousPdf()

Page | 43
}

private fun savePdf(byteArray: ByteArray?) {


if (byteArray != null) {
sharedPrefs.edit()
.putString("lastPDF", Base64.encodeToString(byteArray, Base64.DEFAULT)).apply()
}
}

private fun loadPreviousPdf() {


val savedPdfString = sharedPrefs.getString("lastPDF", null)
if (savedPdfString != null) {
binding.pdfView1.fromAsset("Sample.pdf")
.pages(0)
.enableSwipe(true)
.swipeHorizontal(false)
.enableDoubletap(true)
.defaultPage(0)
.enableAnnotationRendering(false)
.scrollHandle(null)
.enableAntialiasing(true)
.spacing(0)
.autoSpacing(false)
.fitEachPage(true)
.pageFitPolicy(FitPolicy.HEIGHT)
.pageSnap(false)
.pageFling(false)
.nightMode(false)
.load()
binding.pdfView2.visibility = View.GONE
}
}

private fun inputStreamToByteArray(inputStream: InputStream?): ByteArray {


val byteArrayOutputStream = ByteArrayOutputStream()
inputStream?.use { input ->
val buffer = ByteArray(1024)
var length: Int
while (input.read(buffer).also { length = it } != -1) {
byteArrayOutputStream.write(buffer, 0, length)
}
}
return byteArrayOutputStream.toByteArray()
}
}

Page | 44
D:\Smart-Notice-Board_System-master\app\src\main\java\com\ PdfViewModel.kt

PdfViewModel.kt
package com.smart.smartnoticeboard

import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.tom_roush.pdfbox.pdmodel.PDDocument
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import java.io.IOException
import java.io.InputStream
import java.net.URL

class PdfViewModel: ViewModel() {

val pdfStreamLiveData = MutableLiveData<List<InputStream?>>()

fun retrievePDFStream(url: String) {


viewModelScope.launch(Dispatchers.IO) {
try {
val inputStream = URL(url).openStream()
val inputStream1 = URL(url).openStream()
val inputStream2 = URL(url).openStream()

val pageCount = PDDocument.load(inputStream).numberOfPages


withContext(Dispatchers.Main) {
if(pageCount>1){
pdfStreamLiveData.value = listOf(inputStream1, inputStream2)
}else{
pdfStreamLiveData.value = listOf(inputStream1)
}
}
} catch (e: IOException) {
// Handle the exception
withContext(Dispatchers.Main) {
pdfStreamLiveData.value = emptyList()
}
}
}
}

}
Page | 45
D:\Smart-Notice-Board_System-master\app\src\main\java\com\ PdfResponse.kt

PdfResponse.kt
package com.smart.smartnoticeboard

data class PdfResponse(


val pdf_url: String,
val uploadTime: Long
)

D:\Smart-Notice-Board_System-master\app\src\main\res\drawable\button_border.xml

button_border.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">

<corners android:radius="15dp"/>
<stroke android:width="1.5dp" android:color="#40FF00"/>
<solid android:color="@color/whiteColor" />

</shape>

D:\Smart-Notice-Board_System-master\app\src\main\res\drawable\default_background.xml

default_background.xml
<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="@color/background_gradient_start"
android:endColor="@color/background_gradient_end"
android:angle="-270" />
</shape>

D:\Smart-Notice-Board_System-master\app\src\main\res\layout\activity_main.xml

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_browse_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context=".MainActivity"

Page | 46
tools:deviceIds="tv"
tools:ignore="MergeRootFrame">

<ImageView
android:id="@+id/noticeImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitCenter"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<Button
android:id="@+id/updateButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="30dp"
android:background="@drawable/button_border"
android:paddingHorizontal="15dp"
android:paddingVertical="10dp"
android:text="Update Notice"
android:textColor="@color/blackColor"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />

<ProgressBar
android:id="@+id/progressBar"
android:layout_width="100dp"
android:layout_height="100dp"
android:indeterminateTint="@color/selected_background"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<com.github.barteksc.pdfviewer.PDFView
android:id="@+id/pdf_view1"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginHorizontal="5dp"
android:background="@android:color/transparent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/pdf_view2"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.5" />

Page | 47
<com.github.barteksc.pdfviewer.PDFView
android:id="@+id/pdf_view2"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginHorizontal="5dp"
android:background="@android:color/transparent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/pdf_view1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.5" />

</androidx.constraintlayout.widget.ConstraintLayout>

D:\Smart-Notice-Board_System-master\app\src\main\res\values\colors.xml

colors.xml
<resources>
<color name="background_gradient_start">#000000</color>
<color name="background_gradient_end">#DDDDDD</color>
<color name="fastlane_background">#0096a6</color>
<color name="search_opaque">#ffaa3f</color>
<color name="selected_background">#ffaa3f</color>
<color name="default_background">#3d3d3d</color>
<color name="whiteColor">#FFFFFF</color>
<color name="blackColor">#000000</color>
</resources>

D:\Smart-Notice-Board_System-master\app\src\main\res\values\strings.xml

strings.xml
<resources>
<string name="app_name">SmartNoticeBoard</string>
<string name="browse_title">Videos by Your Company</string>
<string name="related_movies">Related Videos</string>
<string name="grid_view">Grid View</string>
<string name="error_fragment">Error Fragment</string>
<string name="personal_settings">Personal Settings</string>
<string name="watch_trailer_1">Watch trailer</string>
<string name="watch_trailer_2">FREE</string>
<string name="rent_1">Rent By Day</string>
<string name="rent_2">From $1.99</string>
<string name="buy_1">Buy and Own</string>
<string name="buy_2">AT $9.99</string>
<string name="movie">Movie</string>

<!-- Error messages -->


<string name="error_fragment_message">An error occurred</string>
<string name="dismiss_error">Dismiss</string>
</resources>
Page | 48
D:\Smart-Notice-Board_System-master\app\src\main\res\values\themes.xml

themes.xml
<resources>

<style name="Theme.SmartNoticeBoard" parent="@style/Theme.Leanback" />


</resources>

D:\Smart-Notice-Board_System-master\app\src\main\AndroidManifest.xml

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" >

<uses-permission android:name="android.permission.INTERNET" />

<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<uses-feature
android:name="android.software.leanback"
android:required="true" />

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.SmartNoticeBoard" >
<activity
android:name=".MainActivity"
android:banner="@drawable/app_icon_your_company"
android:exported="true"
android:icon="@drawable/app_icon_your_company"
android:label="@string/app_name"
android:logo="@drawable/app_icon_your_company"
android:screenOrientation="landscape" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LEANBACK_LAUNCHER" />


</intent-filter>
</activity>
</application>

</manifest>

D:\Smart-Notice-Board_System-master\app\src\main\ build.gradle.kts
Page | 49
build.gradle.kts
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("com.google.gms.google-services")
}

android {
namespace = "com.smart.smartnoticeboard"
compileSdk = 34

defaultConfig {
applicationId = "com.smart.smartnoticeboard"
minSdk = 30
targetSdk = 34
versionCode = 1
versionName = "1.0"

buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
buildFeatures {
viewBinding = true
}
}

dependencies {
implementation("androidx.constraintlayout:constraintlayout:2.2.0-alpha13")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.0")
implementation("androidx.core:core-ktx:1.12.0")
implementation("androidx.leanback:leanback:1.0.0")
implementation("com.github.bumptech.glide:glide:4.16.0")
implementation ("com.github.mhiew:android-pdf-viewer:3.2.0-beta.1")
implementation ("com.tom-roush:pdfbox-android:2.0.27.0")

Page | 50
implementation ("androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0")
implementation ("androidx.activity:activity-ktx:1.8.2")
implementation("com.google.firebase:firebase-storage:20.3.0")
}

D:\Smart-Notice-Board_System-master\settings.gradle.kts

settings.gradle.kts
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
// repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven{
url = uri("https://jitpack.io")
}
}
}

rootProject.name = "SmartNoticeBoard"
include(":app")

Page | 51
CONCLUSION AND FUTURE SCOPE

The system has been successfully tested with troubleshooting to the best of our knowledge.
Each block present in it has been reasoned and justified. The project is very cost efficient and
marketable and the components used are very simple and easily available in the market. We
believe that this system can become commercial and can be used in places such as colleges,
banks railway station etc. Finally, we conclude that this project being based on the widely used
WI-FI technology has further scope for future development and research and can be modified
according to its application.

The implementation of a digital notice board offers numerous advantages over traditional
notice boards. It streamlines communication, reduces paper waste, and enables real-time
updates, making it an eco-friendly and efficient solution for disseminating information in
various settings, including schools, offices, and public spaces. Moreover, the ability to display
multimedia content enhances engagement and grabs the attention of the audience.

Looking towards the future, the scope for digital notice boards is promising. Advances in
technology will likely lead to even more interactive and dynamic displays, including
touchscreens and augmented reality features. Integration with IoT devices could enable
automatic updates and personalized content delivery. Furthermore, enhanced data analytics and
AI-driven content recommendations could revolutionize how information is curated and
presented. Overall, digital notice boards are poised to continue evolving and playing a crucial
role in modern communication and information dissemination.

Page | 52
REFERENCES
1. D. Sunitha, V. C. Patil, H. N. Manjula and S. Jebakani, "Digital notice board using Smart
Phones- Speech Recognition Voice command," 2018 International Conference on Current
Trends towards Converging Technologies (ICCTCT), Coimbatore, pp. 1-4, 2018.M. Arun,

P. Monika and G. Lavanya “Android display Controlled Smart e-Notice Board using
Arduino” IJCAT 2017.

2. N. Khera, D. Shukla and S. Awasthi, “Development of simple and low cost Android based
wireless notice board," 2016 5th International Conference on Reliability, Infocom
Technologies and Optimization (Trends and Future Directions) (ICRITO), Noida, pp. 630-
633, 2016.

3. A. Pramanik, Rishikesh, V. Nagar, S. Dwivedi and B. Choudhury, "GSM based Smart


home and digital notice board," 2016 International Conference on Computational
Techniques in Information and Communication Technologies (ICCTICT), New Delhi, pp.
41-46, 2016.

4. Junaid Ali, Shaib Nasim, Taha Ali, Naveed Ahmed and syed Riaz unNabi,
“Implementation of GSM based Commercial Automobile Tracker Using PIC 18F452 and
Development of Google Earth Embedded Monitoring Software” Proceedings of 2009
IEEE student conference on Research and development (SCOReD 2009), 16-18 Nov,2009,
UPM Serdang, Malaysia

5. K. Simha, Shreya, C. Kumar, C. Parinitha and S. Tantry, "Electronic notice board with
multiple output display," 2016 International Conference on Signal Processing,
Communication, Power and Embedded System (SCOPES), Paralakhemundi, pp. 1558-
1561, 2016.

6. Anushree S P, Divyashree V Bhat, Moonisha G A, Venkatesh U C,” Electronic Notice Board for
Professional College”, International Journal of Science, Engineering and Technology Research
(IJSETR), Vol. 3, pp. 1712- 1715,2014.

7. A. Goel and V. Gruhn, “Fleet Monitoring System for Advanced Tracking of Commercial
Vehicles”, Proceedings of the 2006 IEEE International Conference on Systems, Man, and
Cybernetics (SMC 2006), pp. 2517-2522, Taipei, Taiwan, 08.10.2006-11.10.2006.

8. Chia-Hung Lien, Chi-Hsiung Lin, Ying-Wen Bai, Ming-Fong Liu and Ming-Bo Lin,
“Remotely Controllable Outlet System for Home Power Management,” Proceeding of
2006 IEEE Tenth International Symposium on Consumer Electronics (ISCE 2006),
St.Petersburg, Russia, pp. 7-12, June 28-July 1, 2006.

9. E. D. Kalpan, Understanding GPS: Principles and Applications, Artech house Publishers,


ISBN 0890067937, February 1996.

10. M. Mcdonald, H. Keller, J. Klijnhout and V. Mauro, “Intelligent Transport Systems in


Europe: Opportunity for Future Research” World Scientific Publishing Company, ISBN
981270082X, 2006.

11. Muhammad Ali Mazidi, Janice Gillspie, Mckinlay, Rolin D., “The Microcontroller in
Embedded System: using Assembly and C,” 2nd edition published by Pearson Education.

Page | 53

You might also like