CS 467 Blog Post #3

Hello, fellow Oregon State students and staff members. In today’s blog post, I will be responding to the following prompt:

  • Discuss your biggest success during the course. What was your breakthrough, and why did it matter? What did you learn, about the technology, and also about yourself?

For this prompt, I will be discussing my process of learning full-stack development for my capstone project.

Project Description

For anyone who isn’t familiar with my team’s capstone project, here is the description of our project (taken from my blog post #2):

Our project involves upgrading (and possibly replacing) the existing website for the TBMHP foundation. Our project partner passed along their WordPress website, and asked us to make a few changes to hopefully improve the user experience of the existing site. They also left the option open for us to reimplement the website without using WordPress. Our team decided to take a 2-pronged approach: Implement the desired changes in the existing WordPress website, and simultaneously make a new website from scratch. At the end of the term, we plan to present both websites to our project partner and give them the choice of which project they would like to use.

Our custom application displays information about the organization’s mission, allows users to register for their upcoming events and sign up for their newsletter, donate toward their cause, and view photos from the organization’s past events. We are also including a database that holds the information needed to populate the website and empower the organization to hold its events. Finally, we also include an admin panel that allows the administrators to update any data in the database and perform other tasks such as sending a newsletter out to the subscribers. 

My Contribution

Our team collaborated closely on the project, with each member providing feedback across all components. However, we divided the actual development tasks between two subgroups: one pair focused on crafting a WordPress website, while another pair, which included myself, took on the challenge of building a website from the ground up. Throughout this term, I was tasked with the critical roles of developing the admin authentication and pages, as well as the newsletter functionality. I oversaw the full spectrum of these features, integrating React and TypeScript for the front end, Node and Express for the backend, and employing MongoDB as our database solution.

My Biggest Success

My biggest personal success was in using all of these technologies together. Previously, I worked with React through CS 290 and personal projects, while my backend knowledge was developed using Node and Express in personal projects, and Flask in CS 493. I have also used MongoDB in personal projects. However, I had never used these technologies together. It was challenging to learn to integrate all of these different technologies with one another, and I was even able to further expand my skill set by self-learning TypeScript.

The most challenging technical problems I faced this term were in creating a login system with JWTs—a first for me—and mastering the intricacies of sending emails using Node and Express. This project stretched my capabilities, pushing me to devise and implement solutions without the crutch of technical guidance, as our project sponsor lacked a technical background. Engaging directly with a client, interpreting their business needs, and translating those into tangible features was also a novel and enlightening challenge.

My journey as a developer in this term has been revelatory, not just in the technological realm but also in self-discovery. It underscored my adaptability, my ability to self-educate, and my knack for problem-solving under minimal supervision. The experience has significantly increased my confidence, affirming my potential for growth and cementing my identity as a competent and resourceful developer.

Print Friendly, PDF & Email

Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *