
Built as a submission for the Software project at Stuttgart Media University. This project also got presented at the MediaNight 2024.
Description
mplan revolutionizes how students access room information at Stuttgart Media University through a modern, IoT-powered digital signage system. This comprehensive redesign replaces outdated room displays with sleek, responsive interfaces that provide real-time event information, lecturer details, and room availability at a glance.
The system architecture elegantly combines two core components: an intuitive web application for administrative management and a custom-built Raspberry Pi solution for seamless information display. Administrators can effortlessly provision new devices, manage existing installations, and integrate external calendar sources directly into room-specific displays.
The heart of the display system is a custom Ubuntu Core image engineered specifically for Raspberry Pi devices. This lightweight, secure operating system works in harmony with a smart proxy system to fetch live data without requiring traditional backend infrastructure, ensuring reliability and performance while minimizing maintenance overhead.
Reflection
Working on mplan was an exceptional learning experience that pushed me far beyond my comfort zone, particularly in IoT development and Vue.js/Nuxt.js ecosystem exploration. Coming from a React/Next.js background, this project represented a significant paradigm shift that ultimately broadened my technical versatility.
Joining the project after Tobias had established the initial prototype presented an interesting challenge in code comprehension and collaborative development. Our tight-knit two-person team fostered excellent communication, with every feature thoroughly discussed before implementation—a practice that significantly improved our code quality and project coherence.
The transition from React to Nuxt proved initially daunting due to fundamental differences in architecture and development philosophy. However, discovering Nuxt's exceptional capabilities—particularly its seamless view transitions and built-in internationalization support—revealed why it was the perfect choice for mplan's requirements.
The most technically challenging aspect was engineering the Ubuntu Core image for Raspberry Pi deployment. Ubuntu Core's unique snap-based architecture, combined with limited documentation, created a complex development environment. The iterative process of creating, testing, and debugging boot images became an exercise in patience and systematic troubleshooting, often requiring multiple attempts to achieve successful device initialization.
Developing a backend-less application while managing CORS restrictions introduced additional complexity that demanded creative architectural solutions. Perhaps most importantly, this project taught me valuable lessons in user-centered design—specifically optimizing information density and readability for 7-inch displays. Every pixel counted when designing interfaces that needed to convey critical information quickly and clearly.
The entire mplan experience was incredibly rewarding, combining hardware and software challenges in ways I hadn't previously encountered. I'm genuinely excited to see how students interact with the deployed system and look forward to gathering real-world usage feedback.
Appendix

