Yuma’s Status Report 4/27

Accomplishments This Week

This week I worked on finishing the final slides and presenting them. I was able to make a little progress on the UI though a few issues in terms of the shutting down modules started bugging out so I was distracted fixing them. This was mainly due to a compression issue in json which uncompressed, was not able to cast into the list I wanted it to be.

Project Schedule and Progress

Schedule moving fast, and I am making good progress. A main concern is about finishing all the deliverables on time before the demo while balancing finals studying for other classes.

Goals for the Next Week

I will work to complete the product in terms of software integration.

Yuma’s Status Report for 4/20

Accomplishments This Week

I was able to figure out how to determine unique codes for each processor so that on times of restart, its respective data would be sent back. As of now, I am using the mac address to distinguish scanner modules, and it is working fine. I also have been integrating the UI with the system, which has been a roadblock. I have no experience, and it has taken a while refactoring code so that the UI display (using the tkinter package) would function. For example, the display needs to be on the primary thread whereas all the other threads (i.e. reader/writers) are on auxiliary threads. New listeners needed to be spun off for communicating with the display, which has taken a lot of time doing. I also fixed a couple bugs with the recommendation algorithm, which used to not properly calculate the timedelta value for the weights (i.e. ExpDate and ScanDate).

Project Schedule and Progress
Progress is strong, and I have accomplished what I expected. I have yet to fully integrate and create the UI and OCR, though the OCR is roadblocked by my fellow team mate. I have yet to integrate the temperature sensor as well since the other components take priority. The division of labor does feel very unfair when I clearly have a lot of work and my teammate is on his phone the entire capstone period. I will try my best, though.

Goals for the Next Week
I hope to keep integrating the UI, and hopefully the OCR once its API has been given to me.

Some new knowledge I needed to learn in order to complete the project was dealing with the UI. I think that like many things, immersing yourself in the subject matter is the best way to learn it. Therefore, I looked up youtube videos on how to do UI, looked up articles, and looked at the relevant information. I also talked about it with my friends and about smart strategies implementing listeners on the front end. I thought that this process helped me acquire the skills very rapidly, and was able to apply them to this project.

Team Status Report for 4/20

Risk Identification and Mitigation Strategies
Primary Risk Concern: Our primary concern is the OCR finishing on time. This module of the project has been in the work for a while but we underestimated how long it would take for it to finish. Although this would be put as our priority for this week, Yuma still would need to integrate it into the code once its finished, taking more time.

Mitigation Measures:
Yuma will be solely focused on finishing the main module, and Jason will be solely focused on finishing the OCR.

Project Design Updates
As of the current reporting period, there have been no modifications to the initial design of the project.

Validation

For validation, the points remain from last week’s status report. One new aspect that I forgot to consider is validating our display. As of right now, the testing setup is a jumble of buttons and in order to meet the usability requirement, we hope to declutter and make the display more prettier. We will try to hit this requirement along with the other tests and metrics we hope to hit, mentioned in last week’s status report.

Schedule and Timeline
We are a little lagging behind the schedule but we do have enough complete for the final presentation and should have all of the remaining tasks done by demo day.

Yuma’s Status Report for 4/6

Accomplishments This Week

We were able to show the interim demo this week on the real software, and it was pretty good. Afterwards, I was able to keep developing the software so multiple scanner modules would be able to plug in. We had some issues where server closes were not detected by the client, so we fixed it by spawning reader threads. One problem I ran into was that when the scanner module is shut down & restarted, the unique identifier I was using would change. This would make the central computer think it was a completely different scanner module joining, rather than one that was already in the system. I’ve been trying to fix this, but at least for the same localhost, restarts after shutdowns are working well.
Demo is viewable at this link: https://drive.google.com/file/d/1JqQbArqMs0_zuo20xcsWn8leIyXCxjUR/view?usp=sharing

Project Schedule and Progress
Progress is strong, and I have accomplished what I expected this time last week. I expect to contribute less during Carnival week due to Booth commitments, though. I have yet to integrate the UI and the OCR, as these parts are handled by my partners and these are still not completed.

Goals for the Next Week
I hope to find other ways to distinguish between the scanner modules even when they are restarted. I hope to also implement a C-ACK for the items being sent, as ACK’ing each item is a lot of messages when a CACK for the most recent item could ACK all the messages behind it as well.

Yuma’s Status Report 3/30

Accomplishments This Week

We have been coding on our laptops the past couple of weeks, and this week we were able to test on the real hardware. This was partially fueled in motivation due to the interim demo, which we are looking forward to demo the barcode scanner and system performance. Jason has been experimenting with other OCR methods, so that is why we were not able to integrate the expiration date part yet. In terms of real hardware, I took a while to understand the broadcasting mechanisms for python, and was able to test message passing between two different nodes. It worked great, and the recommendation algorithm was also implemented. Although the UI is not developed yet, we are able to write commands on the console to simulate this feature (i.e. display the current item list, clear the item list, give recommendations, etc).

Code for this recent week should be viewable at the link: https://github.com/Yumam20/d3-intellistorage

Project Schedule and Progress
Progress has returned back to schedule, where we have started system integration onto the real hardware. Although a big bottleneck is the OCR integration (when it is actually done), the integration part should be the easiest with the framework mentioned in last week’s report.

