Built as a submission for the Software project at Stuttgart Media University. This project also got presented at the MediaNight 2024.
Description
The project mplan is a redesign of the existing room information system at Stuttgart Media University, utilizing Raspberry Pi's to display room information. The goal was to create a modern and user-friendly interface for students to see all relevant information about current events at a glance. The main focus was to provide a clear and structured overview of current events and additional information about the rooms and lecturers.
The system consists of two main components: a web application for managing the room information and the Raspberry Pi Image for displaying the information on the screens. The web application allows privileged users to provision new devices, manage them and also add external calendar sources to individual rooms. The Raspberry Pi Image is a custom-built ubuntu-core image that works closely with a proxy to fetch the preexisting data without the need for a backend.
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.