Giter Site home page Giter Site logo

kunalpat25 / eduthon Goto Github PK

View Code? Open in Web Editor NEW

This project forked from narendraiiitl/eduthon

0.0 0.0 0.0 3.5 MB

Realtime Code Collaboration Platform made for educational aid during EDUTHON

Home Page: https://executeit.ml/

License: GNU General Public License v3.0

Dockerfile 0.73% JavaScript 82.22% HTML 1.16% CSS 2.68% Shell 13.17% Jupyter Notebook 0.05%

eduthon's Introduction

Eduthon

Realtime Code Collaboration Platform

HitCount

This Platform is Deployed at https://executeit.ml

Presentation Link: https://github.com/AVC0706/Eduthon/blob/master/assets/Tres-Comas.pdf

Youtube Video Link: https://youtu.be/xq-h6HmpOeE

We are planning to build an realtime code collaboration platform, which can be used as an educative aid while conducting online practical sessions.

alt text

alt text

alt text

What lead us to develop this platform ?

This pandemic has hit us hard, but with time everything is starting to come online so is the case with our colleges.

All lectures and CODING PRACTICALS are being conducted online, mostly through PPTs and screen sharing, while this way is OK'ish for theory lectures but it becomes really hard to coupe up with online PRACTICALS.

Some Caveats of the current way of online PRACTICAL sessions :

  • All the students do not have the same coding environment and some of them don't even have Linux installed.
  • If the student wants to share code or even if teacher wants to share a code, they need to send file which then needs to be run locally, hence consuming more time.
  • Debugging and doubt solving in a code is really cumbersome and teacher cannot help student in realtime.
  • Poor network connection is the biggest hurdle of all due to which quality of share may be bad and code may not be visible clearly.

What we propose ?

  • On our platform teacher will create a room, will share invite link.
  • After the room is created a linux container will be created and all users will be able to access that linux environment.
  • Students will join the room, which will put them and the teacher in the same coding environment.
  • Now they can create files and start coding in realtime using our online code editor, including syntax highlighting and all other features.
  • Each file can be modified by multiple users at the same time, and changes will be reflected to all the users. ( Google Doc like but with an IDE )
  • A dedicated terminal will be accessible to each user inside the same linux container.
  • Students and Teachers will be able to communicate with each other through text and voice chat.
  • As all communications will happen through websocktes, therefore consuming less bandwidth than current online video sessions.

alt text

Installation

This project uses docker. So ensure that you have Docker and Docker Compose installed on your system For installation instructions refer: https://docs.docker.com/install/ Also, make sure that you have port 80 and 3000 open on the host

Building all docker files

  1. cd to/user-imagedirectory and run docker build . -t user-image
  2. cd to /main-server and run docker-compose -f docker-compose.dev.yml build app

Creating a bridge network

  1. Before starting servers, create a bridge network docker network create -d bridge executeit

Start the Servers

  1. cd to /main-server and run docker-compose -f docker-compose.dev.yml up. This will start traefik, convergence, mongo-db, and main-server
  2. Traefik will serve as reverse proxy to all the container through http://localhost

Start the React Client

  1. cd to /main-client and run npm install
  2. Then start the server by npm start. Please make sure that the client is hosted on port 3000 only because the port is added on google cloud console.

Now navigate to http://localhost:3000 and start exploring our project

System Architecture

alt text

Contributors

eduthon's People

Contributors

pratikdaigavane avatar avc0706 avatar pnshiralkar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.