Categories
Uncategorized

Blog Post #2  

Senior SWE Project CS462 – W2025 – Scott Lindsay

Overall, I’m satisfied with the tech stack our team has chosen. In this post, I’d like to share my thoughts on some of the alternatives I considered.

My Favorite Technology:

Flask has been my preferred framework for this project. I appreciate its minimalistic and flexible design, which allows me to build web applications quickly without unnecessary overhead. Flask provides the essential tools to create a solid backend while giving me the freedom to incorporate additional libraries and extensions as needed. Its straightforward routing and request handling have proven very efficient for maintaining server-side logic.

My Least Favorite Technology:

On the other hand, I found Vue.js to be a bit more challenging. Although it is a powerful framework for developing user interfaces, its component-based architecture and reactive system initially felt overwhelming. The steep learning curve—especially around state management and lifecycle hooks—made it harder to get up and running quickly. Despite its many strengths, it took me longer to feel comfortable with Vue.js compared to other parts of our stack.

Technology I Initially Struggled With But Now Appreciate:

State management with Pinia was another area where I faced early challenges. Transitioning from a different state management approach meant I had to adjust to new concepts like stores and reactive state. Over time, I began to appreciate how simple and well-integrated Pinia is with Vue.js. Today, it serves as a reliable tool for managing application state effectively.

What I Would Change:

If I could suggest one improvement, it would be enhanced documentation for Pinia. While I’ve grown more familiar with its core concepts, I believe that additional examples and real-world use cases would help new developers learn it faster and adopt best practices more readily.

The Most Difficult and Easiest Technologies to Learn:

Implementing CSRF protection turned out to be one of the more challenging aspects of this project. Understanding how to correctly apply CSRF tokens and secure all endpoints required careful attention to detail. In contrast, grasping the concept of SQL injection was relatively straightforward. Learning how improperly constructed SQL queries can lead to vulnerabilities underscored the importance of securing our applications.

If I Could Start Over, What Technologies Would I Use?

If I were to start over, I would consider replacing MySQL with PostgreSQL for the database. PostgreSQL offers advanced features—such as JSONB support and better handling of complex queries—that provide greater flexibility for data models. I might also explore Django as an alternative to Flask because its structured approach and built-in features could streamline development even further.

A Technology I Wish Had Been in My Tech Stack:

One technology I believe could have added significant value is GraphQL. Its capability to let clients request only the data they need would have streamlined our API interactions and reduced unnecessary data transfer. This efficiency could have made managing complex data relationships easier, especially in a project focused on addressing vulnerabilities.

How My Favorite Technology Works:

Flask is a lightweight Python tool that makes building websites simple. One helpful analogy to simplify the tools purpose could be a recipe book: when someone visits your site, Flask checks the URL to pick the right “recipe” of instructions, then puts together and serves the correct page. It smoothly handles requests and responses while giving you the flexibility to add extra features as your site grows. In my view, Flask is a lightweight Python framework that simplifies web development. It lets you map URLs to functions through defined routes, making the process of handling incoming requests and returning responses very clear.

Happy Building!
– Scott Lindsay