top of page

Matthew Thompson

Project Kickoff

Week of 8/27

This week, we were assigned our project and had our initial meeting with Donald and Travis via Google Hangouts. This gave us a good idea on where we would go with our project, and gave us some initial ideas on APIs and other software to research.

Use Case Scenarios

Week of 9/3

This week, we met as a group to start coming up with use case scenarios for our project. Due to scheduling conflicts based on a shorter business week, we did not have a meeting with Donald and Travis. I started doing some research on Google Cloud Platform and Google Compute Engine to learn more about how our project can be integrated with the cloud. I also started looking in to the GitHub API to learn how we could possibly integrate source control in the future.

Requirements Specification

Week of 9/10

​

This week we started to lay out a very detailed project plan. This involved creating a specifications document, laying out a concrete system model, and coming up with everything we needed to know to get started on our development process. We had our second Google Hangouts meeting with Donald and Travis, and discussed more about what would be our concrete goals for the semester. This helped us realize what features to prioritize and what should be considered more of a stretch goal. This week was very heavy on planning so that we can hit the ground running when we start to work on the project itself.

Architecture Assignment Planning

Week of 9/17

This week, we started planning out our Architecture Assignment. My role for this assignment was decided to be to create the class diagram, and work on coming up with test cases for our product. This involved some decisions and research into how our class structure would be broken down, and we decided on classes for the main pages of the application, the main one being the Editor, and Singleton classes to handle cloud integrations. This involves a class to handle Google Cloud Storage integration and GitHub integration. At the end of this week, we had another meeting with our contacts at Google, and included Michael Lehenbauer, the creator of Firepad. Firepad is the open-source collaborative IDE we are planning on using for our product.

Architecture Assignment

Week of 9/24

​

This week we put together our Architecture Assignment and started working on familiarizing ourselves with Firepad and Google Cloud Platform services. This gave us insight into how our service would be deployed to the Google Cloud and what we needed to do in order to get our working NodeJS project. Putting together the Architecture Assignment involved me creating the class diagram and coming up with test cases. We had another meeting with our contacts at Google and decided we would have a simple working demo by Friday of the next week. This demo would work on a single file, allow collaboration between users, and be backed up by Google Cloud Storage.

Coding Week

Week of 10/1

​

This week involved putting together an initial, bare bones demonstration to show our contacts at Google. In order to do this, we had to deploy our service to Google Cloud Platform via Firebase. This involved us working together in order to understand the deployment process, setting up our Google Cloud Platform accounts, and setting up a project bucket to store the files in Google Cloud Storage. The demonstration we set up had a basic instance of Firepad running in a node project, which gave us a collaborative text editor with very limited functionalities, live updating and a user list.

Coding Week

Week of 10/8

This week involved adding features to our demonstration, as well as making a transition from only NodeJS to having an Angular front end. This was a lot of syncing dependencies and just making the product work in an Angular environment. The biggest hurdle for me this week was learning the development process, as I was entirely unfamiliar with Angular. I learned the workflow from pulling from our master branch, updating the node modules based on what was pulled, and serving it via Angular so I can work on it in localhost. 

Coding Week

Week of 10/15

For this week we continued to add features to the text editor we had working. The features we added this week were deleting files, fixing duplicate file name logic, collapsing the side bar which contained the file directory structure and user list, and serving the files. For my part this week I worked mostly on allowing our service to serve files on our own URL. This involved setting up a new Google Cloud Storage bucket with a CNET name that pointed to our URL, allowing an HTTP redirect to host the files at our URL. This took a lot of research into permissions in Firebase specifically. This allowed any files open in our editor to be rendered as HTML in a new window at our URL.

Coding Week

Week of 10/22

This week we continued to add features to the text editor. The features we added this week were some aesthetic changes such as left-justification of files in the directory system and alphabetization, adding a directory structure that allowed files to be part of directories, and implementing an auto-save feature that would continuously keep the file updated in our Google Cloud Storage back-end. I focused on implementing auto-save, which involved having a change listener in our editor module. Any time a change was noticed, a timer was queued that would automatically call our saveToCloud() function after the last update in the current string of updates was made.

Coding Week

Week of 10/29

This week involved more features being added to our editor. The features added this week included allowing nested directories, adding keyboard shortcuts, and several UI updates. This week also involved a lot of thinking about how this project would be integrated into an actual service. We explored two different branches of thought for this: one involved allowing users to access our site and integrate their own projects into it, the second involved allowing users to download our service to their existing project and running an installer script to set it up. Both of these were very long term goals that involved a lot of security and directory formatting issues, so we decided that the best course of action would be to simply use our collaborative IDE as an extended proof of concept instead of worrying about the final deployment step.

Coding Assignment

Week of 11/5

This week involved a little bit of coding but most of it was working on the Coding Assignment. For this, I was responsible for working on the Acceptance Testing and Technical Metric Collection portions of the assignment. I also worked on the save timestamp portion of the project, updating it so that it showed a relative save time instead of literal save time, which became confusing when people were working on the same file from multiple time zones.

Coding Assignment Presentation

Week of 11/12

This week involved preparing for a presentation based on our coding assignment. This involved making slides, practicing, and getting peer reviewed feedback on our presentation. This also involved making minor quality of life changes to our service so that we were able to perform a live demonstration during our presentation.

Thanksgiving and "Twist"

Week of 11/19

This week we were given our twist by our clients. They wanted us to implement an image editing interface that would take the place of the text editor when the user selected an image file in our file hierarchy system. This would involved finding a library that supported editing image files in an Angular application. However, this week was Thanksgiving so not much work was done as far as making progress on our service.

Twist Coding Week

Week of 11/26

This week involved working more on our twist. We found a library that would allow us to have a simple image editing interface in our service, which helped a lot and provided all of the functionalities our clients requested. These functionalities included simple resizing of the image, changing the aspect ratio, and cropping the image. Along with this, we presented at the weekly Keeping Current seminar on 11/28. This involved creating a slightly longer, more in-depth presentation and extending our demonstration to show off more features. This presentation seemed to go well and was very good experience, especially since next week we will be presenting our maintenance assignment in the Marksbury Theater. 

© 2018 by Thomas Deeter, Matthew Thompson, Wade Zengel Proudly created with Wix.com

bottom of page