As week 8 is winding down, we are beginning to move away from full scale web app development and focus more on documenting are code for the future. Langston is finishing detailed data entry, allowing the user to enter forms at the shipment, lot, and container level that will track various variables like cut and color. Julia and Austin are finishing the advanced data lookup pages, and we are all in the process of commenting the code that we have written. Mark just received labels for the barcode printer and is looking forward to seeing how the web app will interact with the barcode printer. He is hopeful that there will not be too much involved in setting the printer up, and that soon we will be printing barcodes for some dummy shipments and scanning them through various checkpoints. Ideally, we could run through such a test in our week 9 meeting.
In the final week and a half of the quarter the team wants to ensure that all of our documentation is up to date, emphasizing the operations manual and our code. To do this, we are planning an iterative process for our comments on our code, reviewing each other’s comments to ensure that they are comprehensive and cohesive. Similarly, we plan to revamp our operations manual to reflect our progress in the web app, understanding that a good operations manual is crucial to the deployment of our product. Fortunately, we have received constructive feedback that we expect to be instrumental in creating a final, polished document. We are optimistic that by quarter’s end, having completed these documents, we will have a viable beta version of our product. It will certainly have bugs, but we hope that it will be mostly operational and understandable for our target users.
Since last time, our team has been moving quickly to implement the changes to the web app to incorporate lots and containers as well as give the user the ability to enter finer tuned data in forms. Langston has been working hard on creating the forms pages and has a very nice template set up for a general form that enters the data into Firebase in a convenient way for storage. He is optimistic that by the end of Week 8 he will have this functionality complete. In the meantime, Austin and Julia have been working on how data display will be incorporated for the lots and containers. Austin has made serious headway on creating a kind of nested table that expands upon clicking on a given field, to allow users to control what is on the display for a given container.
Mark has been working on lot and container barcode creation for entry into the database. As of right now the system is set up to aggregate a set of shipments entered by the user into one lot that contains the ‘id’ and farm for each shipment within the database. There is also the possibility of adding form information for each lot to be included in the database. Containers are similar in that they are an aggregation of lots and also upon creation are entered into the database. As of right now, we have functions to enter and retrieve lots to and from the database and a function to enter containers. Julia is working on creating a function to retrieve containers for data lookup.
In the coming weeks, we will be working on finishing up the development projects we are currently working on and start commenting the code we have created. Austin has created a template for good comments that we will employ as we create our documentation for next year’s team. Additionally, we will be creating a higher-level version of documentation in the form of a README document to give users a better idea of how to use the webapp. In terms of printing, we were unable to purchase labels from a store due to COVID-19, so we ordered labels that we hope will arrive shortly for us to run some tests before the end of the quarter. In short, we are very excited with where things are going this quarter and look forward to delivering a working prototype by the end of the quarter.
Since last time we posted, we have finally reached the point where we have basic functionality developed for processing one shipment. In other words, we can generate a barcode for a shipment from a particular farm and enter this barcode and farm information into the database. After creating the shipment in the database, we can then add additional information about when the shipment entered certain checkpoints and we can look up all of this data for a particular shipment to be displayed on the GUI. With this basic functionality outlined, Austin sent Charles a link to our web app, so that he could play around with the site, ask us questions, and offer suggestions. After a couple days looking at the site, Charles sent us an email with information from several forms, highlighting key statistics that he would like to incorporate into the web app. We will be working towards including these statistics in our advanced data entry page in the next couple of weeks.
After figuring out how to render barcodes for immediate printing, upon generating the unique codes, we put together a team presentation of our progress for the midterm check-in. This was a great opportunity for us to hear feedback from our peers and see where we could improve. Since then, Langston has also implemented a system for error-checking that integrates nicely with the UI. Finally, in the last couple days, we were able to order a barcode printer and are looking forward to seeing how to integrate this hardware with the existing web app.
In the next few weeks, we have several tasks ahead of us. The major backend task is to begin building out the structure of the database to accommodate the changes Charles outlined for us: namely the use of lots and containers and the storage of forms for these lots. On the front end we need to figure out how to display advanced statistics and how to generate barcodes for lots that contain a set of shipments. Finally, we will need to hook up the printer once it arrives. In terms of web app development, we do not anticipate too many challenges as most of the functionality outlined above is just an extension of what we have already built. As we near the close of the quarter, we look forward to delivering a finished product.
This week we got to see the project really start coming together. With Austin’s page for navigation, we were able to combine barcode generation and fast data entry together on the same web app, enabling users to move from one page to the other smoothly. Additionally, we had the opportunity to connect with our partner and discuss the future of the project. Charles from Zorzal gave us valuable information in terms of what he envisioned the site looking like in the future. In particular he gave us an idea of what statistics he would need for the advanced data entry page where we enter more fine-grain data into the database for storage. He also discussed what aggregate statistics he would like to see incorporated into the website like the overall quality of a container of beans. We were happy to hear that these were the aggregate statistics that most interested him as they would be easier to implement than statistics that related to all entries in the database.
Charles also mentioned the possibility of Zorzal employees attempting a remote deployment of our project despite quarantine currently preventing us from traveling. This means that we are resuming full-scale development on the logistical side of this project. We are looking into ordering printing hardware for ourselves and potentially Zorzal as the project progresses. Currently, we are also trying to setup interviews with Zorzal employees, looking at ways to deal with the language barrier during these interviews.
Looking forward we are hoping to have printing capabilities established in the next week while we put together some more of the functionality of the web app. This includes extending our existing functionality to accommodate some of the finer points discussed during out meeting with Zorzal this week as well as cleaning up the overall code and design of the site.
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.