A space where developers can collaborate in real-time on code👨🏾💻👩🏾💻.
When users create an account on the application, they get access to a personal space, where they can see all their projects and edit them.
Users have access to a full-fledged code editor with syntax highlightning and autocompletion (for the languages supported by monaco editor)
- Several users can collaborate on a file together in real-time.
- Users can see on their respective editors a cursor showing where their collaborators are in the file.
- Users can invite other users to collaborate together on a project.
- Code execution
- Upload file
- File download
- Github integration
- Better support for programming languages
- Following feature during collaboration
- Create a new firebase project. Add a Firestore instance to this project.
- To install all the dependencies, run
npm installin the root folderonline-ide, theclientfolder and theserverfolder. - Create a
.envfile in theserverfolder. Fill it with the Json file containing your firebase project service accout key. The.envfile should be like so:
# Firebase project configuration
FIREBASE_ADMIN_SDK_SERVICE_ACCOUNT= __json containing the service account key__
# Password hashing configuration
HASH_CONFIG_ITERATION=100000
HASH_CONFIG_KEYLEN=128
HASH_CONFIG_DIGEST=sha512
HASH_CONFIG_SALT_LEN=64
- Use the function
genKeyPairin the fileonline-ide/server/src/utils/jwt.tsto generate the RSA keys used by the server to sign the jwt tokens. It should create a folder namedkeyscontaining the filesid_rsa_private.pemandid_rsa_pub.pemin theserverfolder - Run the entire application (both client and server) by executing the command
npm run devin the project root directoryonline-ide.