{"id":122,"date":"2023-03-10T20:47:55","date_gmt":"2023-03-10T21:47:55","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/?p=122"},"modified":"2023-03-10T20:47:55","modified_gmt":"2023-03-10T21:47:55","slug":"nina-duans-status-report-for-3-11-2023","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/2023\/03\/10\/nina-duans-status-report-for-3-11-2023\/","title":{"rendered":"Nina Duan\u2019s Status Report For 3\/11\/2023"},"content":{"rendered":"<h6><b>Personal Accomplishment<\/b><\/h6>\n<p><span style=\"font-weight: 400\">Other than completing the design review report with my teammates, I also worked on a couple of tasks.<\/span><\/p>\n<p><strong>1. Voice Synthesizer Script<\/strong><\/p>\n<p><span style=\"font-weight: 400\">To assist Shiyi with developing an accessible UI, I created a voice synthesizer script using the open source library Google Text-to-Speech (gTTS). The script allows the user to synthesize any English text from both an input prompt and the command line:<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-123\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-15.46.56-300x119.png\" alt=\"\" width=\"741\" height=\"294\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-15.46.56-300x119.png 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-15.46.56-768x305.png 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-15.46.56-1024x407.png 1024w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-15.46.56-1200x477.png 1200w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-15.46.56.png 1242w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/p>\n<!--[if lt IE 9]><script>document.createElement('audio');<\/script><![endif]-->\n<audio class=\"wp-audio-shortcode\" id=\"audio-122-1\" preload=\"none\" style=\"width: 100%;\" controls=\"controls\"><source type=\"audio\/mpeg\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/statusReport.mp3?_=1\" \/><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/statusReport.mp3\">http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/statusReport.mp3<\/a><\/audio>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-124\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-15.48.48-300x20.png\" alt=\"\" width=\"645\" height=\"43\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-15.48.48-300x20.png 300w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-15.48.48-768x50.png 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-15.48.48-1024x67.png 1024w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-15.48.48-1200x79.png 1200w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-15.48.48.png 1370w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/p>\n<audio class=\"wp-audio-shortcode\" id=\"audio-122-2\" preload=\"none\" style=\"width: 100%;\" controls=\"controls\"><source type=\"audio\/mpeg\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/statusReport2.mp3?_=2\" \/><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/statusReport2.mp3\">http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/statusReport2.mp3<\/a><\/audio>\n<p><strong>2. Database and customer-side model for orders, items, and the menu<\/strong><\/p>\n<p><span style=\"font-weight: 400\">I finalized the representations of orders, items, and the menu both on the cloud database and in local storage:<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-133\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/OrderDesign1-226x300.jpg\" alt=\"\" width=\"475\" height=\"631\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/OrderDesign1-226x300.jpg 226w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/OrderDesign1.jpg 461w\" sizes=\"(max-width: 475px) 85vw, 475px\" \/><\/p>\n<p><span style=\"font-weight: 400\">The design review report goes into detail about the model and how they interact with each other, so I won\u2019t repeat them here. The important thing to note is that, by design, the local copy won\u2019t be uploaded to the cloud until the customer finishes ordering by calling checkout().<\/span><\/p>\n<p><span style=\"font-weight: 400\">I have tested the flow and successfully added sample orders into the cloud database:<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-130\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-12.03.54-267x300.png\" alt=\"\" width=\"599\" height=\"673\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-12.03.54-267x300.png 267w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-12.03.54-768x862.png 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-12.03.54-912x1024.png 912w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-12.03.54-1200x1347.png 1200w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/Screenshot-2023-03-10-at-12.03.54.png 1226w\" sizes=\"(max-width: 599px) 85vw, 599px\" \/><\/p>\n<p><strong>3. Staff-side model for orders<\/strong><\/p>\n<p><span style=\"font-weight: 400\">I designed a model to represent orders for the staff-side as well:<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-134\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-content\/uploads\/sites\/248\/2023\/03\/staffSideOrder.jpg\" alt=\"\" width=\"201\" height=\"272\" \/><\/p>\n<p><span style=\"font-weight: 400\">This object will automatically be generated when a subscriber to the Redis pub\/sub channel receives a new orderNum. It allows the staff to view order items, cross out prepared items (using finishItem()), and remove completed orders from the cloud database (using removeOrder()).<\/span><\/p>\n<p><strong>4. Redis pub\/sub and fetching orders from the database<\/strong><\/p>\n<p><span style=\"font-weight: 400\">The Redis pub\/sub channel is shared by the customer-side modules (publishers) and the staff-side modules (subscribers). Once the customer-side order publishes its orderNum, the staff-side subscriber thread will receive a message containing the orderNum and spawn a child thread to fetch that orderNum\u2019s information from the database.<\/span><\/p>\n<p><span style=\"font-weight: 400\">I have implemented this functionality as well, but it still requires more testing.<\/span><\/p>\n<h6><b>About Schedule<\/b><\/h6>\n<p><span style=\"font-weight: 400\">Since all of us are slightly behind, the database and NLP integration hasn\u2019t been able to happen, yet. I am fairly confident that the database component is complete functionality-wise, and unit-testing has been conducted. Therefore, once we meet again next week, Lisa and I will be able to start utilizing the database with data from the NLP module.<\/span><\/p>\n<h6><b>Plans for Next Week<\/b><\/h6>\n<p><span style=\"font-weight: 400\">Our microphone and infrared sensor are set to arrive next week. Therefore, I will shift gears and start programming the microphone against our RPi 4.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Lisa and I will also try to integrate our NLP modules and database modules during the mandatory lab meetings.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Personal Accomplishment Other than completing the design review report with my teammates, I also worked on a couple of tasks. 1. Voice Synthesizer Script To assist Shiyi with developing an accessible UI, I created a voice synthesizer script using the open source library Google Text-to-Speech (gTTS). The script allows the user to synthesize any English &hellip; <a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/2023\/03\/10\/nina-duans-status-report-for-3-11-2023\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Nina Duan\u2019s Status Report For 3\/11\/2023&#8221;<\/span><\/a><\/p>\n","protected":false},"author":687,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7],"tags":[],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-json\/wp\/v2\/posts\/122"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-json\/wp\/v2\/users\/687"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-json\/wp\/v2\/comments?post=122"}],"version-history":[{"count":5,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-json\/wp\/v2\/posts\/122\/revisions"}],"predecessor-version":[{"id":135,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-json\/wp\/v2\/posts\/122\/revisions\/135"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-json\/wp\/v2\/media?parent=122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-json\/wp\/v2\/categories?post=122"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s23-teamd3\/wp-json\/wp\/v2\/tags?post=122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}