Min Ji’s Status Report for April 12

This week, I focused on three major subsystems: Raspberry Pi audio narration, synchronization between the website and Raspberry Pi, and user interface finalization for both Challenge and Standard Modes. Each component has been implemented and tested.

  • Raspberry Pi Audio Narration: I made an attempt on implementing the speech functionality using pyttx3 on the Raspberry Pi after confirming that previous options such as espeak-ng and Google Cloud TTS were not viable. The audio narration still had some issue and Vicky took over.
  • Website-to-Raspberry Pi Synchronization: I took over from Vicky and worked on the website-related tasks. I developed a complete data pipeline that allows the Raspberry Pi to download new CSV files from Google Drive, parse the contents, and append only new questions to the local questions_and_choices.json database. This process avoids duplication by checking previously synced filenames. I also categorized questions upon import and ensured filtering logic, particularly for the new “Customization” category, was respected during gameplay.
  • Standard Mode Customization Integration: I created a new “Customization” category and implemented the filtering logic so that only relevant questions appear when this category is selected. I also built a new page to handle this mode in the same structure as the existing standard gameplay. I confirmed that questions in this category render correctly and are narrated on the Raspberry Pi.
  • Challenge Mode UX Improvements: I finalized the post-game flow by adding a screen prompting users to either exit or continue. If “continue” is selected, the previous score is preserved and the game resumes; if “exit” is selected, the user is redirected to the candy selection screen. I also added logic to automatically return to the home screen if the score reaches zero. It works the same as the standard mode.
  • Hardware – Aesthetic Polishing: I painted the outer wooden structure of the vending machine to give it a clean and arcade-like appearance for the demo and final presentation.

 

I am currently on schedule with my contributions and slightly ahead in some areas. There are no outstanding tasks from this week, and no additional catch-up work is needed at this time.

 

In the upcoming week, I plan to do the following:

  • implement the logic for generating a QR code that links to the website and allows users to download question sets and assist with deploying the website to support this functionality
  • begin preparing our final presentation slides and submit them for review and feedback by Tuesday and Wednesday.

Min Ji’s Status Report for March 29

This week:

  1. Hardware Fabrication & Setup
    I spent significant time laser cutting and assembling key components of our vending machine. I laser cut structural parts and began researching how to enable kiosk mode on the Raspberry Pi, alongside digging into the persistent issues with text-to-speech narration. The following day, I laser cut the main board for the project and spent the evening at TechSpark, taking advantage of tools and space to focus on precision fabrication. I also laser cut the SweeTrivia letters and front panel, and glued the candy dispensing wire into place on the motor using hot glue to keep things neat and secure.
  2. Audio Output & Narration Integration
    After struggling to resolve the TTS issue using other tools, I successfully connected the Raspberry Pi’s audio output to an external speaker. However, the audio narration works on my local laptop, not in the rpi, so I am planning to move back to espeak-ng from the browser-based web API.  I restored narration using espeak-ng, which offered much more reliable performance. This works on my local, so I will have to test this out on Sunday(3/30) if this works with the rpi as well.
  3. Candy Selection Logic & User Feedback
    I focused on refining the candy selection interface and ensuring it functioned properly with the point system. Previously, the screen displayed incorrect options, especially when the user reached 50 points, and the game automatically ended. I fixed the logic so that no matter how many points the user gets, it shows the exit/continue option only if 10 seconds have passed. Additionally, I implemented a candy dispense eligibility logic so that users are only able to select candies that are priced within the user’s budget. Affordable candies are shown, and added new feedback mechanisms: if the user has zero points, they’re redirected to the home screen once they decide to exit since there is no need for candy dispension, and if they try to purchase something they can’t afford, a warning saying “Not enough points!” appears instead of failing silently. These enhancements improve both usability and gameplay clarity

<Video of standard code gameplay: 3.29 Standard Mode Gameplay>

I think I am on schedule, but I will have to keep testing the audio using the external speakers and changing back to espeak-ng.

In the upcoming week(3/30-4/5), I am planning to continue developing both the functionality and user experience of the vending machine system by accomplishing the following:

  • test the Raspberry Pi audio narration using espeak-ng to ensure consistent and clear voice output across different stages of the game.
  • prepare for our in-class demo by ensuring the core features—including candy selection, narration, and screen transitions—are working smoothly together.

