mplan

A redesign of the room information system at Stuttgart Media University
  • mplan

    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 enriching experience that provided me with numerous learning opportunities. Although I was already familiar with the React/Next.js ecosystem, this project allowed me to dive deeply into the Vue/Nuxt.js ecosystem. This shift was a significant learning journey, especially within the IoT domain, where I developed a more nuanced understanding of working closely with hardware.

    Upon joining the project, Tobias had already laid the groundwork with a prototype-like version of the mplan web app. My initial challenge was to get up to speed with the existing codebase and understand the interactions between various components. Despite the steep learning curve, I quickly adapted. In our small team of two, we collaborated closely and discussed each feature before implementation.

    A notable challenge was transitioning from React to Nuxt. The difference in structure and approach was initially overwhelming. However, Nuxt's strengths, such as its ease of implementing view transitions and internationalization (i18n), made it a fitting choice for mplan.

    Another significant hurdle was configuring the Ubuntu Core image for the Raspberry Pi. The process was complicated by Ubuntu Core's unique features and the sparse documentation available. After creating the image, the main challenge was a lengthy trial-and-error process to determine whether the Raspberry Pi would accept and successfully boot from the image. This involved testing multiple dummy images and making adjustments based on whether the device booted correctly, which extended the setup phase considerably.

    Additionally, developing a backend-less web app and addressing CORS issues posed their own challenges. These tasks required creative problem-solving and provided valuable learning experiences. Furthermore, I gained valuable experience in user-centered design, particularly in optimizing the display of critical information on a 7-inch screen. This required careful attention to layout and usability to make effective use of the limited display space.

    Overall, I'm very pleased to have been part of this project. The experiences and challenges we encountered have been incredibly rewarding, and I'm eager to see the rollout and receive feedback from the students.

    Appendix

    Booting screen
    Booting screen
    Final installation of the mplan system
    Final installation of the mplan system