Skip to content

EerikSaksi/a-plus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8c9fcd9 · Jan 31, 2022
Oct 29, 2021
Dec 9, 2021
Jan 17, 2022
Aug 20, 2021
Jan 31, 2022
May 26, 2021
Jan 17, 2022
Jan 17, 2022
Jan 31, 2022
Oct 19, 2021
Jan 14, 2022
Jan 14, 2022
Jan 31, 2022
Dec 9, 2021
Aug 12, 2019
Jan 14, 2022
Jan 17, 2022
Aug 20, 2021
Aug 20, 2021
Apr 30, 2021
Dec 23, 2021
Jul 1, 2021
Dec 17, 2021
Aug 20, 2021
Dec 13, 2021
Jul 30, 2020
Aug 4, 2020
Jul 30, 2020
Sep 29, 2014
Aug 13, 2020
Jun 20, 2016
Jul 30, 2020
Jul 30, 2020
Dec 10, 2021
Jan 17, 2022
Oct 13, 2021
Oct 25, 2021

Repository files navigation

A+ Build status

"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 2.2 and Python 3.5+ 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.

About

A+ frontend portal - A+ LMS documentation:

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 70.3%
  • JavaScript 15.2%
  • HTML 12.3%
  • SCSS 1.8%
  • Other 0.4%