Giter VIP home page Giter VIP logo

aalto-letech / aplus-courses Goto Github PK

View Code? Open in Web Editor NEW
15.0 7.0 7.0 47.92 MB

A+ Courses is a plugin for IntelliJ IDEA, used in programming courses at Aalto University

Home Page: https://plugins.jetbrains.com/plugin/13634-a-courses

License: MIT License

Java 95.86% Shell 0.17% Scala 2.57% Python 1.40%
intellij plugin aalto-university teaching-tools intellij-plugin a-plus-courses-intellij-plugin aalto jetbrains-plugin

aplus-courses's Introduction

A+ Courses is a plugin for IntelliJ IDEA, used in programming courses at Aalto University

Build Known Vulnerabilities Coverage

Plugin Downloads Plugin Version


Screenshot

This repository hosts the source code for the A+ Courses IntelliJ IDEA plugin communicating with the A+ LMS. It allows users to download code modules, submit assignments, and use the Scala REPL more conveniently among other learning experience improvements. The plugin is currently used in introductory programming courses taught at Aalto University (Programming 1 and Programming Studio 2/A).

The project is developed under the Aalto LeTech research group and is steered by Juha Sorva and Otto Seppälä.

Features and Further Development

Most of the available features are described in the testing manual, which is also used internally for testing. There's also a basic video presentation of the A+ Courses plugins functionality stored here.

The roadmap and plans for the future development of the plugin are in the project wiki. The list of requirements is in no way final and we welcome all input and ideas on how to make this plugin better.

Maintenance

If you are a student in a course and you have discovered an issue you'd like to report, please turn to the teaching assistants. You can also create an issue directly here: Aalto-LeTech/aplus-courses/issues.

Once the bug report is made, the development team (@jaakkonakaza, @OlliKiljunen, @Taikelenn) will handle it on a best-effort basis:

  1. The issue will be confirmed and prioritized within two working days.
  2. An estimation of when the issue could be fixed is made within three working days.
  3. Once the issue is fixed, it will take at most two working days until the fix is publicly available in the JetBrains plugin repository, and, eventually, your IDE.

Medium- to high-priority issues are usually solved within one working-week.

List of courses is available at https://version.aalto.fi/gitlab/aplus-courses/course-config-urls.

Research

Academic research related to or created based on the A+ Courses plugin.

'Creating an educational plugin to support online programming learning A case of IntelliJ IDEA plugin for A+ Learning Management System' Master's thesis by Nikolai Denissov 'Plug-in Interoperation in Extendable Platforms' Master's thesis by Olli Kiljunen

Code Style

This project uses slightly modified google checkstyle rules from Checkstyle GitHub for code formatting. The particular version applied to this project is in the checkstyle directory. Please note that the checkstyle file itself is licensed under the GNU LGPL license (also in the directory). Scala code is checked using the default rules from the scalastyle repository. The configuration file is located in the scalastyle directory and it is licensed under the Apache-2.0 license.

Code of Conduct

The team follows general principles of Aalto University's code of conduct.

Credits

We would like to acknowledge Nikolas Drosdek, @superseacat, Styliani Tsovou, @valtonv2, @xiaoxiaobt, Ida Iskala, and @StanislavFranko for their help in testing and improving this project.

A+ Courses

aplus-courses's People

Contributors

dependabot[bot] avatar jaakkonakaza avatar jsorva avatar nikke234 avatar ollikiljunen avatar stanislavfranko avatar stellatsv avatar superseacat avatar taikelenn avatar tulikavijay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

aplus-courses's Issues

licensing matters (MIT vs. Copyright)

do we add copyrights to our code (classes etc.) and how about using 3-party code (like google stylesheet case (GPL))?

investigate a bit, ask to ask lawyers if feasible (I'd do that anyway)

design course config file format

should contain info such as year and a list of downloadable modules (URLs)

  • design the course conf file format (inspiration from EDUTools)
  • versioning the format
  • take the required plugins into account

code style checker

Find suitable linter and configure it.
If possible, add GitHub plugin that enforces lint rules (e.g. prevent PR merge if case of lint errors)

configure the environment

  • license compatibility checker (fossa)
  • dependencies vulnerabilities scanner (snyk)
  • add "nikke234"
  • code quality checker (codacy)

Plugin easy to download and install into a (separately installed) IntelliJ

  • [configuration of proper naming, contacts, logo, etc.](configuration of proper naming, contacts, logo, etc.)
  • uploading to plugins repository
  • designing the layouts (menu/right-side menu)
  • logging in?
  • making hints on missing plugins (org.intellij.scala and possibly others) figure out if you can install other 3-party plugins as well? - check only once we are aware that the course is O1
  • ensure no-restart mode
  • plugin is easily removable and leaves no unwanted artifacts (proper cleanup)

making hints on missing plugins

(org.intellij.scala and possibly others) figure out if you can install other 3-party plugins as well? - check only once we are aware that the course is O1

implement REPL thingy (ii)

scala plugin deps = ooptional

  • The plugin runs the REPL in whichever module is currently open for editing or otherwise selected within IntelliJ.

decide and configure testing environments

arrange the physical machines, if feasible. alternatively, we could have a mixed environment, with linux (and possible windows) containerized and Mac as a physical machine (ask Otto for that)

deleting modules

one step is to delete as "not show" and another one is "reset"

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.