Since narration is a key component of user engagement and accessibility, I want to verify that the system behaves reliably during full gameplay runs, including transitions between questions and responses to user input.

After the demo on April 2nd, I plan to implement a more sophisticated points-based shopping system. Instead of a one-at-a-time candy selection, this upgrade will allow users to select multiple candies as long as their total selections of candies stay within their point budget. This feature will more closely resemble real-world shopping behavior and enhance gameplay flexibility.

Following that, I also intend to finalize the UI/UX elements and refine them based on peer feedback and demo observations. Improvements may include clearer visual cues, responsive buttons, and improved text readability. Additionally, I am also looking into randomizing the trivia questions each time the game is played to improve replayability and make the experience more dynamic for users who return to the machine more than once.

Min Ji’s Status Report for March 22

This week, I mostly continued working from where I left last week.

3/17:

  • Improved candy dispensing screen flow on the touchscreen interface
  • Added functionality for the “go back” button in all screens
  • Adjusted the overall UI/UX to closely match the provided Figma design specifications.
  • Work time: approximately 2.5 hrs

3/20:

  • Troubleshoot audio narration problems
    • Note: due to unresolved technical issues, I temporarily disabled audio narration to ensure reliable touchscreen testing. I am planning to add that back once I figure out the issue. I am assuming it’s because I did not connect the touchscreen HDMI with the Rpi micro HDMI. I now have the cable, so I will try testing that out next week.
  • Work time: approximately 6.5 hrs

3/21:

  • Purchased wood boards from Techspark with Vicky and discussed initial designs for the physical construction of our trivia kiosk.
  • Had a meeting with David and received valuable advice about environment variables and setting permissions correctly for kiosk mode.
  • Work time: approximately 2 hrs

My progress for this week is mostly on schedule. While encountering audio narration issues set back my initial timeline slightly, I managed to remain productive by pivoting my focus toward essential touchscreen UI/UX tasks without the audio narration function and physical design preparations. To prevent future delays, I ordered the HDMI converter promptly, and next week’s tests should resolve the audio issue, allowing me to get back on track.

For the upcoming week (3/23–3/29), I plan to achieve the following:

  • Conduct thorough testing using the newly received micro HDMI-HDMI cable to resolve and verify audio narration functionality on our touchscreen interface.
  • Start on the physical building of the machine, now that each component of the vending machine has reached a decent level for the demo.
  • Write the initial code for the Rpi to send a 4-digit signal upon candy selection(we have four candy selection slots), enabling communication between software and physical components so that Vicky can continue from there for candy dispensing.
  • Deploy our project website, enabling integration into kiosk mode for better UI/UX design.

I have an exam on Wednesday, so I will be working mostly after the exam this upcoming week, but I will make sure that I achieve my plans.

Min Ji’s Status Report for March 15

This week, I dedicated a significant amount of time implementing the key aspects of our SweeTrivia project:

1. software development(pygame & web interface)

2. touchscreen testing

3. troubleshooting hardware-related issues(speaker & timer malfunction).

3/10/25:

  • Developed the Pygame-based home screen and tried integrating it with the basic gameplay loop. I only coded for the home screen for now for basic testing.
  • work time: approximately 4 hrs

3/11/25:

  • Tried connecting the local code to the rpi and tested with the new touchscreen.
  • Found out that the ratio was different on my local laptop vs touchscreen, so recode to adjust
  • work time: approximately 3.5 hrs

3/13/25:

  • Completed the implementation of the web-based standard mode, completing 7-8 screens, without having minor UI/UX adjusted based on the Figma.
  • Had a meeting with the professor and learned more about how to use the LovableAI for web-based programming
  • work time: 3 hrs

3/14/25:

  • Had trouble linking the lovable git to our public SweeTrivia git, and fixed the git link issue that was preventing the version control version.
  • Tested the new software version on the touchscreen including screen transitions for most of the game flow.
  • Had a meeting with Alex and asked for technical advice and the budget question
  • Emailed the professor to get feedback on the potential fixes that will be mentioned later in the problems.Video link: Touchscreen & Web Testing for 3/15/25

    Currently, my progress is on track, but I have several tasks to fix the issue. I have to debug and resolve the infinite narration loop issue that stops everything. This includes the timer malfunction and the touchscreen not responding, but I figured out that this is due to the infinite narration. Our current game is that the timer starts once the question narration is done, but because the narration sign is blinking infinitely, everything stops. I need to check again with that and maybe ask for help from the instructors.

