How to plan for a successful side-project. The Kortiku chronicles.
Tags: showdev, beginners, laravel, productivity
Published: 2021-04-21 15:28:58

Photo by <a href="https://unsplash.com/@kobuagency?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">KOBU Agency</a> on <a href="https://unsplash.com/?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>

In case you missed it, check out the first post about Kortiku.
{% post https://dev.to/theowlsden/kortiku-eps1-intro-4603 %}
  
After a couple of weeks of slacking off, I decided that it's time to continue with Kortiku. The logical step is to start coding right? Well.. no⛔. First I decided to try to create a plan for this project. Some of my other projects started with coding and were never finished. This one will be different! (Hopefully😅) After reading some articles on how to start a side project, I got an idea of how to start planning the project for success.
(I highly recommend these posts by @peterlunch & @ms_yogii ):

{% post https://dev.to/peterlunch/how-to-plan-and-build-a-programming-project-a-legitimate-guide-for-beginners-1fll %}{% post https://dev.to/ms_yogii/5-tips-to-work-on-your-side-project-while-working-full-time-n7i %} 

<img src="https://media3.giphy.com/media/LSRBzSMN4JCFG1AkFd/giphy.gif?cid=ecf05e47p2wxem4wx4mqxwdcywl1chnc3lyixz9opji7w81n&rid=giphy.gif&ct=g">

First I created a more complete description of the project, what would be its features, and what they would solve. Then I estimated how much time it will take to create an MVP (Minimum Viable Product). After that, I jotted down the first set of tasks that are needed to get started. For that, I used epics and user stories. More on that [here](https://www.atlassian.com/agile/project-management/epics-stories-themes).

Below you can see the description of the project and an example of how I set up the tasks.

## **Short Description**

> Simple and minimalistic URL shortener web application that lets you short multiple URLs. Besides that it allows you to create a link-in-profile where you can share multiple URLs in one link.

## **Problem Description**

In this day and age, people are sharing a lot of URLs with each other. This comes with the added issue of sharing long URLs that are too long and complex or that you would have to share multiple separate URLs increasing the URL confusion that already exists.

## **Solution**

A URL shortener allows you to create alias URLs that are shortened and more readable. By creating a collection of URLs and giving them a description, it becomes easier to share URLs. That is what Kortiku offers. While you can share the alias URLs, Kortiku also allows for the creation of QR codes for easy sharing.

## **Project Phasing/Timeline**

### Estimated Development Time

> 3 months

It will take 4 weeks to create an MVP, 2 months to have a production-ready application.

- Start:  21 April 2021

- MVP: 14 May 2021

- Initial deployment: 30 June 2021

## MVP

The Minimum Viable Product of Kortiku will consist of the following:

- Ability to create unlimited shortened URLs
- Ability to generate a QR code for shortened URLs
- Ability to sign up & login/ sign out
- Ability to create Link-in-Profiles
- Ability to generate QR codes for LIPs

## Nice to haves

Some nice to haves for the deployment of Kortiku are:

- Customizable LIP backgrounds
- Customizable user profiles
- Analytics dashboard
- Action buttons in LIP

## Stack

- PHP/ Lavarel → backend
- MySQL → storage
- Tailwind CSS → styling
- Laravel (Blade)/ TBD → frontend

Below is an example of how the tasks for this project will look like.

US name: **Homepage**
Created: Apr 20, 2021
Deadline: Apr 30, 2021
EPIC: USER_INTERFACE
Status: Backlog

User Story: 
> **As a** developer,
> **I want** to see the homepage of Kortiku.
> **So that** I can understand what the product is
> **And how** I can benefit from it

Using user stories, you can create tasks that are descriptive enough to get you going. Now, **I am no planning and productivity master**, this whole planning and sticking to plans part is a challenge on its own for me. To assist me in this endeavor, I will be using the [kanban](https://www.atlassian.com/agile/kanban) method and Notion as my tool to manage tasks and monitor the progress of the project.

I created a [gist](https://gist.github.com/theowlsden/06233f4c7d87d8b71718721d6e1774a4) with a template for the project description and task US. Feel free to use them for your own projects.

It's game on now!👨‍💻 Let's start getting these tasks from TODO to DONE!

<img src="https://media2.giphy.com/media/LPx0x9FgTP8B7z8ujg/giphy.gif?cid=ecf05e47yngtrz2emzhi59164aokvni4dsj7gy2ko12zc6lr&rid=giphy.gif&ct=g">