Edrys is an open-source app that helps you teach remotely.

Overview

Edrys is an open-source app that helps you teach remotely.

Features

  • Live Classrooms: Click on a student to talk to them, or create rooms and drag students in & out
  • Remote Labs: Allow students to interact with your real lab equipment remotely & asynchronously
  • Modular: Build your class by combining Modules or make your own with an easy real-time API
  • Easy to start: Download and run to start, no databases or any other dependencies to set up
  • Privacy-friendly: Passwordless auth with minimal student PII stored
  • Fast & Modern: Based on Deno and Vue with a deliberately small codebase
  • Free and Open Source, forever: No paywalled features or lock-in

📸 Screenshots

  • Classes dashboard: Select what class to enter or create as many as needed
  • Teacher class dashboard: Teachers get an overview of all rooms and can move students around to chat
  • Student class view: Students see their current room and are able to interact with others in the room
  • Class settings: Teachers can manage memberships, modules, and more to customize their class

💡 Use cases

  • Live online teaching: One to one, one to many, and many to many live classrooms
  • Remote Labs: Allow students to access and control live equipment remotely (eg. remote Arduino fleet)
  • Flipped classrooms and blended learning: Create modules to deliver virtually any content asynchronously
  • Group coursework: Dynamic breakout rooms and easy jumping between rooms
  • Automated Grading: Use Stations to securely auto-grade student submissions into your LMS

With modular architecture anything is possible. A whiteboard, a discussion forum, polls, or even remote Arduino programming, are all easily encapsulated into shareable modules (explore Edrys modules on GitHub).

💻 Getting Started

To start a local Edrys server:

  1. Download Deno (minimum v1.20.1)
  2. Clone our repo git clone [email protected]:edrys-org/edrys.git
  3. Run the server deno run -A dist/app.js --address localhost:8000 --serve-path dist/static

Next,

  • 🎉 Visit localhost:8000 and log in, the email verification code will be logged in the server console
  • 📖 Please visit our documentation to continue setting up your server and adding Modules
  • 💬 For questions and discussions, please visit our Gitter community
  • 📰 For updates and showcases, join our newsletter
  • 🐞 For bug reports and feature requests, visit the issues tab

🏦 Support & Partnerships

Edrys.org provides support and priority development as a service. For partnerships, donations, support, or just to chat please contact [email protected].

Sponsors, partners, and known adopters:

Edrys               

