Week 1 (4/02/19)
This week, community partners presented potential projects to our class. We were given the chance to choose the topic that's the most interesting to us, do more research, and decide by next week's class.
I was really interested in the project with SCU's Center for Sustainability, because of my extreme interest in the focus area. I also have a lot of experience making applications; in high school, I made and published two iOS apps on the Apple App Store, and made three more unpublished applications for hackathons and other side projects. I am also currently enrolled in an independent study where I, along with a group, will be create an app and website for educating kids in Africa on important topics such as sanitation and health.
Though the bulk of my experience is in the coding aspect of the project, I also have a lot of experience in marketing projects, so I know how to promote the app and encourage people to download it. Immediately, I knew I wanted to work on this project because I believe I will be able to make a significant contribution to the goals of the project, and I’m confident that this app can be published to the app store.
Figure 1. Last year's final project.
Week 2
Edit paragraph
Week 2 (4/09/19)
Click to view in full screen.
This week, we were assigned our groups, and I got my first-choice project: the mobile application for SCU Center for Sustainability. The group consists of 10 people, with five working on the UI side, and five on the tech side (with me as one of them). As we got to know our group-mates and talked about our prior coding experiences with them, we also decided on the best times to work/meet.
During this class, we also met with out community partner, Lindsey Kalkbrenner, at the Center for Sustainability. We discussed with Lindsey our initial questions about last year's design and also prepped our design ideas for this year.
As for the two teams, we also decided that we are going to work and meet separately, but collaborate online. Specifically, the UI team will draft up drawings and designs of the overall look of the app, while the tech team will work on the functionality of the project. The UI team will also peer code with members of the tech team in order to learn more about the tech side while guiding the tech member on the overall look of the app.
At the end of this week, we also worked on the team contract, which can be viewed to the right and in the team log section.
Week 3 (4/16/19)
This week, I did research on the software that the previous team worked with, and I personally met with a member of last quarter's team, Jonny. He helped me understand and answer my questions as to why they chose to use the certain platforms that they did. My notes from the meeting are as follows:
-
What database / software did you guys use and why did you guys choose this?
-
Flutter hit 1.0 and can support the new os - it’s relatively simple so doesn’t need that much
-
Dart is object oriented programming, very similar to objective c and Java so he favored it
-
He said we could potentially switch to React Native, but he thinks the functionality of this app is too simple to need something so intense like React Native, and he says Flutter is just an easy framework for the services we need, and it was very easy to pick up.
-
How the image processing currently works: it goes to the server and then CDM - but server doesn’t need anything, just the url of the image (using free tier, s3)
-
-
How to run the app? Do we need to download flutter?
-
Yes, download flutter, info is in wiki of public GitHub
-
Use the public GitHub for info (his git, not the private, but when coding, update that private one)
-
Ask Spencer for email log in for that GitHub (they made a new email)
-
And Lindsey - waiting for her to get back to us
-
-
Download Visual Studio Code (or some editing software) -- above link shows how to download the emulators and such
-
He will get back to us on a demo of the app from his end, as there’s been updates since he worked on it so he couldn’t open / run it and show it to me, but if we download and install it should work (again, follow steps on Wiki of his public GitHub to run)
-
On the side, I did my own research of the softwares he told me about. He recommends that we continue using Flutter, as it's relatively easy to pick up, and the language, Dart, is quite similar to Java and other forms of object-oriented programming, which he was particularly partial to.
I also worked on the GANTT chart and the draft of the introduction with my group. Navigate to the team log page to see the GANTT chart.
Week 4 (4/23/19)
This week, we did some more official research on the software that the previous team used, and we began to download/clone last quarter's GitHub (see research section).
Our goal for the weekend was to get their project and a local server running on our personal devices. From there, we plan to meet on Tuesday to catch up and officially split up the tasks of the code.
I also began working on the Design Review: Reflection #1.
Week 5 (4/30/19)
This week, we made the application from last quarter work on our own devices. We originally had a problem with connecting to the server, but after meeting with Jonny on Sunday, we got everything fixed and working (navigate to the team page to read the meeting minutes for that day).
The bulk of the work done towards the project this week was done as a group - navigate to the team page to read more.
Here's what the app screens look like:
Figure 2. Launch screen.
Figure 3. Register for the app.
Figure 4. Settings page.
Figure 5. Creating an event.
Figure 6. A post in the feed.
Figure 7. More info on a post.
Week 6 (5/07/19)
This week we worked on the project, and we realized that the app doesn't entirely work on iOS, so we were coming up with solutions to it. We also divided up the project, and distributed the individual elements to implement in the application (and this was updated in the GANTT chart, which can be viewed in the Team Work Log. Finally, we each got started on the individual elements that we were assigned.
Figure 8. App Function Priorities and Tasks.
Week 7 (5/14/19)
This week, we worked more heavily on our individually assigned tasks. The first thing I did was make sure I was able to connect to the GitHub, so I tested this by pushing a minor edit to the list of allergens. Unfortunately, this resulted in a merge conflict, but I was able to work through it to fix the issue and commit/push the changes.
After getting through this initial hurdle, I spent a lot of time over the weekend trying to understand Dart and familiarizing myself with how last quarter's team coded the project. My task is working on posts in general, and for the most part, the biggest thing to work on is scheduling posts. My goal is to finish this task by early next week with Sreya.
Figure 9. Solving a Merge Conflict with Git.
Week 8 (5/21/19)
This week, Sreya and I worked on getting the posts to schedule, and with Matt and Sinclair, we decided to do some peer-coding. On my device, we managed to make an option to schedule the post, and removed the ability to change the expiration date, as we decided that the automatic will be 30 minutes. In general, we spent the most time working on the front-end, but will work more on the backend later in the week. Read the meeting minutes for this in the team log.
Figure 10. Submit Post Page.
Week 9 (5/28/19)
This week, we focused a lot on finishing up as much as we could with the project. The biggest issue still remained, which was posting on iPhone, but we deduced that the problem has to do with Cloudinary, the servers, and a package called Dio that Flutter was using. It was hard to debug and understand anything about Dio because there exists almost no documentation. Matt and I tried to solve this problem on Monday night, but it would have involved a complete restructuring of the app, which we were unable to do due to the time constraints.
Aside from this, I also updated the allergens to satisfy Lindsey's specifications. Last week, we met with Lindsey to ask her about keeping in the list of allergens in the app, and we compromised that the app should have opposite-allergens; essentially, the app would say "peanut-free" instead of "contains peanuts" (see figure 11).
I also worked on the presentation slides, 1-slide summary, and updated the GANTT chart.
Figure 11. Updated List of Allergens While Submitting a Post.
Research
Center for Food Safety and Applied Nutrition. (n.d.). Buy, Store & Serve Safe Food. Retrieved from https://www.fda.gov/food/consumers/buy-store-serve-safe-food
Center for Sustainability. (n.d.). Retrieved April 6, 2019, from Santa Clara University website: https://www.scu.edu/sustainability/
Food Insecurity - Office of Student Life - Santa Clara University. (n.d.). Retrieved May 26, 2019, from https://www.scu.edu/osl/food-insecurity/
Lin, J. (2019, February 12). Taste The Waste GitHub - Set Up. Retrieved April 20, 2019, from https://github.com/jonnylin13/taste-the-waste/wiki/Setup
Node.js. (n.d.). About Node.js. Retrieved April 22, 2019, from https://nodejs.org/en/about/
Our Team. (n.d.). Retrieved April 6, 2019, from Santa Clara University website:
https://www.scu.edu/sustainability/about/staff/
So Much Wasted Energy - Rethinking food waste. (2013, May 20). Retrieved May 26, 2019, from Post Carbon Institute website: https://www.postcarbon.org/so-much-wasted-energy-rethinking-food-waste/
What Is Food Insecurity in America? (n.d.). Retrieved May 26, 2019, from Hunger and Health website: https://hungerandhealth.feedingamerica.org/understand-food-insecurity/
What to Know About Liability and Legal Costs for Apps. (2016, July 25). Retrieved from https://www.insurancejournal.com/magazines/mag-features/2016/07/25/420535.htm