← Back to home

Introduction to the Project

Welcome to Collectathon - Dev Logs!

My plan is to use this blog as a way to document my thoughts and design process throughout the development of this project. Before I begin actually working on the application, I want to first write a few articles that will explain what I will be building and what my plan for building it is. It's important to lay out my goals and direction for the project, as well as what features I want both the minimum viable product (MVP) and the feature complete product (FCP) to have. So let's think of these first articles as sort of a functional specification for the project. Afterwards, each article will be like a Standup meeting where I talk about what I've been working on, what comes next, and my current thoughts on the project's direction.

What is Collectathon?

Lately, I've been really having fun with keeping track of how many video games I've completed throughout my lifetime. I've also been working on building up my collection for a while now. The problem I've ran into is I started prioritizing adding games to my collection before finishing the ones I've already bought. Now I have a backlog of games I need to finish - another list I need to keep track of. Of course, there are still new games coming out that I want to play too - gotta make a wishlist now. So here I am creating all of these lists that I'm trying to keep up with all in my iPhone's Notes app. Moving around content in Notes can be kind of annoying, let alone trying to organize and filter it manually. What if I also want to start keeping track of how long it takes to beat these games? You guessed it, create another list in Notes.

I think Collectathon will be the solution to this problem. Collectathon will help keep track of what games are in my collection, create lists to organize these games, and provide meaningful info and statistics for each game. I also want to emphasize making it easier to rearrange games in lists and moving them around between lists.

I've had the idea for Collectathon for a while now, and I've even tried implementing it before. I aimed to create an iOS application version of this idea for my capstone at IUPUI, which was a semester-long project for demonstrating my skills obtained throughout my computer science degree. My goal was to determine a proper stack for the project, set it up from scratch, and see through a full-stack application's development from conception to completion. This was a very large undertaking, so I didn't get to fully implement my dream vision of Collectathon. Collectathon ended up just being the medium for reaching the goals of my capstone. However, I did learn a lot about full-stack development, and I think the experience from my capstone will set me up for success for this new project.

So now it's time to really create Collectathon! I have bigger plans this time around, too. My friends have used apps for different forms of entertainment like movies and books that let you see what your friends are watching/reading, along with their reviews. I think my app could implement these concepts and be just as much of a social media app as it could be tool for managing game collections.

Time to plan.

Now that we've estabilished a solid overview for what Collectathon will be, it's time to start figuring out the specific features I'll be building, planning how to build these features, and scheduling when to implement each one. Some important things to consider are Functional/Non-functional Requirements, User Interface Design, Data modeling, System Interfaces, Dependencies, Testing, and Error Handling. These topics are normally covered in a functional specification document, but since I'm treating these first few articles as a replacement for that document, I'll be designating a whole article for each one of them.

Let's get started!

I'm excited to finally have an ongoing personal project, and to be honest... I can't wait to use my own product! I love that I'll be able to keep adding new features and capabilities for the application whenever I think of them. If there's something I don't like about using the app, I can change it. That's the beauty of learning software development - you can design applications that you actually want to use, and you have something to show others when they ask what you do at work.

Thank you for joining me on this journey! If you have any feedback or suggestions, please send me a message! I'll link my contact page so you can send me a message or reach out in other ways.

-Caleb