Giter Club home page Giter Club logo

a-plus's Introduction

A+

"We present a design and open source implementation for a service oriented e-learning system, which utilizes external services for supporting a wide range of learning content and also offers a REST API for external clients to fetch information stored in the system."

Karavirta, V. & Ihantola, P. & Koskinen, T. (2013) Service-Oriented Approach to Improve Interoperability of E-Learning Systems http://dx.doi.org/10.1109/ICALT.2013.105

The system has since been developed by various contributors at Aalto University, Finland.

Requirements

A+ is a Django 3.2 and Python 3.8+ application which has been run in production using Postgresql database, Apache 2 (or Nginx) and uwsgi. See doc/DEPLOYMENT.md for further deployment instructions. Consider using virtualenv and pip3 install -r requirements.txt. Create local_settings.py and override necessary Django settings from aplus/settings.py. At least DEBUG, SECRET_KEY and DATABASES must be set in case of deployment. The server process needs write access to the media directory.

Development

See doc/README.md on how to create and run a test environment for development. The doc/GRADERS.md describes the assessment protocol supported by A+. Additionally, there is a minimal example grader in doc/example_grader.py, which can be used to start a new service. A list of existing assessment services and other tools can be found in the project github page.

The selenium_test/ offers an integration test suite using the Selenium Firefox driver.

Code Organization

  • aplus/ : Django main settings
  • userprofile/ : User information and authentication
  • shibboleth_login/ : User authentication via external Shibboleth login. Requires Shibboleth configuration for the Apache/Nginx web server.
  • course/ : The course instances, modules and chapters
  • exercise/ : Exercises and submissions to them
  • deviations/ : Student deviations to submission rules (deadline extensions and extra submission attempts)
  • notification/ : User messaging framework
  • edit_course/ : The course editing for teachers
  • inheritance/ : Utilities for model class hierarchy
  • external_services/ : Linking to external services, optionally LTI authenticated
  • apps/ : Provides plugins that can integrate additional content to course instances
  • api/ : An HTTP REST service API for accessing A+ data
  • redirect_old_urls/ : Redirections from the most important old URL targets
  • lib/ : General library code
  • templates/ : General site templates
  • assets/ : Static web server assets, e.g., JavaScript, styles and images
  • assets_src/ : Asset packages (as npm packages), which should populate assets/ with compiled files.

a-plus's People

Contributors

teemulehtinen avatar markkuriekkinen avatar raphendyr avatar atsnisov avatar skulonen avatar ihantola avatar lassihaaranen avatar lainets avatar pasisa avatar ttsirkia avatar jrp6 avatar jaguarfi avatar x455u avatar vkaravir avatar ihalaij1 avatar saarasat avatar etanttila avatar mrberg avatar osccu avatar alalav1 avatar madaian avatar eeriksaksi avatar gehock avatar henriksundell avatar joni-toivonen avatar sayravai avatar piehei avatar jparta avatar murhum1 avatar splyysh 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.