My Journey Creating My First Solo Project (part 1): Defining the project
Tags: webdev, react
Published: 2020-08-10 14:30:20

*This article was originally published on [my personal blog](https://arnaudcortisse.com/blog).*

## Introduction

In my [previous blog post](https://dev.to/arnaudcortisse/my-journey-learning-web-development-2k51), 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](https://donotskip.com/en/), 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:

1. A platform coaches can use to **create highly customizable workout programs**. That platform must also allow coaches to **publish their workout programs**.
2. 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.
3. **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:

1. Get an idea of which technologies I would use for each part of the product.
2. Create a prototype of:
   1. the coach platform.
   2. the user app.
   3. the platform hosting the workout landing pages.
   4. 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](https://donotskip.com/en/).

[In the next blog post](https://dev.to/arnaudcortisse/my-journey-creating-my-first-solo-project-part-2-technologies-and-tools-3ecm), I'll tell you how I picked them and what my thought process was.