The Line of Least Resistance Log
This week, we got a firmer handle on what our project will be about and what timeline we should be looking at. We met with Kjartan and he helped us look at the big picture and contextualize our project, and he gave us advice on how to organize our project better and to get the most out of the class. We plan to meet with Professor Gonzalez and to create a more specific task list next week, and to start collecting data.
This week, we considered completely changing our project, or at least not using the Arch as the focus of our project. We decided in the end, however, that we would stick with using the Arch as a reference point for modeling a queue system with the least amount of delay time. We did decide to take some focus off the Arch and put more focus on the final product, which we have decided is going to be a "consulting" computer app to be used by companies when planning to set up queues, and we are leaving room at the end of the semester to hopefully do some "add-ons," such as a real-time portion of the app.
We met with Humberto (who gave us an extension for our proposal revision until Sunday night) with Kjartan and then Kjartan on our own and attempted to hone down exactly what we aim to do, and got more specific with our Gantt chart and to-do lists. Our final product is a completely revamped proposal, with much more specific parameters and goals.
I waited until I had talked to Andrew to write this log. It's been another restructuring week. After coming to a roadblock with the simulator, I met with Humberto and decided to restructure our project again and focus on doing a mobile app where customers can input heir group size to a few sample businesses and receive an estimated wait time. I met with Kjartan on Sunday and brought him up to speed, and we worked on the new proposal. This week we have the first project evaluation, and we're hoping we'll have a perfected project proposal and some research about how to make a mobile app under our belt, but won't have any tangible components of our project to show Humberto yet. - Devon
We met with Kjartan today and further figured out the steps to make the app. We looked into how to make an iOS app, and figured out what roadblocks we might encounter. We also decided to expand the project a little bit, and to make the app "update" in real time, so if someone enters a reservation, the next person trying to make a reservation will see that reflected. The project is obviously going a lot slower than we thought it would, and we wish we were farther along by now, but feel good moving forward. We also decided how to split up the bulk of our project (I will work on the user interface and the product the customer will see and use, and Andrew will do the more "behind-the-scenes" coding on the host side. I started to learn how to use Swift and will play around with it more this week. We will be explaining our new project with Humberto on Thursday for the first evaluation. -Devon
We met with Humberto last Friday for the Project Evaluation. We are at a better spot then ever and have a much clearer goal and path ahead of us. I updated the Wiki page to reflect the changes, such as his suggestion to implement an Amazon server in the cloud for the host side, instead of making it one-sided. This week, I have been doing Swift tutorials and learning how to create a user interface through the program. I've started to create the UI, but still have things to learn. I also created a "sample situation" (i.e. time and space parameters to base the reservations off of) of the Arch based on data the official gave me earlier in the semester. - Devon
I have been teaching myself Swift this week as well as devising an algorithm for informing users when they will be able to arrive at the restaurant. I have also downloaded a server from Amazon that will be used to store information. While it will be a challenge to program the entire app, I am glad that we know exactly the direction in which we are going. -Andrew
I worked on the UI for the app this week, and got to a point where you can select a business from table view, and come to a screen where you can input your name, group size, and desired time. It was a lot of work just to get to this simple set-up, but I'm hoping it'll be quicker going forward because I'm more familiar with Xcode and Swift. We met with Kjartan today and talked more about the server and began to set it up and discuss how we're going to share information between the server and the app, and where the algorithm fits in. -Devon
I've been working more on the UI and have started to work with Kjartan on connecting the data when a user clicks "Submit" to the Amazon Web Sever, and hopefully we'll get it running through Andrew's code soon. I've started creating a "restaurant view" so the business can look at the current status of the tables at each reservation time period. -Devon
I have been continuing to refine the algorithm so that it can eventually run on the server. As of now, the algorithm works without many errors, though it is missing a few minor functions. -Andrew
Kjartan and I worked on a Demo for the Project Evaluation. Since we don't have the database set up, we created a one-page App in Xcode that shows what it looks like when you enter in group size, group name and desired reservation time, and goes through a sample code on Amazon Web Services that just returns "your reservation has been received" as long as there are valid inputs. -Devon
We met with Humberto last week for our second Project Evaluation and feel good about the project but still have a long way to go. We have edited the code to give the customers the option to choose a time frame instead of a certain time, per Humberto's advice to make the app more appealing to customers. Kjartan offered to spearhead the database because this project is becoming a lot bigger than anyone expected and Andrew and I have our hands full with the code and the UI. This week we're planning on integrating the code with the database, and getting a meaningful connection to the UI. We are feeling as though we will have a working app by Demo time, but will not be able to show a lot of features we hoped for (such as having a user sign-in option so the business can log in through the app and see the database). -Devon
I have been working on debugging the algorithm and changing features in order to fit better with the app. I have also begun setting up the database in order to incorporate my algorithm with the app. -Andrew
I have begun setting up different tables in the database as well as creating the lambda function for the app. We have been running into a little bit of trouble with initializing the app, but are progressing towards having a working app nonetheless -Andrew
I've been making the app for aesthetically pleasing and logical because I had it pretty bare-boned before. We had it so that customers had to put their time frame in by typing it in, but this could lead to issues if they type it in the wrong format, so I added two "pickers" for the time. I put everything in the JSONable form so the Lambda functions should be able to read it in the Cloud Logic. I am currently trying to figure out if we will be able to demo the app on a mobile phone, or can just use the simulator, because I'm getting an error that we need a developer's license in order to download it on my phone. I've done pretty much all I can do with the UI until the code is integrated with the server, which Kjartan and Andrew are working on. We're getting anxious about finishing the project, but are working on it every day and are trying our best to understand problems we had no way of predicting as they arise. - Devon
I have begun testing the lambda function for the app. So far it has been very buggy, but those issues are slowly but surely being fixed. We know for sure that the lambda function, without all the bugs can work, as it did work with some lines commented out, however those lines are needed in order for the app to work to its fullest purpose. -Andrew
I've been waiting to make this log until I figured out how to connect the UI to the server, which has been a long and frustrating process.
We successfully connected the UI to the server (allowing us to call a function in AWS when we click submit) before the Project Evaluation, and didn't give it another thought for two more weeks because knew we knew how to do it. Then, in mid-November, AWS completely changed their function calling and made it way way more complicated. I've been trying to figure out how to call functions using the new protocol, but it was too sophisticated to adapt our simple code to. I met with Kjartan, who has been working on the actual database and code with Andrew, and we finally figured out a way to trick the system into letting the old protocol work. He uploaded a sample code that populates a table in AWS and it worked successfully! This is a huge breakthrough for us because I truly thought we wouldn't get this to work for a trivial reason like a change in software on their part. I'm meeting with Andrew today to connect his code and make sure it will actually populate the correct table.
Also, over Thanksgiving break I did a lot of work working on the aesethics of the UI and making it more intuitive, which is very important to us because we want it to be accessible for a variety of customers. Unfortunately, there's a possibility I might have to transfer everything to a new Xcode file that can be connected to the old version of the functions. This will be time-consuming but unsophisticated. Kjartan also said it might be best to just have one file with the UI i've worked on, and one that actually calls the function, because merging this is pretty trivial and we're running out of time. I'll see how our meeting today goes, and decide if it's worth it to start from scratch again. - Devon