Categories
My Ramblings

Personal Projects

Now back on to a topic more similar to that of the capstone project: our own personal side projects.

Of course, now a lot of our time is concentrated on our capstone project, but I’m sure there are going to be people out there that want to work on some sort of side project because this capstone may have given them that they could really use the skills they learned throughout the course of this degree to make something and expand their knowledge. Well I’m here to do two things, one much shorter than the other: help you figure out what projects you can do, and my own project that I will be taking on.

Let’s start with the shorter one: finding your project. Personally, I have looked a lot at different project idea lists out there. A lot of them are incredibly helpful in order to learn different parts of building software, from taking input, databases, web apps, and so on. But while those lists are great, I found that I wouldn’t be very motivated to actually even start them. They were definitely going to be of help in learning, but I never really was able to start something that I didn’t have at least a passing interest in. Sure coding/programming was and still is a huge interest, but I didn’t want to put in time to make something that I would just discard basically right after.

So what I figured was to find something I was interested in and look for an idea in there. There are so many ideas that you could find in your everyday life or a hobby. For example, my first project was about half a year before I started here at Oregon State and it was a simple desktop app to get the info you wanted about Board Games from BoardGameGeek.com and output it to a .csv file. I wanted a fast way to get the info without having to go in and manually search it up each and every time. Simple project that took a long time just because I was learning about programming a desktop UI for the first time and learning new concepts. Looking back, I could definitely improve the app, but I had a lot more incentive to make it because I was going to use it.

Now that ties in perfectly with the side project I’m going to work on. I don’t remember if I mentioned, but I’m a huge soccer fan and on top of that, I’m a huge Football Manager fan too. It’s a game where you become the manager of a team basically anywhere in the world and try to turn your team into a world beater. Sounds fun, right? It truly is! But I’ve found that tracking my saves can be a bit of a slog at times. I want to be able to go back in time and see my squad composition 5 seasons ago and see where I improved, or to see my results against a specific team or manager. And on top of that, compared players and teams across saves AND version of Football Manager (20 vs 21 vs 22 for example). So my idea was to make a save tracker for FM. And honestly, I need to put this down on paper in some capacity in order to get my ideas down right.

Now it sounds pretty pedestrian in how to make it, just a few forms to add some players, results, etc. But the issue is that there are so many stats to take into account and some people may want more specific stats or the like. And on top of that, manually adding players, results, transfers, and so on can be a massive time sink with how many stats there are to add. So I would have to implement some sort of backend database (SQLite in my case only because its a desktop app) and be able to read a file (either .html or .txt) and imput the players that way.

That’s just the basic functionality I’m talking about here, and I know there’s so much more I can talk about, but it gives you a glimpse into what my plan is after I complete this capstone project as well as the program and have time after my full-time job in the night.

Feel free to comment on my project or even about an idea you have for a project. Enjoy your little project hunting on the side, but do make sure to actually write the ideas down so you don’t forget later on!

-Gianluca

Categories
My Ramblings

Organization

Organizing is a concept that many people struggle with and eventually kinda sorta figure out down the line. I know its something that I struggle with daily, either physically or on my computer’s file system. Taking a look at my file system, all I know is that everything is everywhere and there once was a semblance of organization before I got lazy and started to not put files in their right place. There are some things in my file system that are in their correct place, basically only my school files just to make sure that I don’t spend too long searching for a critical file for class.

When it comes to physically organizing my space, its been a ride. I moved in to my first apartment with my fiancĂ© back in May and only last month in December did we finally have a sense of organization in our place. The office was in a constant state of “it’ll be fixed soon” until then and only finally was the office and rest of the apartment organized. But unfortunately, I change up my desk setup every so often because I need a refresher of it. Thankfully it looks like now I’ve gotten the final set up with cable management and a more cleaner looking desk and this looks to have a lot more staying power than any of my previous setups.

While I spent a lot of time talking about my trying to organize an already disorganized thing (be it files or room), I want to talk about why organizing your file structure and code for a project from the get-go is so much more important than you might assume. Recently, one of my teammates decided to reorganize the project repo in order to have a clearer structure of what file does what and where things should go. While not revolutionary, it was really crucial to how our development will go in the future. Now knowing that the file called “gmaps.dart” is where the Googe Maps screen lives makes it easier to find and fix any potential errors and even test the errors/fixes that you make on it.

Having an asset folder is also crucial as you can dump your images (and give them descriptive names!) and then quickly add them to your screen without much issue. He has set this up at the best time: the beginning of the project because its so much easier to organize a few items instead of 15 different items.

On top of that, the actual code itself needs to be organized in a way that makes sense too. When designing code, if the language you are using has an entry point (the main function in Java, Dart, etc), you have two options for where to place it: the beginning or the end. There are pros and cons for each, which seem to be more about how you work personally. I rather have it at the top because its the entry point for the code, but having it at the bottom makes almost the same amount of sense.

When it comes to functions, having functions that call other functions close to each other is also good organization as you can more easily see what the function does and make sure that you pass/return the correct things in order to make the function work. Of course there are some exceptions to this rule, but by and large, having functions close to each other when one calls another makes it easier to compartmentalize your code.

There’s also the option of outsourcing your functions to other files in order to not muddle your main file and have different files for different operations which is hugely beneficial, especially if you have a bigger project.

Overall, there’s much to talk about when it comes to organization. Attempting to organize something utterly disorganized is a task in of itself, but rewarding at the end, but having something be organized from the get go is even more rewarding since you don’t need to go through that work to organize it. But it all comes down to if you are able to keep it up. Probably the hardest part about organizing is the simple idea of keeping up your organization, and while it may seem easier, you might slip up and forget and undo all your hard work to organize.

Start organizing your things in order to help clear yourself of time of finding things and to give yourself a nice feeling of knowing where everything is and not feeling anxious about the place around you.

-Gianluca