Goals for the Next Week
I hope to develop more features into the base code regarding the data resiliency portion. I hope to implement the distributed consensus protocol while making sure the code functions.

Yuma’s Status Report 3/23

Accomplishments This Week

We were able to start system integration this week, with my base code and Siyuan’s barcode & API look-up code being integrated. Though the base code needs to be multi-threaded to accommodate multiple scanners, the case with one scanner has been tested locally. Integration with the OCR portion of the code has not been done due its incompleteness, but it should be relatively straightforward. Message passing between the nodes occur by pickle-ing (compressing) a python dictionary, and adding another field in the dictionary for expiration dates should be the bulk of that system integration.

DEMO: https://drive.google.com/file/d/1H2cDMiZZZ_PCPCaR0H5_NAW3WiDHjY_h/view?usp=sharing
[One central computer and one scanner node is instantiated, a barcode is scanned (simulated by entering a PLU), and the user checks if the item is right. The item information then is sent to the central computer, which is confirmed by the consistency of text displayed on the scanner and central modules)]

Project Schedule and Progress
Progress has been good, in terms of catching up from the deficit these past two weeks. We are close to being back on track, with the bottleneck being the OCR integration. I still hope to make more progress on the base code so that there can be some slack during the week of Carnival.

Goals for the Next Week
I hope to start multi-threading the base code to accommodate for multiple scanners. I imagine that this may be complex in terms of synchronization, but I hope to base my code off of the 15-440 KV-store project code.

Team Status Report for 3/23

Risk Identification and Mitigation Strategies
Primary Risk Concern: Our primary concern currently is the camera image acquisition rate. We did not expect to run into a problem where the camera is not able to stream images continuously, instead it happens at the frequency that a python function is called. Since this rate limits the amount of images we are able to acquire in a single period of time, we are not able to gather images that we may want for good classification.
Mitigation Measures:
We are currently trying to find alternative methods of acquiring images, such as a screen capture or photos being dumped to disk before we read off of it. These methods add latency, so we are also experimenting with multi-threading the main python function in hopes of getting better image acquisition performance. Another mitigation measure could be strengthening the OCR algorithm, though this is a last resort due to the nature of its complexity.
Project Design Updates
As of the current reporting period, there have been no modifications to the initial design of the project.
Schedule and Timeline
We are not on track with our timeline. The development for the OCR algorithm detecting expiration dates has been falling behind and we haven’t been able to integrate that portion of the scanner module yet.

Yuma’s Status Report for 3/16

Accomplishments This Week

There were no big accomplishments on my side this week. I was visiting my parents at home as they were in a life-threatening car crash this January. However, I was able to set up an echo server for sending messages between the nodes. The closing condition (closing the connection) is still a bit buggy but the code is pushed to our repository at https://github.com/Yumam20/d3-intellistorage/

Project Schedule and Progress

This visit home was unplanned with respect to the Gantt Chart. If it was, I would’ve bought lottery tickets. This though puts me back a week in terms of schedule. I hope to make this work up this coming week.

Goals for the Next Week
I hope to start writing code to integrate the barcode and scanner modules into the main framework. I hope to also tweak the base design based on the design changes we made during the design review process.

Yuma’s Status Report for 3/9

Accomplishments This Week

The main (biggest) part of this week was the design review report. I was in charge of sections 6-9, but ended up helping and rewriting a lot of the stuff in all the other sections. I also fabricated many diagrams that would be put into this report. I think it was a very insightful experience, as trying to explain design choices led me to question my design, sometimes resulting in design changes. It also helped that our design review presentation received constructive criticism, some of which we took in to our design.

One example of a change in design is the temperature sensor. One feedback we received was about the correlation of temperature and “how fast an item expiration goes.” Although it is out of the 12 week project scope to implement some ML algorithm to detect expiration date changes, we decided to install a temperature sensor to our main module. This way we can at least categorize the storage space to be cool/hot and make ROUGH expiration date changes.

Project Schedule and Progress

I did not expect the design review report to take this long. I also did not want to work over spring break, as I was traveling with friends abroad. Therefore, we are behind schedule. I will also be visiting my parents in Philadelphia this coming week as they are being released from the hospital, though I hope to work asynchronously with my teammates.

Goals for the Next Week
I hope to start writing code to integrate the barcode and scanner modules into the main framework. I hope to also tweak the base design based on the design changes we made during the design review process.

Yuma’s Status Report for 2/24

Accomplishments This Week

Firstly, we presented our design review this week. During the Q&A, an interesting alternative for storing data on the central computer & edge servers was proposed — ZFS. I spent some time this week conducting a trade study for this technology versus a vanilla implementation of RAID.

On top of this, I was able to setup the repository for the project and draft the bare-bone code used to register items and communicate between nodes. This code is pushed to the repository. A problem I encountered was formatting the data being sent, but was able to resolve it by performing lossless compression on the class member using the pickle library and unpickle-ing it at the recipient. I would say it was a productive week.

Project Schedule and Progress

Although I was a bit behind schedule last week, I managed to bring it back on schedule this week. I hope to work ahead this week, though I am not sure how much can be done as the design review is also due this week.

Goals for the Next Week

I plan on starting to define an interface between Siyuan and Jason’s portions of the code so that we are on the same page about how barcodes and camera input are being put in as data. I also plan on dedicating a lot of time this week to write and clean up the design review document, as well as review comments that were given on our presentation.