Skip to content

Course Authoring Administration - Elm-based admin functionality

Notifications You must be signed in to change notification settings

Simon-Initiative/authoring-admin

Repository files navigation

authoring-admin

Open Learning Initiative

Admin application for the course editor written in Elm.

"Project Achilles"

During a battle in the Trojan War in Homer's the Illiad, the river god Scamander, furious over the sight of so many corpses in his waters, overflows his banks in an attempt to drown the responsible party, the great warrior Achilles. As Achilles is being swept away under the wall of water, he reaches out for safety, grabbing onto the branch of a great elm tree.

We think this is an interesting metaphor for front-end development in JavaScript.

Related repositories

Getting started

  1. Install Elm 0.19 using the binary installer from elm-lang.org

  2. Clone this project.

git clone https://github.com/Simon-Initiative/achilles.git
  1. Install it's dependencies
npm install
  1. Install elm-format. This is a community Elm project that enforces the Elm coding standard on every file save.
npm install -g elm-format
  1. Install elm-live. This is a community Elm project that provides a hot-reloading server.
npm install --global elm elm-live@next
  1. Install an editor plugin.

  2. Update the Keycloak server to allow this new client.

    1. Log into the Keycloak admin console at dev.local/auth/
    2. Choose the Oli_security realm
    3. Create a new client called "admin_client".
      1. Set root URL and admin URL to be http://dev.local:7000
      2. Set the Valid Redirect URL and Web origins to be *
    4. Edit the web origins of the "account" client to be *
    5. Edit the 'manager' account (under 'users' tab) to add the 'realm-management' client role 'realm-admin'.
  3. Run the compiler and server.

npm run serve
  1. Open a browser and visit the application at http://dev.local:7000.

License

This software is licensed under the MIT License © 2019 Carnegie Mellon University