In the upcoming week(3/16 – 3/22),  I am planning to do the following:

1. Enhance UI/UX and do some research on Kiosk Mode to improve the touchscreen interaction flow based on testing and feedback(by 3/16)

2. Speaker & Timer Debug(by 3/21)

– figure out the root cause of the infinite narration loop.

3. Order missing parts(MDF board, plastic sheet)(by 3/15)

4. Start building the physical vending machine and finish by the end of the upcoming week(by 3/25)

– Bend wires + glue them to the motors

– 3d Design how to mount the touchscreen to the MDF

Min Ji’s Status Report for March 8

This week, I finished developing the AI audio narration of the trivia game wherein both the question and all four answers are read aloud, moving from espeak-ng to pyttsx3. To achieve this, I converted the Google Spreadsheet database to a formatted JSON type so that the system can dynamically retrieve and narrate questions. The local testing is completed, and I am waiting for the new touchscreen to arrive so that I can test it with the built-in speaker(estimated delivery date: 3/10). I also finished polishing the Figma design, refining the UI/UX aspects to match the project vision.

My progress is so far on schedule. Finishing up the audio narration feature is a major part of the development, and I am prepared now to test it with the touchscreen’s built-in speaker when it is delivered. In the upcoming week, while I wait for the touchscreen, I plan to continue working on building the website. I will also start the physical building aspect of the project to get a head start. This includes cutting and assembling MDF boards, gluing the transparent plastic board, bending wires, and assembling them with the motors. Once Vicky completes her portion—the Raspberry Pi standard mode code for touchscreen controls and motor controls—I will create the UI/UX of the touchscreen interface. I aim to finish audio narration testing and the physical assembly by 3/14, then transition into polishing the UI/UX and debugging the website up until 3/21. If there are any unexpected delays, I will perform tasks that can be executed in parallel.

Min Ji’s Status Report for Feb 22

This week, I focused on finalizing the UX flow design and overall structure of how our vending machine would function, ensuring a smooth and open interaction process. The majority of my time was dedicated to testing and refining the AI narration system, assessing its effectiveness, and preparing it for integration. I successfully pushed my AI narration updates to our GitHub repository. Additionally, I verified and cataloged our hardware components to ensure we had all the necessary parts for the Raspberry Pi setup. In the process, I identified missing components, informed the team about what still needed to be purchased, and coordinated the next steps for hardware assembly. I also continued researching the spiral mechanism for candy dispensing, exploring potential implementation methods while considering mechanical constraints.

Progress is on track, but I am waiting for a teammate to upload her trivia questions to the shared Excel sheet so I can update the AI narration database accordingly. Leading up to the end of spring break, I plan to integrate the AI narration system with a speaker and Raspberry Pi, complete the narration database, and develop the standard mode into a minimum viable product (MVP). This will include implementing a 10-second timer countdown and enabling answer selection through physical buttons. My goal is to have the standard mode in a functional MVP state and ready for testing by the end of spring break.

Min Ji’s Status Report for Feb 15

This week, as part of the design presentation preparation, I was responsible for the use case & requirements and the quantitative design requirements. In addition to group efforts, I worked on local testing of the audio narration system using my laptop. Specifically, I

Right now, my schedule is on schedule. I am waiting for the parts to come so that I can continue and integrate the text-to-speech into the Raspberry Pi and speaker.

In the upcoming week, I am planning to begin writing 100 trivia questions and research potential libraries for smoother voice modulation. Assuming I have all the parts, I plan to conduct initial narration tests on the actual hardware ensuring clarity and correct volume, and modify the test script.

Min Ji’s Status Report for Feb 8

This week, I contributed to the project by preparing for the proposal presentation, setting up the project website, making necessary schedule modifications, and attending multiple group meetings to build different aspects of the project. I worked on structuring the presentation to effectively communicate our idea and ensuring our team was well-prepared. A significant portion of my time was spent on setting up the project website, where I designed the layout, added key sections for project updates, and ensured that relevant documentation and resources were accessible. I also modified the project schedule to align with our progress and anticipated challenges. My progress is on schedule, and no additional actions are needed to catch up. Next week, I plan to implement a spooky AI voice narration for the trivia questions and integrate it with the trivia system to ensure seamless playback.