Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/marklagodych/ppvoting

Voting system with remote controls, integrated into PowerPoint
https://github.com/marklagodych/ppvoting

esp8266 feedback powerpoint powerpoint-add-in powerpoint-presentations presentation questionnaire school-test vba voting voting-app voting-system

Last synced: 6 days ago
JSON representation

Voting system with remote controls, integrated into PowerPoint

Awesome Lists containing this project

README

        

# PowerPoint Voting
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/MarkLagodych/PPVoting)](https://github.com/MarkLagodych/PPVoting/releases/latest) ![Platforms](https://img.shields.io/badge/platform-Windows-blue) ![Target](https://img.shields.io/badge/target-Microsoft_PowerPoint-orange)

PowerPoint-based voting system:
1. Show a slide with a test question and possible answers.
2. Let your audience press answer keys on their remote controls to vote.
3. Results:
* you can show voting statistics graph right inside your presentation
* you have all answers logged into a text file

And a little bonus: this projects includes a little timer that appears in the corner of each slide so that you finish on time.

## Modules

1. **Voting controls**, each with 7 buttons. Each button is some answer.

![voter](assets/voter.jpg)

2. **Server** - a device plugged into the lecturer's PC that communicates with the voting controls.

![server](assets/server.jpg)

To make it work, you need to install the CH341SER driver. Grab it in [`bin/driver`](bin/driver).

3. **PowerPoint plugin** consists of a few notable features:

1. **Menu panel** - turns on/off other features and sets their settings.

The settings are stored in the system registry (as all Office plugins do).
To remove the settings from the registry, click "Remove settings".

![plugin-menu](assets/plugin-menu.png)

2. **Diagram** - shows the voting statistics.

Keyboard shortcuts:

* Any key for blank slide ("B", ".") - show/hide the voting statistics graph
* Any key for switching slides forward (right arrow, down arrow, page down, "N", enter, space) - update the statistics
* Any key for switching slides backward (left arrow, up arrow, page up, "P") - clear the last statistics and hide the diagram
The previous answers get cleared from the diagram to ensure that answers for the next voting do not get added to the old ones.

The keyboard shortcuts are tailored for wireless presenters (remote controls that switch the slides).

![diagram](assets/diagram.png)

3. **Timer** - a little rectangle in the slide orner that displays the current time and the time remaining until the end of the presentation.
The timer changes its color to red at the specified time before the end.

![timer-normal](assets/timer-normal.png)
![timer-signaled](assets/timer-signaled.png)

This features creates actual rectangular shapes on your slides, but clears them up when the presentation mode ends.
Thus when you close PowerPoint, it asks whether to save the changes, even though your slides look ontouched.

4. **Logger** - logs server connection information, runtime errors and voting results into a text file.
Voting results are present both in overall statistics and in per-voter events.
Such per-voter events include the voter's IP address to identifier the voter.

You need to create a log file manually and insert its path into the plugin settings.

![log](assets/log.png)

## Run

1. Install the PowerPoint plugin [`PPVoting.ppam`](bin/plugin/PPVoting.ppam).

To install a PowerPoint plugin:

1. Enable the "Developer" tab ("File" tab > "Options" > "Customize Ribbon" > in "Customize the Ribbon" list > check the "Developer" option)
2. Load the plugin ("Developer" tab > "PowerPoint add-ins" > choose the PPVoting plugin)

You may need to open some PowerPoint presentation in order to load plugins.

You will now see a new "PPVoting" tab.

![plugin-menu](assets/plugin-menu.png)

2. Install the [`CH341SER.EXE`](bin/driver/CH341SER.EXE) driver.

3. Plug the server into your PC and set up the connection.

1. Ensure that the server is connected and find out its serial port address.
* Open Device Manager
* Look what is inside the "COM and LPT ports" list.
If nothing shows up or appears in the "Other devices" list, try
changing the USB cable or the server
* Remember the number of the COM port to which the server is connected.

![server-plugged-device-manager](assets/server-plugged-device-manager.png)

2. Check the connection:
* Insert the COM port number into PPVoting settings.
* Click "Check connection". It should end up with a success message.

4. Turn on the voting controls.

In case you do not have the remote controls, you can emulate them with your phone:
* Connect to the server's Wi-Fi (name: `ArbUZ361`, password: `gumANOId1`)
* Search for `http://192.168.1.1/X` in the browser, where `X` is the number of the answer button you want to sent, from 0 to 6
* The server should respond with `

Success :D

`.

5. Open your PowerPoint presentation, and start a slide show.

PPVoting will automatically start all its features that are enabled in the settings.

Enjoy!

## Build

* [plugin](modules/plugin/README.md)
* [server and voting controls](modules/embedded/README.md)

## License

GPLv3

PPVoting
Copyright © 2021-2024 Mark Lagodych

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see .