This past week, we have made substantial progress in developing the web app. In just a week we have created functional webpages for data entry, navigation, and mass barcode generation. Unfortunately, we do not have data-display yet up and running as we would have liked to by this time, but we remain optimistic that we will have a functional page for looking up shipments and displaying important statistics of the shipment very soon. (When we do this will complete the minimum requirements of basic functionality for the project). Additionally, we have integrated Material UI components to these webpages, making the individual pieces like the buttons and the data fields of each page more polished. We have run into some hurdles along the way: figuring out how to print barcodes from the web app has proven to be more difficult than expected and implementing web navigation has been challenging to say the least. However, we remain optimistic that we will continue to make strong progress; in the coming week we have the opportunity to connect with our project partner and update them on the status of our project and show them some of our progress. Additionally, we will be moving forward with the stylistic aspects of the app, using CSS to polish the UI, while we clean up some of the code that we have written, decomposing functions and adding comments to make the overall project more accessible to outside users. At the same time some of us will be updating our documentation as our project develops with each passing week while the rest of us will focus more heavily on stress-testing the prototype and iterating over designs.
Now that the craziness of relocating from campus has subsided and Zoom conference calls are becoming the new norm, this past week we were finally able to really dive back into the project and plan towards the future. With the recent news that we will be unable to travel over this summer, we have decided to focus more heavily on web app development in the next ten weeks. Our hope is to have a functional web app that allows to user to easily enter and access data and view summary statistics of this data as well as print barcodes and scan them into the system. To that end, we began wire-framing (coming up with a design for the user interface) at the start of this week and now have a design which will enable us to move forward with the actual build-out of the web app. Additionally, we have conducted research into what barcodes we think would serve our purposes well and how best to integrate barcode generation, printing, and data entry into the web-app by reviewing various available packages. In the coming weeks, we will be moving into high gear, focusing on completing a functional user interface for a homepage, barcode generation, and fast data entry. At this stage, there have been some difficulties with scheduling around different time zones, communicating with Zorzal, and only working over Zoom, but we remain optimistic that we will be able to face these challenges and overcome them in the coming weeks.
As I'm sure all of you know, Stanford has transitioned entirely to online classes. Students are being encouraged (some would say pressured) to leave campus, and those who have already left cannot come back. Dining halls are apportioning food into individual plates. There are hand sanitizer shortages. And Stanford feels like a ghost town. One of my friends writes, "the most we can do is construct voices out of empty corridors."
To put it lightly, our Zorzal project has taken somewhat of a backseat. Unfortunately, our plans to travel to the Dominican Republic have been cancelled. We have not had an in-person meeting. Frantically trying to make travel plans has made it hard to find time to do work (either for this class or others). And when I do have time, it's hard to focus with uncertainty looming.
Despite this, however, I do not expect the rest of this quarter to be a complete loss. We will strive to do what we can. Mark and Austin have been working on completing the prototype documentation. The rest of us have been working on revising other documentation.
Furthermore, we do have a (somewhat) functional prototype. Right now, we have a "dummy frontend," which is basically the simplest possible way to enter data. You give it a shipment ID and stage, and it adds a timestamp to the database. Speaking of which, we also have a functional database. We have been working on improving our database structure and rules to have more internal consistency and less chance of errors.
We are now able to read the basic information about one shipment. We are refactoring the code to use a more modern version of React. Furthermore, Langston found a potential way to do data analysis in a Cloud Function, which solves a main worry regarding the Firebase framework. There is also the possibility of doing something else in lieu of travel: perhaps Charles could do a video call where he walks us around the fermentation plant.
Although this is not the ideal end to our quarter, we are still making do to the extent we can. Next quarter remains uncertain (how will class work when we can't meet in person?) but I believe every member of our team remains committed to this project.
After finishing our project spec and other pieces of documentation for the project, we have recently begun the actual implementation of the web app. We ordered a barcode scanner and have also started building the basic dummy front end to interact with our database. This process is going well; we are starting by building a tool to view data and a tool to enter data. We are collectively learning the right tools to use for the software as we go, which slows the process somewhat but ultimately results in a better functioning product. Going into the next couple of weeks (and last weeks of the quarter), we hope to have an almost working front end for our web app that can interact with the database.
This week, we also had our second partner call with Charles. We were able to ask some clarifying questions about our product as well as begin to nail down itinerary details for the spring break visit. We hope to use the spring break trip to really solidify our barcode tagging process. Being there in person will be extremely helpful for our understanding of the process and determining the most feasible and likely strategy for success.
This past couple of weeks has been a period of immense growth for our project. We are beginning to have a tangible product, and it is exciting to watch the pieces start to come together after the planning and designing stages.
Going into week 6 of winter quarter, we’re excited to start prototyping sections of the web app. We’ve spent the last several weeks laying out our design, deciding on a technology stack, and learning the tools required to start prototyping a basic version of our design. At present, we have a database with a model of a database entry built on Google Firebase and are constructing the front end components to begin entering data into the database and displaying entries when provided a serial number. Additionally, we are looking into scanners to test connectivity and data entry via barcode scan rather than manually.
Looking forward, we’re hoping to have a working front end that allows for reliable data entry and retrieval by spring break so we can spend next quarter building out the user interface, adding offline functionality, and testing the full product. At this point, we’ve made the decision to wait before deciding on a final interface until we have the chance to get more information about our users from our trip to the Dominican Republic over spring break. We’re also looking forward to a call with Charles Kerchner, Zorzal’s CEO, in the coming weeks. We’re excited to show him the progress we’ve made and to finalize travel plans for break!
Starting week 3 of winter quarter, the Zorzal team is very excited with where the project is going. We had an in-depth partner call with Zorzal CEO Charles Kerchner earlier in the week, during which we discussed the cost of implementing the web app, the boxing process, Zorzal’s infrastructure, the actual barcodes, and the software that would be a part of our project. This information helped us all gain a better picture of the overall project, and how we can best serve the interests of Zorzal.
Charles wants us to create a web app system that can track at which farms cacao shipments were produced throughout each stage in the fermenting, drying, and packaging process, updating an online database with the dates and times each particular shipment moves through the supply chain. Additionally, Charles hopes to have a way for his clients to scan and access the barcode eventually so that they will have access to information about his shipments as well as future capabilities for the app like updating temperature and moisture data. At this stage we have decided that we need to define a minimum viable product that is feasible to create in the next few quarters that will also add value to Zorzal’s process.
With this in mind, we would like to implement a barcode tracking system that updates date and time of each shipment with the capability of adding other data in the future by the end of the year. For this quarter, ambitiously, we are hoping to have a back-end database up and running and the ability to manually enter data to see how information is being stored in the database as well as a symbology for encoding information in barcodes.
At this point in the project, we continue to focus largely on web app development, making progress both on the frontend and the backend. In the past week we finalized schematics for our frontend, enabling us to move forward with creating a framework in React for the UI. To improve upon the aesthetics of the UI, we have been looking into including Material UI, a React framework that incorporates ready-made components like buttons to facilitate the design process. Additionally, to navigate between pages fluidly, we have been working on implementing React Router which will eventually allow us to click on a link on the homepage and move to a different page seamlessly.
At the same time, we have been working on creating a page for generating barcodes. As of right now we have a component created for the UI part of the barcode generation page allowing the user to enter in a number of shipments and select a farm from a dropdown menu. Upon hitting submit, ideally, we would be able to create that number of barcodes and enter these barcodes and their respective farms into the database. Upon entry into the database, the barcodes should then be printed. Optimistically, we will have this implementation of the barcode component completed by the end of this week and ideally, we will be able to navigate from a homepage to this page. Finally, we have also reassessed the logic of entering data into the database and continue to explore our options on that front to ensure that our approach is maximally efficient.