Team Status Report 4/2

This week has mostly been cleaning up stuff and adding some polish in preparation for the demo. Some highlights include:

  • Adding recipes/grocery list functionality
  • Finalizing backend user model registration (see Jay’s post)
  • CSS additions/improvements
  • Dealing with hardware crisis (see Keaton’s post)
  • Updated Gantt chart

Overall, we have almost everything we need for the demo, but we’ll probably need to put in some work on Sunday/Monday to ensure everything is polished and in a presentable state. On the updated Gantt chart, we’ve fairly heavily eaten into our flex time, but we may be able to catch up during Carnival weekend. We’re about where we should be in terms of progress, but the lack of flex time going into the last two integration weeks is definitely concerning.

Jay’s Status Update 4/2

After much procrastination, I finally got around to completing the model-view-controller of the website, moving on from dummy HTML to actually interactive data. I’ll still continue to work on it before our demo this week, but I’m optimistic that we’ll have a functional backend by the time we present.

Major goal by next week is getting a working grocery list for the demo. I hope to make substantial progress on Sunday and Monday.

Besides that, there were a handful of lesser bugs in our current version, namely…

  • empty items don’t return an error message, but rather crash the website. Cause still unknown.
  • remaining logged in for too long causes a NoneType error. Harry is chasing down the issue. I don’t think we’ll be able to get this working by the end of the weekend, but certainly by the final demo.
  • the same serial number of a tracking device can be registered multiple times. Very much intentional whilst debugging the website, but I wanted to write it down to remind myself to un-comment out those lines before the final presentation.

This week, after the first demo, I’ll continue to refine the site, ensuring that the bugs above don’t impede the user experience.

Harry’s Status Report for Apr 2

This week I have been continuing working on the user registration system. I discovered a bug where users are able to sign in with another account when they are already signed in, which would consistently break the webapp. I figured out a solution by inserting custom functions into the django social auth sign in pipeline. In order to streamline the sign in process for the users and avoid needing to repeatedly call a method for all view methods to retrieve user information, I scrapped the UserInfoFetcher I wrote previously. After investigating through the python-social-auth source code, I was able to create custom functions and insert them into the oauth pipeline. By also creating a custom User model, I am able to save users’ profile pictures and emails (which sometimes are not provided by default) into request.user without needing to manually fetch them. I also worked on some html pages to create a usable webapp and started working on the recipe page where people can get auto-generated grocery lists. In addition, I was able to work with Jay to debug some code and help Keaton setup his Django environment so that he can work on some css/bootstrap.

For next week, I will continue working on the recipe page and try my best to finish a working version before the demo day. I will also start working on the API endpoint for updating inventories. I have come up with a detailed design for the transmission encryption and I will discuss it next week.

Team Status Report 3/26

While we’ve all been swamped with midterms and academic fatigue, work on the group project continues apace. Harry created a working version of OAuth2 (more on his blog). Jay is continuing to work on the wireframing, and will incorporate CSS shortly. Keaton is taking a much-needed respite from CV, and is looking into hardware design considerations.

We hope to see some progress on the database component of the website’s backend this week.

Jay’s Status Report 3/26

Sorry for the late update, but there wasn’t much to provide, website is still a work in progress. I have the basic outline of the wireframe down, but now is the challenge of adding CSS to bring it to life. I’ll try to use bootstrap to make my life simpler.

Harry’s Status Report for 3/19

This week I have been looking into setting up the user registration system. Although I was blocked by the Facebook OAuth for two days, after looking into Google and Facebook’s API documentations and python-social-auth’s codebase, I was able to get the sign-in components working. By default, I don’t have access to a user’s email from the Facebook OAuth API (which I need to finish the user registration steps), and I don’t have access to the user’s profile picture from both services (which is something nice to have for the interface), so I looked into ways I could retrieve this information. After digging through many documentations and StackOverflow examples, I was able to figure out how to fetch it from Google and Facebook’s API endpoints. Specifically, I found the correct endpoints from both services so that I could send GET requests with an access token provided from OAuth to get the information I need. As shown below, while the resulting code only consists of a couple lines, it took a lot of documentation reading and trails and errors to find the correct parameters and API endpoints to make it work. Since the ways I can fetch the information are mostly the same for both services, the next step will be coming up with a suitable design pattern to achieve better reusability and scalability in case we need to add more OAuth providers in the future.

Next week I will finish up the user registration system and start working on the view methods for other pages. Since we have designed the class models for the database, the implementation should be trivial when compared to the OAuth component. Specifically, I will create the User model and a corresponding form to send to the user if they log in for the first time to complete their registration. I will also work with Jay to connect the backend logic with the user interface so that we can have a working prototype.

Jay’s Status Report for 3/19

This week I had several revelations regarding the flow of the project related to scheduling and the work itself.

  1. Progress on the webapp is slower than I had anticipated. While we have the basics working for OAuth and various pages, I still haven’t integrated as much of the dynamic AJAX as I would’ve liked by this stage. I’m still struggling with the details of social-django as well, but I’m finding support documents as issues arise.
  2. I’m still trying to figure out how to use Bootstrap and perhaps ease the burden of CSS. I’m cognizant that this isn’t a majority component of the capstone, but given my inexperience with CSS I still would rather look into this.
  3. I’m realizing in our Gantt chart that we need to account for days when we would have less time to advance the project than we had planned. For example, days that the University gives us off like most recently spring break and the upcoming Carnival; or preparing documents and presentations for the Capstone. While we haven’t fully completed our revamp of the Gantt chart, we definitely need to shift some items and be realistic about our productive abilities on those days.

In the coming week, I hope to have a working version of the wireframes I presented earlier in the semester, perhaps not with live user data but with a set of dummy data.

Team Status Report Feb 26

This week we have been working on the design report and unfortunately we weren’t able to make much progress on the project itself. We will continue working on the design report and try to build the web-app prototype. We are still waiting for our parts to come in and hopefully we can get more done during the spring break when most of our midterms are over.

Harry’s Status Report for Feb 26

Because of the upcoming midterms and interviews, I wasn’t productive this week. I worked on the design report document with my the teammates and started setting up the AWS account with Jay. I will try to get more done over the next week and the spring break.