Skip to content

An online platform that enables teachers to teach their students how to code in a hands-on environment

Notifications You must be signed in to change notification settings

IgnisDa/codefarem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Codefarem

Codefarem aims to be an online platform that enables teachers to teach their students how to code in a hands-on environment.

How it works

Codefarem employs a microservices architecture. Here is a high level sequence diagram of how it works:

sequenceDiagram

    actor Client;
    participant Orchestrator;
    participant Compiler;
    participant Executor;
    Client ->> Orchestrator: req. to execute code
    note over Orchestrator: select compiler according to language
    Orchestrator ->> Compiler: request compilation
    note over Compiler: compile code
    Compiler ->> Orchestrator: return compiled code (or error)
    Orchestrator -->> Client: error if compilation failed
    Orchestrator ->> Executor: request execution
    note over Executor: execute compiled code
    Executor ->> Orchestrator: return execution result (or error)
    Orchestrator ->> Client: return execution result
    Orchestrator -->> Client: return execution error
Loading

Motivation

I started this project to teach myself the newest technologies of the web, and as such this project uses bleeding edge technologies to achieve its goals. Here is a non exhaustive list of the technologies used:

  • Edgedb: Database for backend
  • Hanko: Authentication provider
  • Remix: Framework used for the main website
  • Vite: Framework used for the admin website
  • Mantine: Frontend framework in admin website
  • Tinygo: Compiling Go to wasm
  • Rust Wasi: Compiling Rust to wasm
  • Zig: Compiling Zig, C and Cpp to wasm
  • Python-Wasi: Executing Python in a wasm environment
  • Wasmtime: Executing the compiled wasm output
  • Docker: Containerization of the microservices

About

An online platform that enables teachers to teach their students how to code in a hands-on environment

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages