Categories
Uncategorized

Blog Post #3

As the term wraps up, I’ve taken some time to reflect on my work with Pawsome. I have learned a new framework, ran into some challenges along the way, and persevered. Here’s 5 things I’ve learned.

  1. Working on a team requires communication and adaptability. Let’s face it, life happens. The unexpected is the expected, but when others are relying on you, even if its bad news, keeping the team informed is critical to maintaining trust and ensuring overall project success.
  2. Next.js uses a file-based routing system, which requires each route to be placed in a directory with the same named file, page.tsx. Oh how long it took me to figure out that I couldn’t name my pages the name of their functionality.
  3. Using Bootstrap, along with a Bootswatch theme, makes the design process efficient, consistent, and simple. We’ve all tried to customize our CSS styling, leading to headaches and confusion as to why something isn’t working as intended. Using Bootstrap saved time and made a nice look and smooth flow across the application.
  4. The importance of working with environment variables (.env) to store API URLs and tokens. This was a new experience for me and I now understand how it helps create secure and dynamic configuration for different environments.
  5. Always check the git status before attempting to push your code into the repository to avoid all sorts of headaches. Doing this helps catch merge conflicts and prevents errors. Running git status is a new habit I have developed after learning the hard way.

These are just a handful of things I learned this term. There are a lot more, but these ones stuck out to me. Each challenge, mistake, and success helped me grow as a developer, and even as a better collaborator and problem solver — skills that will help me as I grow into my career.

Categories
Uncategorized

Blog Post #2

For our project, we are using React, Next.js, TypeScript, and Bootstrap on the frontend, and Directus for the backend.

I am new to learning TypeScript, and it has been an adjustment. JavaScript is where I am more comfortable, but I can see the similarities, such as managing the state and creating components. It seems like TypeScript adds an extra layer of type safety, which is nice. I am starting to get the hang of it.

Next.js is also something new I am learning. I appreciate that it eliminates the need to use a separate Express server, making development simpler and straightforward. One thing that took me a minute to figure out was how routes must be named consistently and placed with the pages own directory – a different approach than I am used to.

My responsibilities are on the frontend, so I haven’t used Directus much yet. From my understanding, it is a nice and easy way to manage data via an API.

As far as favorites go, I really enjoy working with C# and JavaScript. C# is powerful for backend development, and JavaScript allows me to build dynamic and interactive frontends. My least favorite would have to be C++, I know it is powerful, but I find the memory management to be less enjoyable and the syntax feels less clean compared to other languages.

Overall, my learning experience has been enjoyable, and I’m excited to see how our project turns out.

Categories
Uncategorized

Blog Post #1

I read the article “How to Write Clean Code – Tips and Best Practices” by German Cocca. Cocca calls out several important principles for writing and maintaining clean code. Some of the principles that stood out the most to me were simplicity, effectiveness, efficiency, single responsibility principle, re-usability, and modularization.

In Chapter 8, “Code Smells and Refactoring” from the 2nd edition of the Handbook of Software Engineering Methods by Lara Letaw, the writer provides excellent advice to making code cleaner, recognizing code smells, and refactoring techniques.

One thing I would like to do more often is regularly refactor my code. I want to take a more proactive approach to refactoring code. By viewing code as an evolving product that requires attention and care, I can improve as a developer, and ensure the code is readable, maintainable, and scalable for myself and any other developers working in the codebase.

One example for improvement is breaking long methods into smaller, single purpose ones. The code snippets below show how one function is split into two classes that handle their specific responsibilities:


Source: https://www.freecodecamp.org/news/how-to-write-clean-code/#heading-how-can-i-assess-whether-a-codebase-is-clean-or-not

Source: https://www.freecodecamp.org/news/how-to-write-clean-code/#heading-how-can-i-assess-whether-a-codebase-is-clean-or-not

One thing I absolutely want to avoid doing is overlooking any code smells. Paying attention to indicators, such as overly long methods that need to be broken into smaller chunks, consolidating duplicate code into reusable functions, or issues with documentation–whether it’s missing, outdated, or excessive. I don’t want to rack up the technical debt, so addressing the smells early on will improve the longevity of the codebase and make all developers life’s easier.

Here’s an example of duplicate code, followed by a consolidated and improved version:

Source: https://open.oregonstate.education/setextbook/chapter/code-smells/#chapter-64-section-5

By regularly refactoring my code, it will address code smells, and improve the maintainability and scalability of any codebase.

References:

Cocca, German. “How to Write Clean Code – Tips and Best Practices (Full Handbook).” freeCodeCamp, 15 May 2023, https://www.freecodecamp.org/news/how-to-write-clean-code/#heading-how-can-i-assess-whether-a-codebase-is-clean-or-not. Accessed 14 January 2025.

Letaw, Lara. “Code Smells and Refactoring.” Handbook of Software Engineering Methods, 2nd ed. Oregon State University, 2024, https://open.oregonstate.education/setextbook/chapter/code-smells/. Accessed 14 January 2025.

Categories
Uncategorized

Blog Post #3

Photo Source: https://cheezburger.com/12581125/relatable-programming-memes-for-exhausted-coders#utm_source=social-share&utm_medium=pinterest

Team Dating App for Animal Adoption is killing it. We have established a solid plan to bring this application to life and it makes me very excited for the upcoming terms.

Our first checkpoint for getting development going on this project involved implementing a couple of simple “dummy” pet profiles with the like and unlike functionality along with integrating a Bootswatch theme using Bootstrap. Working with Typescript and Next.js has been a new experience, but I am enjoying learning some new tools.

