Introduction
This application took about 9 weeks of research, planning, designing, and coding to complete. We worked in partnership with SCU's Center for Sustainability, and Lindsey Kalkbrenner, the director of the Center was our community partner. Below, you will find a summary slide detailing our project and its purpose, a weekly log of my individual work, and work with my team done towards the project.
Click the buttons below to find the team documentation and reports submitted, or to view my weekly work log.
Week 9:
Aastha, Sinclair and I met with Lindsey last week on 5/28 to discuss the allergens for the app. She had said she did not want the app to contain allergen information on the food posts anymore, as it was a liability. Our team disagreed with this, as we thought having allergens on the app would make it more useful to those with allergies. We met with Lindsey to discuss this, and she agreed to keeping allergen information on the posts. The only difference she wanted was to have a specification of "egg free" or "nut free" instead of "contains nuts" or "contains egg", so that the caterer or event planner would specifically have to select that tag, which would only happen if the food they bought was purposely bought with those dietary restrictions in mind.
This week we worked on getting the app to run and post on iOS. It finally began working from iPhones, and so we were able to focus on creating scheduled posts. Matt was the one who made the post scheduling work, by associating a schedule time with each event, and only displaying events in the feed that are currently active.
We changed the allergens according to Lindsey's specifications, and changed more UI related things, such as the display for the time picker for scheduled posts.
We have also been working on the final deliverables that will be due. I did the introduction portion of the final presentation slides (linked below), and will be implementing the changes Dr. JAK suggested on the draft final report, to the final report. We will be submitting that on Friday, 6/7 (also linked below).
I also worked on the third and last reflection, which was an individual reflection which is why it is not included in the team documents page. It is regarding learning gains from ENGR 110, and addresses how having a customer changed my outlook on this project, the affect of public organizations on the product, and the effect of innovation on society. It is the pdf linked below.
Week 8:
This week we got to see our peer feedback from the status update presentation. Most of the comments said that they appreciated the live demonstration of the app as it helped give them a clearer idea of what exactly we were doing. However, there were a few comments saying the live demonstration could have been done smoother, which we will implement in the final presentation. There were also comments saying we did not break down technical aspects of the app as much in layman's terms, which we will attempt to do better during the final presentation.
On 5/22 this week, Aastha, Matt, Sinclair and I met for around 2 hours to work on the most critical issues with the app. As Lindsey had mentioned that scheduled posting was an important feature she wanted the app to include, we began brainstorming ways to add this. Currently, the app had a way to schedule post expiry; however, Lindsey said she wanted the default option for post expiry to be 30 minutes. So, we decided to change the post expiry portion of the code into code that would enable scheduled posting.
Sinclair joined an hour into our meeting, and as he is the only member with an Android device, we were unable to test the changed code on his device. Instead, we attempted to post from iPhones, which was previously not working. We decided instead to focus on making posts work on iOS. Posts could be created, but would not post. The posting screen would simply run in a loop. We were able to make it so that posts would show as 'Posted' from iPhone, but they still did not appear in the feed. We have been working on this issue all week.
Following are our meeting minutes and agenda:
Agenda (Wednesday, 22nd May 2019)
-
Review action items left for app (10 min)
-
Delegate tasks, get to work on updating a post page (2 hour)
-
Update GANTT Chart (5 min)
-
Conclude meeting and discuss the plan for next week’s class ( 5 min )
Time/Date: May 22, 2019; 4 pm
Place: Heafey 128
Purpose: Work on fixing the issue of running on iPhone, and work on scheduling posts up to one week in advance.
Members attended: Aastha, Sreya, Matt, Sinclair
Notes:
-
We updated the frontend of the app and got the app to show a scheduled post, but now we need to make it schedule and remember the post.
-
List of things left to do for the app, in terms of priority
-
https://docs.google.com/document/d/1exR2b2dSrfZ37r7giBE8AD9m8fbYZ7VkvoXo1gX48WM/edit?usp=sharing
-
To add: an error message if the post is set to schedule more than a week in advance.
-
-
We still need to figure out why we can’t post on iPhone, as it may have something to do with the database over the code, and we’re in contact with Jonny about it.
In addition to this, Aastha and I will be meeting Lindsey for half an hour tomorrow, 5/28. During our status update presentation, she had mentioned that she no longer wanted an allergen tag option while creating posts. However, both the Tech and UI teams strongly feel that adding allergens to a post would be valuable to students with food allergies or dietary restrictions.
Agenda (Tuesday, 28th May 2019)
Time/Date: May 28, 2019; 12-12:30 pm
Place: Varsi 202
Purpose: Meet with Lindsey to discuss whether or not we include allergens in the posts.
Members attended: Sreya, Aastha
As a team we also updated our GANTT chart, which is linked below, and began work on the draft of the Final Report. I created all the headings, subheadings, and table of contents. I also added information from the original draft introduction in appropriate sections in the draft.
Week 7:
During our presentation to Lindsey last week, she updated us on the new specifications she has, as follows:
-
Don't need SCU single sign-on if we can just send a confirmation email to the SCU email account
-
Don't need timer countdown on the post
-
Do not include allergens on the post
-
Prioritize scheduled posting
As a team, we felt that allergens would be an important part of posts. I personally have many food restrictions, and I feel that the usability of the app would be greatly decreased to people like me, if we were unable to see the allergens that a certain food could contain. We emailed Lindsey on 5/18 to schedule an appointment so we can discuss this with her.
Since we had divided coding tasks last week, this week we all began work on our individual tasks. Francesca was able to get the error messages working. I had never used Github for code sharing before, so I learned how to push and pull code from Github this weekend, and how to solve merge conflicts.
On 5/18, Aastha and I met up informally to work on coding together. As Lindsey did not want a timer on posts anymore, I decided to focus on scheduled posting along with Aastha, as it is one of Lindsey's priorities. We went over the existing code together so as to better understand it, as it is written in Dart, which neither of us are familiar with. I made minor changes to the app, like the allergens list, to test if my changes would work, which they did. Sinclair changed the logo, name, and color scheme of the app, as decided by the UI team. The updated app is as seen below.
Sinclair joined us in the last 45 minutes of our meeting, during which we worked on the second team reflection, which is linked below. We updated our GANTT chart, which is also linked below.
Week 6:
Last week we finally got the app running, and were able to see what work still needed to be done. So this week, we split up the remaining tasks among our group members.
-
Error messages: ~ Francesca
-
Need an invalid password response if password is less than 6 characters
-
“Need a photo” message to display if event is made without photo (Unless Lindsey is okay with Event Planner not needing to upload a photo)
-
when deleting post: “are you sure you want to delete post?”
-
-
-
For posts:
-
Before event:
-
Schedule posts up to 1 week before
-
-
After event: ~ Aastha
-
Auto delete oldest posts after 10 posts
-
Make a grayed out post for when it’s not active - a post that’s not clickable (just to show a sample post)
-
-
When creating a post: ~ Sreya
-
Should be able to choose existing pictures from photo library (not working for iOS, not able to post from iOS either)
-
Timer on posts, active countdown from 30 minutes
-
Compress image for faster uploading
-
-
-
Push notifications: ~ Matt
-
Android (OneSignal)
-
iOS (Native?)
-
Toggle in settings
-
-
Single-Sign On (ask Lindsey to ask for API?)
-
Need to get running run on our own database: ~ Sinclair
-
Needs to work persistently, without loading server on laptop.
-
As part of my task was to implement a timer, I spent this week researching. I have never made an app with a timer before, so this is new to me. Some of the links I was reading are below.
As a team we also updated the GANTT Chart, and created the presentation slides for the Status Update Presentation coming up on 5/13. The slides I personally worked on were the ones about the background of the project, the motivation for the project, and the problem statement.
Week 5:
This week, Matt figured out a rough estimate of the pricing for different elements of the app, which Aastha then sent to Lindsey:
-
Developer’s kit -- iOS + Android
-
iOS: $99/yr
-
Android: $25, one-time fee
-
-
MongoDB Database
-
No Charge
-
-
CDN (image hosting / delivery) Cloudinary:
-
Free tier offers 25 credits of storage which equals 25GB of storage
-
Next tier up ($89/month) offers 225 credits (225GB)
-
-
One Signal push notification
-
Free tier should be enough, says unlimited mobile subscribers
-
Sinclair made the existing GitHub for SCU Sustainability which last quarter's team had used, into an organization, so there was no longer a login required.
On 5/5, the entire team met with Jonny from last quarter's team. He sent us API keys and other information to help connect to the server. This was our meeting agenda:
Time/Date: 1pm, May 5, 2019
Place: Heafey Atrium
Purpose: Meet with Jonny to get the build from last quarter running on all of our devices, and overall discuss splitting up tasks for the future.
Members attended: Aastha, Sreya, Francesca, Matt, Sinclair
-
Discuss what to talk about with Jonny (5 min)
-
Go over the issue of servers running on each of our individual devices
-
Discuss if whether or not we will need more storage in the database, and decide if we need to upgrade to the next tier
-
-
Meet with Jonny and get the application running (45 min)
-
Make a list of the things left to do for the app (30 min)
-
Update GANTT Chart (10 min)
-
Conclude meeting and discuss the plan for next week’s class ( 5 min )
These were our notes from the meeting:
-
Currently, what the app does with cloudinary:
-
Sends to server then server sends to CDN
-
-
Jonny suggests that we use AWS S3 Bucket
-
Send directly to CDN then send URL of image to server
-
-
To run the servers, use npm start in terminal when in the server directory
-
Keep that terminal tab open while running the app in a separate tab
-
-
List of things left to do for the app, in terms of priority
-
We decided that we’re all going to explore the app more and play around with it, and on Tuesday we’re going to split up the coding tasks that are left
We were able to connect to the server, and finally saw what the app looks like. We were able to create posts with pictures, allergens, and a time of availability. Posts created from one team member's account were able to be viewed by the rest of us, from our separate accounts. Below are screenshots of what we saw.
Because we now had a proper understanding of what all the previous team had done, we were able to finalize a list of problems to fix and features to add. We plan to split up tasks this coming Tuesday, and begin coding. Here is the list we created:
-
New logo, change the name of the app to ExtraEats
-
Data validation
-
Need an invalid password response. The password needs to be 6-20 characters but gives no notice if the password is invalid
-
“Need a photo” message to display if event is made without photo, unless Lindsey is okay with Event Planner not needing to upload a photo
-
-
Compress images for faster uploading
-
Give error messages (ex: needs picture to create post) (when deleting post: are you sure you want to delete post)
-
Auto delete after 10 posts
-
Make a grayed out post for when it’s not active - a post that’s not clickable (just to show a sample post)
-
-
Be able to schedule posts up to 1 week before
-
Should be able to choose existing pictures from photo library
-
Change timer to show 30 minutes - active countdown from minutes
-
Push notifications
-
Android (OneSignal)
-
iOS (Native)
-
-
Need to get running on our own database
-
SingleSign On (ask Lindsey to ask for API?)
-
Low priority: forget your password
On 5/6, Aastha met with Lindsey and gave her updates on the pricing, and how much of the app we have been able to run.
We updated our team GANTT Chart, and also wrote our first team reflection; a 2 page essay where we reflected on the customer and their needs, and continued to align our project goals with their product specifications. Both are linked below.
Week 4:
This week, our team focused on getting the previous team's GitHub code to work. One of our team members contacted a member of the previous team, to get API keys and understand how to connect to the server. We had to download Flutter, Android Studio, and npm. One of our team members was able to run the app, but was unable to get past the sign-in page of the app face. Our goal for this coming Tuesday is to get the app running, after which we will be able to understand what exactly the previous team has done. Depending on that, we will begin splitting up individual tasks, regarding the coding aspect of the project.
Last week during class I received Maker Lab training, so now I can officially use the Maker Lab. As we are coding and creating an app, we most likely will not be needing to create actual models using the lab. I also updated our team GANTT chart, which is linked below.
Week 3:
This week one of our team members met with one of the students who worked on this project last quarter. The notes taken during their meeting can be seen below:
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)
We got access to their public and most updated GitHub, documentation, and reports. We began reading these and trying to understand what platform and language the team had used, and how far they had come in terms of Lindsey's product specifications and requirements.
Most of the team is unfamiliar with the platform used by last quarter's team, so we are considering using React Native. I am unfamiliar with React Native and am the only team member who has not learned Javascript. I have begun researching online courses to learn Javascript for myself.
As a team, we also created a GANTT chart, and drafted the introduction for the final report. The GANTT chart and introduction are linked below.
Week 2:
This week our Tech team and the UI team met to interview Lindsey Kalkbrenner from SCU's Center for Sustainability. While she will not the only user of the app when it is completed, she is the critical customer for our project, as she has certain specifications for how the app must work. In later weeks, we will be running all our work towards the project by her.
The interview lasted for almost an hour, and we were able to understand her main ideas for what the app should do, and specific do's and don'ts from her side. As a group, we took notes during the interview, as follows:
Event planners have access to post, students using SCU single sign on have access to use the app
Want a training module/first time users, that talks about food safety + procedures (not private spaces, publicly accessible, food cleanliness)
Students just get a push notification once there’s an event (once the event is finished, they have a half hour to get the food, after which its cleaned up, after half hour event should be deleted from the feed to save data storage money)(but also doesn’t have to be deleted from the feed, can just be grayed/faded out)
In a while, students might pay few dollars for this app
Small launch: may, can be tested on 30 ppl, roll it out by the end of the quarter
Event planners should be able to create a post at 8 am but have It automatically send at 2:30 after the event, and they should only be able to do it max 1 week in advance
Needs to be something about liability: event planners need to sign that they won’ told the university accountable for their food decisions (terms and agreements)
Notification should be like a banner, “Extra Eats 2-2:30” then click on that and it says bring your own container, food picture, allergens
Click on notification, opens up the app directly to the post
Location, department that’s hosting it, description + pic of food, time of availability
She also described the work on this project that last quarter's team had done, and told us what they had done well, and what needed improvements. Dr. JAK gave us access to their GitHub, and emailed us their final project reports, so that we could understand what platforms they had used, and how they had been coding the app.
We drafted a team contract, with specifications for what we expect from each other as a team, and consequences for not doing our individual fair share of work. The team contract is linked below.
Week 1:
Four community partners presented their projects to us. The project that interested me most was the project that Lindsey Kalkbrenner, from SCU Center for Sustainability, presented. She suggested an app, called 'ExtraEats', which would help reduce food wastage by allowing event planners to share leftover food with students. I immediately knew that this was the project I wanted to work on, because I am a Computer Science and Engineering major, and am very interested in coding. I have made a few apps and applets before, and I know I can effectively code a solution that will both meet the customer's requirements and be helpful to society.