This article was originally published on my personal blog.
Introduction
In my previous blog post, I talked about how I got into web development and that at some point, I felt that I needed to create a project on my own in order to consolidate all my newly-acquired knowledge.
In this article, I'm going to talk about DoNotSkip, the project I decided to create.
Coming up with an idea
I wanted to find a project idea meeting the following requirements:
- make use of my previously acquired knowledge,
- is complex enough that I still need to learn new stuff in the process,
- is unique and solve a real world "problem",
- can potentially make a little money.
If all of these requirements were met, I knew the project would keep me interested and motivated, which meant I would go through to the end of it, whatever it takes.
The project idea
It's a fair statement to say that it's easier to solve problems in domains you already know about.
Therefore, I decided to try and find an idea related to fitness since I've been working out for about 8 years.
When I'm working out, I like to take note of my performance and see whether I'm improving. Maybe I could develop a mobile app that would allow me to record my performance? Let's be honest, that's not original! I wanted to go a bit further...
And then, I came up with something that would make it more original. You see, I like to watch fitness Youtubers every once in a while. I've noticed that some of them sell or share workout programs in PDF files. PDF files... Really? Maybe that's something I should fix with my project.
What if I created a platform that would allow coaches to create their own workout program (with their own images, pieces of text, etc.) and to share it with their community, which in turn would use it in a mobile application? I found similar platforms existed, but I couldn't find any that offered the possibility to distribute workout programs at scale (because their pricing model is not thought out that way).
Requirements
The product would consist of three main parts:
- A platform coaches can use to create highly customizable workout programs. That platform must also allow coaches to publish their workout programs.
- A platform used to host the workout program landing pages. When coaches are done with creating their workout program, they need to be able to publish it and share it with their community.
- An app members of the communities can use with their coach's workout program.
Initially, I wanted coaches to be able to sell their programs on the platform, but I decided against it in the end (I'll explain why in another blog post).
Roadmap
My first roadmap was pretty straightforward:
- Get an idea of which technologies I would use for each part of the product.
- Create a prototype of:
- the coach platform.
- the user app.
- the platform hosting the workout landing pages.
- the landing page of the project.
I couldn't plan too much in advance at that point because there were too many unknowns.
Picking up technologies
It was time for me to choose which technologies I would use in each part of DoNotSkip.
In the next blog post, I'll tell you how I picked them and what my thought process was.
Top comments (2)
I'm curious to see your next steps after you defined some of your functional requirements
I'm glad you are curious βΊοΈ I see you've already checked part 2 of this series.
In the upcoming blog post, I'm going to talk about the system design of DoNotSkip. At some point I'm going to talk about how I used JWT tokens for auth and your article comes in handy π might add a link to it :)