Quest to first version
When I started this project I wanted to learn more about docker but I have always also wanted to make my own IDE. One of the big challenge when doing an IDE is to get it as fast as possible so it feels as fluid as possible when you work. There are already a lot of good IDE so to see the small progress I make in my own I started to code via an SSH terminal to my server with a basic editor so I would go to my own IDE as soon as I get it to work. That was the thought at least and it have worked well. I just tried to get the basic finished so I could move away from the terminal.
I have looked at NodeJS for a long time and wanted to give that a shot for a bigger project. I was looking for a framework that helped me and I choose AdonisJS. For me it help with all the things I needed. The problem with this framework is that it is more or less only one person that is working with it so it can be ended without anyone continue. The documentation is ok and works for me and the framework help me with the part I have problem with and need. I have a simple SQL as DB and I wanted to work with Sockets also so I use that also. The frontend I wanted to learn with less frameworks and with plain javascript so that is what I have focused on.
The first I focused on was to get the login to work so I can have different users. Then I focused on the docker to be able to run the code in a separate container per user. After that I need to be able to fork code from git so that was the next thing. I also needed to be able to handle multiple projects per user so that was the next thing. I needed to get the frontend to work with the backend. So I needed to balance the two. In the beginning I focused more on the backend.
The very first “working” site I hade a tree view that could download the file and then I used a textarea to display and change code. The command to docker I used a text field and a textarea that was read only to display information from docker. This isn’t very effective but it was better then what I had before. So for me it was a step up. Then it was just see what I had most problem with and fix that part. I have change my textarea with code to codemirror to display the code. The docker is now using xtermjs. This is where I stand at the moment and I just want to fix some small parts and I think a first working version is done. After that it will be adding and refactoring in small chunks to get a better IDE step by step.
I hope you find this informative.