How to design a side project

John Stupka
4 min readDec 10, 2021

--

Photo by XPS on Unsplash

Most folks want to work on a side project, but they don’t know where to start or even how to plan out their side project. That’s where I’m going to try to provide a bit more detail on how to plan your project and how to start something you can finish.

I don’t know what to make?

Great! You know you want to make “something”, but you just don’t know exactly what. That happens all the time and it’s one of the main reasons someone struggles to identify a side project. Most of the time folks are looking to make a side project to a hackathon, open-source project, or as a way to share their skills with others. Thankfully you aren’t the only one to run into this issue, and there are a lot of common prompts that are out there for projects.

https://github.com/florinpop17/app-ideas
https://github.com/open-source-ideas/ideas

You can either create a “clone” of something else that’s out there or look at the data you currently have/will have in the future to build an app. If you don’t want to build a full blown app, look at making minor improvements to a library you use or something you have to do manually again and again that you’d like to automate.

Where is your Data?

You know what you want to build so building something should be a ton of fun, but the biggest hold up for almost anyone building a side project is the data they’re trying to use. Sometimes they build something, but there isn’t any data or information stored in the system. So when you look at it, the system is just the bare bones of what it “could” be and it becomes discouraging. So the first question you should ask yourself is…. Where is the data? How is the data created? How much data am I going to be working with?

UI/UX designers and consultants have learned this trick long ago, they have pages and pages filled with a stub text called “Lorem Ipsum” because when you look at a web page or a text page and it’s empty then it just looks bad. So, the first thing you should do is figure out what data you are working with and from where.

Here’s a list of places you can start to pull data that I’ve used:

https://github.com/n0shake/Public-APIs
https://github.com/public-apis/public-apis
https://github.com/rfordatascience/tidytuesday

Presentation?

So the next question you need to ask is, where do I need to present this information and how do I need to present it? Thankfully you have loads of data so building objects/structs/classes with different fields/attributes should be a simple task now. Break up your data into sections that you are comfortable using and then start figuring out where you want to group the data you’ve pulled from the above locations.

One you’ve got this in a workable internal system within your application, you need to choose how you want to “show” the data you’ve grouped. This means either a web page, a cli tool that prints to screen, or an API that you can share with others. My preference has always been start with a web page, build an API to feed the web page, and then finally create a cli tool to read from that same API ensuring consistency. This gives you a visual aid in the form of a web pages, so when you are building your API endpoints you have a great reference for the data you are exposing. This also means your cli experience will be the same as your web experience from a data perspective, making it easy to use either.

If you aren’t sure how to build a web page or an API check these:

https://getbootstrap.com/
https://get.foundation/
https://swagger.io/
https://openapi-generator.tech/

Iterate

Now that you have something written up, you should put this somewhere that you can alter it again and again while recording these changes. Don’t just put this in a folder or zip it up and carry it around with you. Put this somewhere you can work with others and that makes sense to you, then start making a list of improvements once a month and do at least one change a month to the application you wrote. If you can’t think of any changes, save this project for later as an example, and start something new.

Congrats! You should have completed your first side project if you follow these steps, just remember to pick something you are passionate about.

--

--

John Stupka

Coffee Drinker, Chief Engineer of Dancing at Desk, Foodie, HyperText Transfer Operator, Overly energetic and active! 💻 ☕