While I have had some exposure to Bootstrap in the past, my experience has been minimal. For this project, we decided to go with the latest version of Bootstrap and chose the “minty” theme from Bootswatch. It is incredible how smooth Bootstrap makes the design process, creating consistency and providing a nice color palette to reduce time spent customizing the styling.

As the end of the term approaches, it has led me to reflect on the techniques that have helped me to be productive throughout this term. Whenever I feel stuck or overwhelmed, I find it helpful to make a list of all the tasks I am trying to accomplish and then determine priority for each task. This approach helps break these tasks into smaller chunks, making the overall goal more manageable.

To maintain my focus and be productive, I have been using the Pomodoro Technique. This technique involves setting a timer for 25 minutes, putting away all distractions, and dedicating my full, undivided attention on whatever task I am working on. Once I crush that session, I take a 5 minute break away from the computer before starting the next session.

Another piece to the puzzle that has helped me with managing stress and working with my team is communication. Working closely with others can present challenges, but I’ve discovered that open communication, empathy, and mutual support go a long in way in building a solid team and eliminating stress. Regular team meetings and clear delegation of tasks help each member to be on the same page and work towards a mutual goal.

We are so close to the end of our undergrad journey. We might as well make it fun.

Knock knock.

Who’s there?

Recursion.

Recursion who?

Knock knock.

Categories
Uncategorized

Blog Post #2

For my capstone project, I’m working on a dating web application for pets called Pawsome. The idea is simple and meaningful by helping match pets with humans. There are 3 people in my group, and I am fortunate to be working with two talented teammates, one is located in Minnesota, and the other in Vietnam. Working in different time zones has presented some challenges, but it has also given us opportunities to grow and improve our communication and collaboration skills.

Our goal is to develop a dynamic and responsive user interface for the application. To achieve this, we’ve chosen React, Next.js, Node.js, Directus, and SQLite as our tech stack to build the platform. I am new to Next.js and Directus and look forward to learning both technologies.

What really fuels my passion for Pawsome is my love for animals. Growing up in a family where pets were always a part of our lives has had a lasting impact on me. My whole life I have had pets, from dogs and cats to unusual pets like mice, rats, hamsters, and lizards. This exposure created a deep love for animals and a strong sense of responsibility and compassion for their well-being.

As I have worked on Pawsome, I have come across statistics on animals currently living in shelters and the numbers are astronomical. Currently, millions of animals in the United States alone are waiting for a loving home. I knew the issue was big, but I am now realizing it is even bigger than I anticipated.

Through Pawsome, my hope is that we will make a small but meaningful difference by helping more animals find their “furever” homes. By matching humans with pets, I believe we will be able to alleviate some of the burden on shelters while giving more animals a chance at a better life.

Photo Source: https://www.boredpanda.com/funny-doggo-memes/

Categories
Uncategorized

Blog Post #1

Hi there! My name is Devri Anderson and I am located in the heart of Oregon’s wine country in McMinnville, Oregon. I have an obsession with music and enjoy going to live events any chance I get. Some of my hobbies include hiking, candid photography, making videos, weight lifting, gaming, wine tasting, and finding all the good food. I am a sucker for Thai and Mexican food, and pizza and good chocolate are the way to my heart.

My journey with computer science started in my teens during the early days of Myspace. I took a liking to HTML and CSS, not realizing then that I could turn it into a career. Pimp-my-profile.com is where it all began.

During the pandemic, I knew I wanted to make a career change and decided to pursue a degree in Computer Science. I had a lot of fear, but decided to “be brave enough to suck at something new.” I started at Portland Community College and eventually transferred to Oregon State University in 2022 to complete my Computer Science degree with a minor in Business.

I am currently a senior and through my academic journey, I have learned C++, C, Assembly, Python, Flask, JavaScript, React, SQL, HTML, and CSS. My favorite classes so far have been CS 374, CS 352, and CS 406. CS 374 was incredibly challenging, but pushed me out of my comfort zone where I saw my most growth. CS 352 I created a pet care prototype with my group and learned so much about design and creating something that is accessible to all. For my project in CS 406, I developed a web application that allows users to input the ingredients they have on hand and receive cocktail recipe suggestions.

This last summer I got a Software Engineering internship through the MEDP program in McMinnville. Companies in the area come together to host interns and provide weekly professional development seminars for interns to learn about networking, resumes, interviews, finances, business practices, elevator pitches, leadership, team building, and public speaking.

I learned C# and ASP.NET and sharpened my skills in JavaScript, SQL, HTML, and CSS through full-stack development projects. This included front-end and back-end components, designing user interfaces, research, working with the database, creating stored procedures, and creating dynamic web pages. The company I interned with asked me to stay on when the internship concluded.

As I begin my senior year and capstone at OSU, I am nervous, excited, and so proud of myself for making it this far. Several projects caught my eye but the ones that stood out were Foodable and the dating app for animal adoption. Foodable because it solves a problem so many people have of creating a grocery list of healthy food in your area, finding and sharing recipes, and integrating AI to automate this routine task. The dating app for animal adoption because there are so many animals that need a forever home. I would love to contribute to a solution that makes the adoption process more accessible and helps animals find the love and care they deserve.

I am excited to apply everything I have learned so far while continuing to expand my skills. I look forward to contributing to a project and building confidence along the way. I anticipate the challenges that will come and see them as learning opportunities to grow as a developer and as a human.

Categories
Uncategorized

Hello world!

Welcome to blogs.oregonstate.edu. This is your first post. Edit or delete it, then start blogging!