HueDecide: A lecture voting system augmented by IoT
FINAL YEAR PROJECT: HUE DECIDE
By Jahangir Alom
Supervisor: Dr Martin Chapman
• In a lecture, students will not always understand the topic being
discussed or will feel the lecturer is going too fast
• Many students will feel intimidated in a large lecture hall with many
• Therefore they will not feel inclined to stop the lecturer and ask them
• Gather student feedback on a topic
• Make use of an app & website so students can do this quickly
• Useful visualisation of this feedback so lecturer can quickly get an idea
of the general consensus
• Don’t want to interrupt the lecture for too long
• Text based feedback would be disruptive to lecture flow and opens
possibility of trolling
• Motivate students to participate by providing them with convenience
• Binary voting system provided via app & website
• Using Philips Hue Bridge + Bulb
• Bulb will visualise results of vote as a colour in a range
• Red being negative,Yellow neutral and Green positive
• Workings of solution (vote processing, connecting to bridge) should be
as transparent as possible
• Two distinct users – Student and Lecturer
• Session created for each lecture
• Lecturer connects to bridge
• Bulbs are connected to the
• App can be used to provide
values to the bridge will be
translated to colours as
displayed on the bulb
DESIGN – WIREFRAMES
• Wireframes were developed
for each proposed page
• Intention was to create a
simple UI and navigation system
whereby both sets of users will
do what they need to do with
• From right to left we have the
start page, current session page
and voting page
DESIGN – VOTE PROCESSING
• Color range in focus for this project is red, yellow and green
• From the table this will lie between 0 and 25500
• Database & API – Tables for users and sessions, queries to retrieve data
• LecturerWork Flow – Related to what the lecturer can do in the app
• StudentWork Flow – Related to what the student can do in the app
STUDENT FLOW – SESSION SEARCH
• Student will automatically search for active sessions
• Found sessions will be listed along with details
• Student selects session to initiate connection
• Must enter correct session code in order to connect
STUDENT FLOW – VOTE
• Two buttons
• Positive vote (Understood)
• Negative vote (Not understood
• Concurrency achieved using atomic method on database data
• Buttons disabled for short time to prevent spamming
LECTURER FLOW – BRIDGE SEARCH
• Lecturer will automatically search for bridges
• Found bridges displayed
• Select bridge and press push link to authenticate
• If session exists, navigate to this session page
• Else navigate to session creation page
LECTURER FLOW – SESSION CREATION
• Lecturer enters details of the session such as session name, date etc.
• Certain fields such as bridge IP and Mac are already filled in
• Triggers before save function on server side code
• Checks if session with this name already exists, in which case it returns
an error message.
• Else it initialises the session with a 5 character session code generated
from a domain of letters and numbers.
LECTURER FLOW – DASHBOARD (1)
• Page which controls Hue
• Invokes algorithm which converts votes into a hue value passable to
• This value will be translated into a colour displayed by the bulb
• Hue value will lie between 0 – 18000, with 0 being red, 9000 being
yellow/amber and 18000 being green
LECTURER FLOW – DASHBOARD (2)
• Conversion done by taking negative and positive votes from the
database and summing them
• The max range (18000) is the divided by this sum in order to give a
weight of each vote
• This will depend on heavily on how many students are participating in
the current vote.
• The more number of votes, the lesser the weight of each one.
LECTURER FLOW – DASHBOARD (3)
• This weight is then multiplied with the total number of positive votes,
thus giving the final hue value
• Special case : If no votes have been currently placed then the hue value
will default to 9000 as opposed to 0 which the algorithm would result
EXAMPLE HUE VALUES
• Session just started. Positive and Negative votes = 0, thereforeTotal =
0; Hue value would be 9000 because of if statement.
• Positive votes = 18, Negative votes = 12, withTotal = 30. Hue value
would be 10800 via the calculation, therefore bulb would lean towards
a greenish colour.
• Positive votes = 0, Negative votes = 8, withTotal = 10.Via the ratio and
positive vote value, the hue value would be 0, ensuring the value does
not go below 0.
• Cloud functions which run on a regular basis via Heroku
• deactivateSessions : Function which runs every hour. Deactivates all sessions
which have been running for more than 4 hours.
• DeleteExpiredSessions : Runs every 24 hours. Destroys all sessions which are
• Both effectively clean up the sessions table
• Verify that user is a lecturer
• Functionality for lecturer on the website
• Session search not constrained to location etc.
• Expand to other universities
• Implement location based search e.g. based on campuses
• Archive results
• Better design
Parece que tem um bloqueador de anúncios ativo. Ao listar o SlideShare no seu bloqueador de anúncios, está a apoiar a nossa comunidade de criadores de conteúdo.
Atualizámos a nossa política de privacidade.
Atualizámos a nossa política de privacidade de modo a estarmos em conformidade com os regulamentos de privacidade em constante mutação a nível mundial e para lhe fornecer uma visão sobre as formas limitadas de utilização dos seus dados.
Pode ler os detalhes abaixo. Ao aceitar, está a concordar com a política de privacidade atualizada.