{"id":303,"date":"2025-04-12T19:01:10","date_gmt":"2025-04-12T23:01:10","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamf5\/?p=303"},"modified":"2025-04-12T19:50:55","modified_gmt":"2025-04-12T23:50:55","slug":"min-jis-status-report-for-april-12","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamf5\/2025\/04\/12\/min-jis-status-report-for-april-12\/","title":{"rendered":"Min Ji&#8217;s Status Report for April 12"},"content":{"rendered":"<p>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.<\/p>\n<ul>\n<li><strong>Raspberry Pi Audio Narration<\/strong>: I made an attempt on implementing the speech functionality using pyttx3\u00a0on 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.<\/li>\n<li><strong>Website-to-Raspberry Pi Synchronization<\/strong>: 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 &#8220;Customization&#8221; category, was respected during gameplay.<\/li>\n<li><strong>Standard Mode Customization Integration<\/strong>: I created a new &#8220;Customization&#8221; 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.<\/li>\n<li><strong>Challenge Mode UX Improvements<\/strong>: I finalized the post-game flow by adding a screen prompting users to either exit or continue. If &#8220;continue&#8221; is selected, the previous score is preserved and the game resumes; if &#8220;exit&#8221; 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.<\/li>\n<li><strong>Hardware \u2013 Aesthetic Polishing<\/strong>: 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.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"font-size: 1rem\">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.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>In the upcoming week, I plan to do the following:<\/p>\n<ul>\n<li>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<\/li>\n<li>begin preparing our final presentation slides and submit them for review and feedback by Tuesday and Wednesday.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>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\u00a0on the Raspberry Pi after &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamf5\/2025\/04\/12\/min-jis-status-report-for-april-12\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Min Ji&#8217;s Status Report for April 12&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1086,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[16],"tags":[18],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamf5\/wp-json\/wp\/v2\/posts\/303"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamf5\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamf5\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamf5\/wp-json\/wp\/v2\/users\/1086"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamf5\/wp-json\/wp\/v2\/comments?post=303"}],"version-history":[{"count":3,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamf5\/wp-json\/wp\/v2\/posts\/303\/revisions"}],"predecessor-version":[{"id":306,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamf5\/wp-json\/wp\/v2\/posts\/303\/revisions\/306"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamf5\/wp-json\/wp\/v2\/media?parent=303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamf5\/wp-json\/wp\/v2\/categories?post=303"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamf5\/wp-json\/wp\/v2\/tags?post=303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}