Course Reflection and Thoughts

This course has definitely been one of the more gratifying and enjoyable in the program. I love how we are given the ability to choose a project and implement it how ever we choose to do so. My team chose to use React, Node.js, and MongoDb as our main tech stack. I am definitely very happy we went this route. I have learned so much throughout this course and I’m excited about continuing to use these technologies in the future.

Now that we are closing in on the final weeks of this course, I am excited about our web application since it is very close to being done. It has been incredible how we were able to accomplish so much work over just a couple months. I think much of our success was due to how diligent we are about completing our work on time and communicating well. We always try to let each other know if we get stuck or need more time to work on something. This allows us to quickly pivot and give help where it is needed.

Looking back most of my experience has been very positive. There are a few things I would change however If I were to repeat this course. One thing is that I would try to do a better job at keeping up with our backlog and tasks. We used Asana for this but I saw that it was hardly ever regularly updated and the tasks on there were not specific enough. Another thing I would do a better job at is deciding on features early on. Some of our later features were introduced on the whim and I think it would have been great to have them in our plans from the start.

Overall, I had a very good experience in this course and I can see all value it offers to soon to be graduates of this program. I am glad this course gives us the opportunity to display all the skills we have learned across our time here at OSU!

How I approached login functionality

The task that I’ve been focused on during the past couple weeks has been building the login and authentication functionality for my groups web application. Before taking on this task, I had no previous experience with building login functionality for an application. I was a bit hesitant about this task as I felt unsure about my ability to complete it. Thankfully, I found that there are many resources out in the internet about how to accomplish this task.

My group is using MongoDb, Node.js, Express, and React for our project. Due to our choice of this very common stack, there are plenty of guides and tutorials out there about many common tasks using this stack. I was able to find so many guides on how to do both the backend and front end for the login/registration system. Based on what I learned, I decided that I was going to store “users” and “roles” in the database. When a user signs up the the database creates a new user with the “user” role assigned to it. The other roles is admin which allows more features to be present in the application. I then build login and registration forms using html and bootstrap. I used the mongoose library to deal with user verification and saving new users.

As a result of my research and willingness to take on an unknown task, I was able to complete the login and registration functionality. I am glad I challenged myself because I feel a lot stronger about my skills now. In the future I’ll definitely volunteer for more tasks that are out of my comfort zone.

Project Progress Experience Far

Coming into this project, I’ve had mixed experiences with group projects. Some have been amazing and I’ve got along with my teammates very well. In these cases the result was a great project and overall amazing experience. On the other hand, I’ve also been on teams where everyone seemed to be on a different page and at the end the project experience was less than desirable.

Fortunately, this project has been great so far. My teammates and I get along very well and we all understand each other backgrounds and expectations. I think something that really helped us get going was creating the team standards agreement early on. This agreement allowed us to set forth expectations for each other to follow through the quarter. It also set forth a foundations for team communication and progress.

For example, we chose to use Teams as our main means of communication and so far it has worked very well. Everyone is very response and I don’t think I’ve gone more than a few hours without a response. We also established a weekly meeting call where we share progress on what we have been working on. This call also gives us an opportunity to communicate and work on team dynamics. Moreover, we use Asana to manage our tasks which has made it easy to keep track of progress on features.

I think overall this project experience very closely resembles how a professional work environment would be like. I also think that so far it has been very useful because it this class helps me work on my team work and communication skills. As future software engineers we will mainly focus on coding but one of the other important skills is being able to communicate effectively. I think working on improving soft skills such as communication and teamwork abilities through his project is extremely beneficial.

How I Approach Time Management

I’ve always had issues with figuring out how to manage my time. I remember back when I started this program, I had the worst procrastination ever. I would very often start assignments the day they were due. I remember I once started an assignment a few hours before the deadline.

