Skip to content

Latest commit

 

History

History
92 lines (85 loc) · 5.92 KB

File metadata and controls

92 lines (85 loc) · 5.92 KB

Self Assessment: Dustin Seger

Student Dustin Seger (segerde)
Group Meetify
Class Senior Design
Assignment Assignment 6: Self Assessment
Due 4/13/21

Part A

I did my part to ensure the progression of the Meetify senior capstone project. I was in charge of the entire front-end portion of our application, including its design, development, and testing. To do this, I developed a web application based in React, additionally packaging it within Electron for distribution capabilities on most major PC systems. I also put my programming and muscle memory skills to the test by utilizing Doom Emacs instead of a modern IDE, ensuring to learn all of its tips and tricks to be as efficient as possible. The front-end was extensively managed via version control to ensure a clean and consistent product, utilizing a separate GitHub page from the server for decoupled changes. Even though my teammates were not contributing to the front-end, I made sure to make pull requests for every update to keep them notified and encourage cross-specialization. My resulting internal and external designs for the front-end, as well as my occasional contributions to the back-end server code, have made me very proud of our project and how far we were able to develop it in our short timeframe.

As with all development projects, my journey with Meetify certainly had its ups and downs, but it thankfully came with its lessons as well. First, it's important to note again that I'm exceptionally proud of the project and my personal successes. I was able to both design and functionally build an entire web application from scratch that I think looks aesthetically on-par with most modern applications thanks to its material design. However, I did underestimate how much work it would be to develop the front-end, and a lot of time was put into it as a result. In the future, I would certainly have more people help me to develop the front-end, as it's certainly not as easy as stereotypes would make it sound. In addition, a big obstacle to my productivity was server integration. Especially when it came to making production builds, we ran into quite a few issues allowing the server to connect with the front-end while maintaining valid security measures, primarily due to CORS-headers protecting against cross-site attacks. In the future, I will make my development environments mimic their production environments as much as possible to create more accurate portrayals of how the final product will act. I will also test production builds much more often to ensure no technical debt is accumulating. Through all these trials and triumphs, I worked to develop a wide range of skills, including maintaining agency, having leadership for myself and others, working with the team, and managing a project. It was certainly a great preparation for my transition into the professional world.

Part B

Of course, my personal contributions would mean nothing if we didn't have the entire Meetify group, including my team members Rob Boeckermann and Jake Steuver. These two worked together to develop the back-end functionality, including the REST API built on a Django server connected to a SQL database hosted on Amazon Web Services (AWS). There are clearly a lot of technologies at play here, so I don't doubt that they put in quite a bit of work to get these areas running. However, as mentioned prior, I still think at least one of them could have split off to do a bit of front-end work, as I felt that there was more work to be done there in the end. I'd like to specially recognize Jake Steuver for being incredibly productive in the back-end and responsive to feedback and requests. He has been a fantastic inspiration for how I'd like to manage myself professionally in the future.

In working with this group, I learned some important lessons. We did some great things when working together, such as our documentation. Since I was on the front-end, I knew that I should only need to reference a general API with the back-end for integrations. Rather than potentially digging through code for information on the API, I pushed very early for good documentation on all server endpoints. My group members obliged and remained incredibly diligent in keeping this documentation up to date. The resulting documentation turned out to be a great success, and I was always able to readily find the information I needed, helping us to maintain high productivity in our integrations between the front-end and back-end services. Past this, all communication in general was very open and responsive, and I realize now just how important that is for a collaborative project. However, we were not without our faults as well. Most importantly, I saw through this project just how important pull requests are. Prior to this project, I viewed them mainly as a formality and check for code practices. However, as we got deeper into more complex code, I quickly realized how detrimental it can be when a group member makes a change without notification and does not allow the others to review or test it first. In the best cases, this resulted in momentary confusion, but in the worst cases, we had to make rollbacks and resolve glaring technical debt. Additionally, I think we could have done a much better job and defining requirements and scope, as we occasionally went forward with an unclear vision of the final goal, resulting in misaligned priorities and a lack of direction. Despite these issues, I'm still incredibly proud of the project, and I'm glad to have learned these lessons in a place where we are free to make such mistakes.