Posted: May 7, 2020
I’m starting up a new side project, and I thought it would be nice to document my process. Starting a side project can be overwhelming due to the number of steps required, but a proper plan helps bring things into focus.
My old side project
I’ve written one major side project before. It was a website where you could read inspirational quotes, sign up for an account, save favorites, and have some quotes emailed to you every day. It was written in Python using Django, and I was very inexperienced at the time.
Eventually, the project languished, I took the server offline, and I stopped renewing the domain name (permi.co). I probably still have the code somewhere, but like I said, I was very inexperienced. I still like the idea, but I want to start from scratch.
My goals are to:
- Create a useful website
- Learn a new framework
- Learn about unit testing
- Write this tutorial
- Add to my visible portfolio
I want to keep this project simple, but I will be designing it to scale effortlessly. I will most likely deploy the website on a Digital Ocean VPS running Debian.
This is Step 0
Step 0 is to determine goals and to plan the rest of the steps. I will be documenting each step in its own post.
What are those steps going to be? Here’s an educated guess:
- Decide on a language and framework to use
- Decide on other technologies to use (database, framework extensions, cache layer, etc)
- Plan features
- Plan data structures required by features
- Get the server, database, and cache up and running
- Start coding
As I get moving, the plan will undoubtedly shift and change shape. That’s okay.
Remember, PPPPPPP: Proper Prior Planning Prevents Piss Poor Performance.
Follow along with me
I’ve actually already decided which language and framework to use for this project, but I won’t hold that against you, dear reader. Think of a good idea for a side project, check back soon for Step 1, and we’ll get through this together.