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 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!



The User Interface

Designing a User Interface (or UI) is something that I consider an art of sorts. There’s such a thin line between the UI being too cluttered (functionality) and being too minimalistic (aesthetic). Sometimes one element makes that difference, while sometimes its the size of the elements. Walking that line can seem easy before you start, but when you really start to design the app, you notice how hard that is. It can start off with an innocent want of adding a button at the bottom of the screen simply because its such an important function that the user needs to needing to have all functionality of the program in the main screen. I’ve struggled with this many times, from making a web application for class, working on a desktop UI for a personal project, or redesigning a form for work where you have to meet the needs of the client. I haven’t found the secret to making a good UI, but looking at different UIs from around the internet (web apps, phone apps, desktop apps, etc.), I’ve noticed that the most important aspect of a UI is great User Experience (or UX). User experience can be broken down into many factors like loading times, but I’m only going to focus on the UI here.

When you look at the UI of different popular apps, you can see why they are so popular. They just are intuitive to use. Take a look at Twitter’s UI below

From Google Play Store

Thankfully its a nice app to look at, and the UI really drives forward the notion of it being really easy to use. Look at the bottom row for example. Four icons which are universal in many other applications. The home button to take you back to the home screen (in this case your timeline), the search button to search, the notification bell for notifications and the email icon for your direct messages. Above that last button is the create Tweet button. And all of that takes up so little space and gives so much more for the timeline you have created for yourself.

Twitter’s app is just one of many, but notice how much the UI lends itself to having a great experience with the app. Your focus is on the main timeline, but can quickly switch to a different panel as needed with the tap of a button. It is something that we must strive to do in our own UIs for the capstone. UI design is not easy, usually you would go through many types of designs in order to find the right one that fit the requirements of the client, but once you do you still have to refine it to the point where the UX is great and the user is not frustrated with how your app is laid out. And this is all before even beginning to start the actual coding of the app and its functionality. Design takes the longest and gives the most reward to your app since it can be the reason a user keeps coming back to your app to use it.

In the end, UI is arguable the most important aspect of an application simply due to how it can take an app from mediocre to a daily used one. There still is always a fine line to walk between functionality and aesthetics, but if you can hit it correctly (like Twitter has in my opinion), the app becomes something that you try to emulate in your own projects down the line.

Now to work on the UI for the capstone!

— Gianluca