Building my own bug-tracker
Published: 2021-10-19 13:38:23

## The idea.

EDIT: Before you start reading, I'm taking an undefined break with this project but will return to it.

As a developer I always wanted to build my own tools, for the principle to understand how these tools works.

After a 5 minute brainstorming I decided to make my own BugTracker.

There is diverse solutions for bug tracking: GitHub issues, Bug Tracker. 
I don't like GitHub issues much, it's too simple and there is no predefined template, it's hard at the first glance to understand the importance of the issue without a proper template or system. 

Bug Tracker software are great but I couldn't find a simple one with a modern design except the one from Zoho. They are more enterprise focused software and also most of them are not open source. 

Here 2 list of most known bug tracker 
https://medevel.com/19-os-bug-and-issues-tracking-and-management-solutions
https://www.guru99.com/top-20-bug-tracking-tools.html

None of them we're what I wanted so I simply decided to make mine!

![catcoding2.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1633590261938/oITa14DW3.jpeg)

## Stack brainstorming

### Architecture.

Rails monolith.

### Client side.

I'm used to React but recently tried Vue and felt in love with.
I'm not familiar with Vue that much also I don't know Composition API yet nor VueX. Since I'm not familiar with Vue I decided to go for classic react with Webpack. I also decided to go with simple JS not TS. (Loving TS tho)

For styling I really like Tailwind but since I'm used to Bootstrap and MaterialUI I decided to stick with Material UI. MUI will be my pick. 

I decided to not use Jest or any TDD tools for the client since I wanna ship it as soon as possible. 

For front-end tooling webpack is by default with Rails which I'm not a huge fan especially since I discovered Vite which I'm in love with.

### Backend : 


![backendmemes.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1633594754642/zS5rfxNj_.jpeg) 'credit to @CodeDoesMeme on Twitter'

Well here things get complicated... 

I'd like to ship my backend asap and not adding to much complexity with DB request, long configuration setup, multiple stack, non native ORM etc
I like JAMStack but it seems to add some complexity and to be useful when you need to scale or are very comfortable with a stack. 
Adonis could do the job and seems to be very interesting but I never tried it, so I'm not gonna use any NodeJS framework. 

Other than JAMStack I like Flask and Ruby On Rails, both do a different job and are well known and solid techs. 

Both of them have a huge ecosystem but in my case it seems that Ruby On Rails will be the best choice.

It's well documented, Ruby's syntax is an eyes treat, MVC pattern which i'm used too, Active Records, Native ORM, Postgre which is to me one the best relational DB and fits my need for this project, gem ecosystem(package sys) is rock solid. 

### Deployment:

### Client side:  

Is a no brainer choice, Netlify <3. 


![awsmeme.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1633593901082/pzgqbMrWv.png) 'credit to u/donjuan26 from reddit'

### Backend:

**Heroku: **Pricey but very straightforward. Maybe

**VPS + Capistrano:** Great but require set up & administration of the server. No

**Single Server: **DigitalOcean/Linode 5$ droplet + Dokku is very easy to deploy and cheap. Scaling is a big ? tho. Maybe

**Kuberneters:** Great tool but overpowered for this project. No

**AWS Elastic Bean:** Cheap, very Good support & service but AWS pricing system is an unsolved mystery and will probably remain unsolved till human reach a 400 IQ. Good when you need to scale mostly.

I'm still divided between Heroku and DigitalOcean droplet + Dokku. I might push to prod with Heroku at first with the free tier then go for the Droplet. 


## Conclusion: 

Time to code, I will regularly post the process.
 
Feel free to @ me on Twitter with your opinion & feedback about my article; It's the first Constructive feedback is welcome.