Skip to content

Latest commit

 

History

History
55 lines (43 loc) · 1.54 KB

File metadata and controls

55 lines (43 loc) · 1.54 KB

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