Comments
  • server/auth: increase mail token timeout to 5 minutes

    server/auth: increase mail token timeout to 5 minutes

    currently Edrys requires a mail to be send, delivered and read within 30 seconds (and 1 to 30 seconds of the generation period) this increases that period to 5 minutes (and the 1 to 30 seconds of the current)

    30 seconds are a bit optimistic

    opened by kfessel 1
  • fix: Docker localhost will not be exposed

    fix: Docker localhost will not be exposed

    The server might start, but somehow docker will not recognize localhost and thus the port will not be exposed. 0.0.0.0 has to be used instead of localhost.

    opened by andre-dietrich 1
  • doc: Adds information about deployment to Heroku

    doc: Adds information about deployment to Heroku

    Just added some notes about the steps, which are required to deploy edrys to heroko ...

    SMTP settings are not included ...

    Maybe the sub-folder of docs can be used to provide detailed descriptions for different platforms.

    opened by andre-dietrich 1
  • Main fix: email authentification

    Main fix: email authentification

    SMTP-client will not provide a connection for more than a few minutes. After a certain period it disconnects and a new send request will result in a crash of the system.

    opened by andre-dietrich 0
  • client does not build with node 17 or newer

    client does not build with node 17 or newer

    node:internal/crypto/hash:67
      this[kHandle] = new _Hash(algorithm, xofLen);
                      ^
    
    Error: error:0308010C:digital envelope routines::unsupported
        at new Hash (node:internal/crypto/hash:67:19)
        at Object.createHash (node:crypto:135:10)
        at module.exports (/app/node_modules/webpack/lib/util/createHash.js:135:53)
        at NormalModule._initBuildHash (/app/node_modules/webpack/lib/NormalModule.js:417:16)
        at handleParseError (/app/node_modules/webpack/lib/NormalModule.js:471:10)
        at /app/node_modules/webpack/lib/NormalModule.js:503:5
        at /app/node_modules/webpack/lib/NormalModule.js:358:12
        at /app/node_modules/webpack/node_modules/loader-runner/lib/LoaderRunner.js:373:3
        at iterateNormalLoaders (/app/node_modules/webpack/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
        at Array.<anonymous> (/app/node_modules/webpack/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
        at Storage.finished (/app/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
        at /app/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
        at /app/node_modules/graceful-fs/graceful-fs.js:123:16
        at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {
      opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
      library: 'digital envelope routines',
      reason: 'unsupported',
      code: 'ERR_OSSL_EVP_UNSUPPORTED'
    }
    
    Node.js v17.9.1
    
    
    opened by kfessel 0
  • npm warns about deprectated packages and possible security issues in client

    npm warns about deprectated packages and possible security issues in client

    npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
    npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
    npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
    npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
    npm WARN deprecated [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
    npm WARN deprecated [email protected]: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility
    npm WARN deprecated [email protected]: flatten is deprecated in favor of utility frameworks such as lodash.
    npm WARN deprecated @types/[email protected]: This is a stub types definition. anymatch provides its own type definitions, so you do not need this installed.
    npm WARN deprecated @types/[email protected]: This is a stub types definition. browserslist provides its own type definitions, so you do not need this installed.
    npm WARN deprecated [email protected]: This SVGO version is no longer supported. Upgrade to v2.x.x.
    npm WARN deprecated [email protected]: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
    npm WARN deprecated [email protected]: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
    
    15 high severity vulnerabilities
    
    opened by kfessel 0
  • Updated docker an docker-compose

    Updated docker an docker-compose

    For simplicity I had updated the dockerfile, so that all content is loaded into the edrys folder instead of root. This allows also to define a volume within the docker-compose.yml such that content within /edrys/.edrys will be preserved ...

    opened by andre-dietrich 1
  • Yjs - connector/privider for edrys

    Yjs - connector/privider for edrys

    Maybe the edrys publish-subscibe module could be used as an connector/provider for Yjs? This way, it would be possible to make use of all collaborative projects (also for the monaco-editor) ...

    https://docs.yjs.dev/ecosystem/editor-bindings/monaco

    opened by andre-dietrich 0
Releases(v0.2.1-beta)
Owner
Edrys
The Open Remote Teaching Platform
Edrys
A remote nodejs Cache Server, for you to have your perfect MAP Cache Saved and useable remotely. Easy Server and Client Creations, fast, stores the Cache before stopping and restores it again!

remote-map-cache A remote nodejs Cache Server, for you to have your perfect MAP Cache Saved and useable remotely. Easy Server and Client Creations, fa

Tomato6966 8 Oct 31, 2022
null 8 Nov 11, 2022
Web based application that uses playerctl in it backend to control remotely your audio using the frontend as remote control.

Linux Remote This is a web based application that uses playerctl in it backend to control remotely your audio using the frontend as remote control. Do

Gabriel Guerra 4 Jul 6, 2022
ZaDark is an open source extension that helps you enable Dark Mode for Zalo on PC and Browser.

ZaDark – Zalo Dark Mode Table of Contents About Install Roadmap Contributing License Contact Awards Acknowledgments About ZaDark is an open source ext

Nguyễn Chánh Đại 64 Dec 22, 2022
🧙 Mage is an open-source data management platform that helps you clean data and prepare it for training AI/ML models.

Intro Mage is an open-source data management platform that helps you clean data and prepare it for training AI/ML models. What does this do? The curre

Mage 2.5k Jan 4, 2023
Cindy Dorantes 12 Oct 18, 2022
Reference for How to Write an Open Source JavaScript Library - https://egghead.io/series/how-to-write-an-open-source-javascript-library

Reference for How to Write an Open Source JavaScript Library The purpose of this document is to serve as a reference for: How to Write an Open Source

Sarbbottam Bandyopadhyay 175 Dec 24, 2022
An Open-Source Platform to certify open-source projects.

OC-Frontend This includes the frontend for Open-Certs. ?? After seeing so many open-source projects being monetized ?? without giving any recognition

Open Certs 15 Oct 23, 2022
Shikhar 4 Oct 9, 2022
This is a project for open source enthusiast who want to contribute to open source in this hacktoberfest 2022. 💻 🎯🚀

HACKTOBERFEST-2022-GDSC-IET-LUCKNOW Beginner-Hacktoberfest Need Your first pr for hacktoberfest 2k22 ? come on in About Participate in Hacktoberfest b

null 8 Oct 29, 2022
Open-source CD platform that helps developers to deliver applications efficiently by simplifying software releases and operations in any environment.

dyrector.io - The open source internal delivery platform Overview dyrector.io is an open-source internal delivery platform that helps developers to de

dyrector.io 160 Jan 3, 2023
ToDo list app is a simple web app that helps you organize your day, by adding, checking and deleting daily tasks

TODO List App "To-do list" is a WebApp tool that helps to organize your day. It simply lists the tasks that you need to do and allows you to mark them

Adel Guitoun 8 Oct 18, 2022
Read without losing the plot. Well Read helps you organize your notes about books you're reading, so you're never lost when starting a new volume.

Well Read Well Read is a website for tracking your reading of long book series. I made this to track how many pages I read in a session and to better

null 3 Dec 15, 2022
To-do list" is an app that helps to organize your day. the user simply lists the things that needs to done and the app allows the to mark them as complete when they are done. Made with webpack, JavaScript ES6 , HTML 5 and CSS 3.

Todo-list project This is a Microverse project that entails a to-do-list. Built With HTML CSS Javascript Webpack VS code Live Demo (if available) Live

Youta Lactio Christabelle 10 Aug 3, 2022
This app helps manage a bookstore. It comes in handy when you need to manage a personal book store or library. Entirely built on es6.

Awesome Books A Microverse project on learnong javascript. Additional description about the project and its features. Built With HTML5 CSS3 Javascript

Atugonza ( Billions ) Joel 13 Apr 22, 2022
The app helps you to add todo items to your list, mark completed ones and also delete finished items. Its a handy tool for your day today activies. Check out the live demo.

Todo List App The app helps you to add todo items to your list, mark completed ones and also delete finished items. Its a handy tool for your day toda

Atugonza ( Billions ) Joel 14 Apr 22, 2022
Habitapp is a simple app that helps you build positive habits, measure progress and achieve your goals

habitapp Habitapp is a simple app that helps you build positive habits, measure progress and achieve your goals. ✨ Features Working without registrati

null 6 Sep 11, 2022