Thankfully, as I’ve progressed through the program I’ve gotten a lot better at managing my time and minimizing my procrastination. Much of my improvement has been through necessity because the classes got progressivity harder and because I had to manage my job in addition to classes. As the classes got harder, I realized that I couldn’t procrastinate as much anymore and actually had to start working on assignments earlier. For example, my second quarter I was taking 271 and 162. During the last couple weeks of that quarter I had to complete two final projects that were both fairly difficult and time consuming. However, at that point I was still not very good at managing my time so I ended up starting the projects late and even thought I got good final grades I still didn’t end up doing as well on those projects as I hope.

Since then, I’ve tried a lot harder to start assignments early. Even if it just means looking at the assignment description. I also plan out my weeks ahead of schedule and try my best to keep myself aligned with this schedule. This allows me to know exactly when I should start assignments and how far along I should be at a certain point of the week. Something else that has helped me minimize my procrastination is realizing that I’m going to have to finish assignment regardless. So it is a lot better to finish them early instead of waiting to the last minute. I’ve also gotten into the mindset that if I finish my assignments early then that just gives me more flexibility to do what ever I want with my free time for the rest of the week. Moreover, this free time can be spend worry free as compared to when I would avoid assignments only to have that deadline constantly in my thoughts. In addition, starting assignments early allows me to get help from TA’s early on in the week when office hours are less likely to be congested.

I still have a long way to go in regard to improving the way I manage my time but I’ve definitely come a long was compared to when I started this program. One of my goals this quarter is to start assignments the day they are assigned. I am also trying to challenge myself to learn new things even if they aren’t required for a class. I feel that I am definitely going in the right direction and I’m excited to see how much better I will be by the end of this quarter.

Choosing the project

For capstone, I wanted to build a web application to get more experience with web technologies. I am leaning toward web oriented roles post-graduation so getting some extra practice and further building my skills would be very beneficial. My team and I ultimately decided to focus on the dating app for animal adoption. We thought this app would allow us to build a solid application with plenty of opportunities to expand the project.

Choosing a stack

As a team we wanted to work on a modern and popular stack. We opted to build the application using React, Node.js, Express, MongoDB, and a collection of smaller dependencies and libraries. We felt that this stack would allow us to work with increasingly popular technologies that are very in demand in the job market right now. We also felt that using these technologies would allow us to quickly and effectively build the application.

Our background

Our experience with building web applications mostly was from courses previously taken in the program. For the specific stack we chose, our experience was beginner to none. We felt that this project presented an excellent opportunity to learn new skills and develop our skillset. We are all definitely excited to tackle on new technologies and learn as much as we can.

Looking ahead

So far my group and I have gotten along very well and understand each other background and expectations. I do expect us to run into roadblocks as the course progresses. However, I am very confident that we will be able to take on these roadblocks and successfully overcome them. We will learn a lot along the way and have a great product at the end.

Introduction!

Intro

Hello everyone! My name is Daniel and this is my final quarter at OSU! I am definitely very excited to share my journey throughout this course. I also plan to use this blog as an opportunity to share updates on my journey as a soon-to-be new grad.

Background

I started coding back in 2014 in an intro level CS course during my freshman year of my first degree. However, admittedly I struggled a lot during that course and felt that coding wasn’t for me. After this experience I felt defeated and lost interest in coding and for 3 and half years I didn’t touch a line of code. Then during my final quarter I was forced to take another CS course as part of my major requirements. I redundantly signed up for the second intro level CS course at my school and this time the experience was night and day compared to the first course. I absolutely killed it this time around. I finally felt that things were starting to stick and I did very well in that course. After that course I graduated but I was having doubts if my career path at the time was right for me.

I starting thinking about how much I enjoyed coding and began research on potential programs in CS. I found this program and applied. A month later I got an acceptance and decided to enroll for the Fall 2019 quarter. Fast forward and I am now reaching the end of this program. Throughout this time I have learned so much invaluable information both through courses and opportunities that presented themselves thanks to this degree.

Looking Forward

I plan to continue sharing updates on my journey throughout this course and as a soon-to-be graduate. I will share information on my project, internships/outside opportunities, the fulltime job search experience, and potentially any other interesting topic that comes to mind. I’m very excited to use this as an outlet to share my experience!