Problem

▪ Difficult for me and my partner to code our coding assignments at the same time using our own computers

▪ Our code would behave differently due to the difference in environments

Solution

▪ Develop an online IDE where we can work on the same code through our browser

▪ Be able to edit any files but still be able to see both of our edits live

▪ Host the code on a server so when we run our code we are only using one environment

Demo

Learnings

▪ How to create live editable documents

▪ How to work with WebSockets

▪ How to develop a software from start to finish

▪ How to user test

▪ How to work with Docker and Nginx

Technicals

▪ Used Flask web servers with SocketIO for WebSocket support

▪ Everything is containerized using Docker including Flask web servers, Nginx (with Lets encrypte's SSL certificates), and MongoDB

▪ We pulled repositories using Github, Gitlab, and Bitbucket's Auth tokens

  ▪ We had a Flask server for our main codeopolis website in charge of interacting with Docker and APIs

▪ In order to protect the data in my MongoDB container from any code a client could write, I created two different networks on Docker: a frontend network and a backend network

  ▪ Frontend network: Nginx, all Flask Server containers used to host customer code

  ▪ Backend network: My main Flask Server contianer and Mongo database

▪ How to user test

▪ How to work with Docker and Nginx

Future Plan

▪ We found that Repl has had a great devlopment run and is a very similar idea

▪ So we scrapped this project and moved on to new projects

Last updated: 06/14/2020