Team Name
Q – Tech Solution
Timeline
Spring 2025 – Summer 2025
Students
- Wilmer Soriano – Computer Science
- Hamzah Quraishi – Software Engineer
- Rayan Gulaid – Computer Science
- Yongjun Lee – Computer Science
Sponsor
Dr. Shawn Gieser
Abstract
The Queue Management System is designed to specifically aim for an organized, real-time, digital queue during academic lab sessions. By placing small devices in each student station, designed with two buttons and an LED indicator. Students in need of assistance will be able to signal the instructor and be placed in a real-time queue displayed on live screen, by a GUI. The Queue is effectively managed and organized by the instructor.
Background
Many lab sessions, such as those in Computer Science and Engineering 1106, face a common issue: too many students and not enough Teaching Assistants (TAs). This imbalance often forces students to rely on hand-raising to request help, leading to disorganization, frustration, and anxiety. Students who have been waiting the longest may be overlooked, while TAs struggle to remember the order of raised hands, leading to a perception of unfairness.
For TAs, this creates additional load and stress, especially in fast-paced environments where multiple students require help simultaneously. These conditions are particularly problematic in introductory courses, where students are forming their first impressions of the academic experience. A chaotic, stressful help system can leave a lasting negative impact on both learning outcomes and student satisfaction.
This is where the Q-TechSolution team comes in!
By utilizing low-cost, Wi-Fi-enabled microcontrollers (Raspberry Pi Pico W) at each student station, and leveraging the existing lab Wi-Fi network, we introduce a lightweight, scalable system built on UDP communication. The queuing system we’ve implemented, FI-TAC (First-In TA-Chooses), organizes requests in a fair, organized order while giving TAs the flexibility to prioritize critical issues.
Our solution creates a structured, calm environment that improves the experience of both students and teaching staff, ultimately supporting a healthier and more effective academic setting.
Project Requirements
- Wi-Fi Network: A stable Wi-Fi network is required in addition to accessing Wi-Fi configuration for static IP.
- Display: A proper display such as TV, projector, or monitor to display the GUI
- Multiple Devices: Multiple Pico-W devices needed to be used during queuing for everyone.
- Robust Queue: The queue must be easily manageable by TA, by either queuing or dequeuing from both TA and student side.
- Lights: The LED lights will display the necessary action taken from the Pico device.
- Identification: Dipswitch will be used as the source for ID per device. So, it’s easily manageable for Queue and display device ID on GUI.
- Notification: Sound notification will be played when user enter the queue. Indicating to instructor to action.
- Troubleshooting: A troubleshooting indicating that the device failed to connect to Wi-Fi or has successfully connected to server.
- Accessibility: The device is easy to access and debug if needed.
- Manageable: The device is easy to recreate and manage with all other devices.
Design Constraints
- The accessibility of the devices requires the user to be knowledgeable in programming at the very least.
- Aesthetics for the early device version was too complex, getting feedback from 3rd party individuals help understand how queue should look like.
- The Cost for constructing 1 device is manageable, but making multiple becomes costly effective, so making budget plans is beneficial.
- The functionality is simple on paper, but can become complex very quickly, so we rely on simplicity functionality and making server static IP.
- A schedule must be made, making 30 devices take time and effort.
Engineering Standards
- Authentication & Encryption/Security Standards:
- UDP Protocol – Connectionless protocol without encryption. Suitable for the current closed network, but for future updates will consider PSK alternative.
- Common Engineering Standards:
- ANSI C18 & IEC 60086 – Standards for low-voltage power for Raspberry Pico-W and Raspberry Pi 3.
- IEC 60445 – Wire color and terminal identification used during wiring and PCB labeling.
- IEEE 802 . Section 11 – Governs Wi-Fi communication between Raspberry Pi Pico-W (Student Stations) and Raspberry Pi 3 (Host)
- ISO 21448 – Applied during (Client) Button masking phase to ensure the system fails safely in classroom environments.
- Programming Standards:
- Python(PEP 8) – All python code adhere to the official Python Enhancement Proposal 8 style guide for readability and consistency.
- ISO 25010 – Consider for quality such as reliability, usability, and maintenance in code.
- MicroPython – An efficient implementation of Python 3 specifically for microcontroller, Raspberry Pi Pico-W.
- Git Workflow Practices – Followed a structures version control with feature branching, pull requests, and proper commit history.
- Design Standards:
- IPC-2221 – Referenced in PCB layout for trace width, spacing, and general board rules.
- ISO 68 – Screw Threads
- ISO/ASTM 52900 – General guidelines for 3D printing, when designing and fabricating custom prints.
System Overview
The Queue Management System uses non-blocking sockets for real-time updates, visual animations to indicate activity, and notification sound alerts when new requests arrive. The entire system functions over a local Wi-Fi network with no dependency on cloud services, enabling fast and secure classroom operation. The Queue Management System is composed of 2 major components:
1. Student Station (Client)
- Each student station uses a Raspberry Pi Pico W. The hardware includes:
- Red and Green push buttons.
- A bi-color LED for the type of indication.
- A DIP switch to configure a unique device ID
- Embedded MicroPython code to handle Wi-Fi connection, button detection, and UDP message broadcasting
- When a student presses a button, the station sends a message for example: [ ID:5,status:red ] , to the server via UDP.
2. Host Module (Server + GUI)
- The host is a Raspberry Pi 3 running a Python-based GUI:
- A UDP listener receives status updates from each station.
- A DeviceManager tracks device state, queue order, and time of arrival.
- The GUI, built with Tkinter and Pillow, displays all devices in a 6×5 grid with color coded boxes.
- Clicking a box removes that station from the queue and sends a [LED_OFF:<color>], command back.
Results
We have successfully tackled the main issue of handling incoming requests from many students to single TA and simplified to a digital queue line for easy and stress-free teaching environment.
Future Work
Looking ahead we would like to implement several new updates such as:
- Creating a setting tab for Server to be able to manually set an IP address without the use of Wi-Fi configuration.
- Setting tab background image, to easily add or customized as TA like
- More sound effect option
- Getting Live feedback from users.
- Easy to connect Pico to Server without having to access code.
Project Files
Project Charter
System Requirements Specification
Architectural Design Specification
Detailed Design Specification
Poster
Closeout Materials
References
[1] Raspberry Pi Foundation, “Getting started with your Raspberry Pi Pico W”, Raspberry Pi Foundation, (2022), https://projects.raspberrypi.org/en/projects/get-started-pico-w/0
[2] Mr.T’s Design Graveyard, “KiCAD 7 PCB Layout in 5 steps”, Mr.T’s Design Graveyard YouTube, (2023), https://youtu.be/3FGNw28xBr0?si=hqi5qxRoRTM7_cUK
[3] Fredrik Lundh, Jeffrey A. Clark, Sphinx, pradyunsg’s Furo, “Pillow (Python Imaging Library (Fork)) PIL”, (1995-2011), https://pillow.readthedocs.io/en/stable/
[4] Pythontic, “UDP – Client and Server example programs in Python”, Pythonic, (2025), https://pythontic.com/modules/socket/udp-client-server-example
[5] CODE https://github.com/WilmerSoriano/Queue-Management