Skip to content

AkM-2018/colab-code-editor

Repository files navigation

colab-code-editor

Collaborative code editor for Cloud Computing and Big Data course

Single User Flow

Single user flow

  • User logs in
  • User creates a project
  • The new project creates a web-socket connection
  • The new code is saved to DynamoDB (every 5 secs) and periodically to S3

Multiple User Flow

Multiple user flow

  • User logs in
  • User invites another user to the project
  • New user recieves an email and accepts it
  • Now the user is a collaborator for the project
  • The new user is added to the web-socket room and the changes from both users are synced
  • The new code is saved to DynamoDB (every 5 secs) and periodically to S3

Code execution

Code execution

  • User logs in
  • User runs the code (async, gets response immediately. loading icon on FE)
  • Docker container with the required base image is created on EC2 instance
  • Code executed inside the container and the result is saved to DB
  • DB is polled from the frontend

Tables

Tables

Dividing tasks

Pain points

  • Frontend
    • code editor
    • history and diff
    • invite users
    • login
    • code execution
  • Code collaboration
    • working poc
  • Code execution
    • take a python file as an input (for now only py)
    • run the file in a EC2 container
    • store the output in a dynanoDB table
  • Versioning and history

Other tasks

  • Auth (later on)
  • APIs for creating project, user, invite user etc

About

Collaborative code editor for Cloud Computing and Big Data course

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •