Artemis: Interactive Learning with Individual Feedback
Main features
Artemis supports the following exercises:
Programming exercises with version control and automatic assessment with test cases and continuous integration
Quiz exercises with multiple choice, drag and drop and short answer quiz questions
Modeling exercises with semi-automatic assessment using machine learning concepts
Textual exercises with manual (and experimental semi-automatic) assessment
File upload exercises with manual assessment
All these exercises are supposed to be run either live in the lecture with instant feedback or as homework. Students can submit their solutions multiple times within the due date and use the (semi-)automatically provided feedback to improve their solution.
User Guide
Contributor Guide
- Setup Guide
- MySQL Setup
- Server Setup
- Bamboo, Bitbucket and Jira
- Jenkins and Gitlab
- Common setup problems
- Multiple instances
- Adjustments for programming exercises
- Caching example for Maven
- Kubernetes
- Run the server via a service configuration
- Run the server via a run configuration in IntelliJ
- Run the server with Spring Boot and Spring profiles
- Run the server with the command line (Gradle wrapper)
- Configure Text Assessment Analytics Service:
- Client Setup
- Customize your Artemis instance
- Alternative: Using docker-compose
- Athene Service
- Apollon Service
- Coding and design guidelines
- Server
- 0. Folder structure
- 1. Naming convention
- 2. Single responsibility principle
- 3. Small methods
- 4. Duplication
- 5. Variables and methods declaration
- 6. Structure your code correctly
- 7. Database
- 8. Comments
- 9. Utility
- 10. Auto configuration
- 11. Keep your
@RestController
’s clean and focused - 12. Dependency injection
- 13. Keep it simple and stupid
- 14. File handling
- 15. General best practices
- 16. Avoid service dependencies
- 17. Proper annotation of SQL query parameters
- 18. SQL statement formatting
- 19. Avoid the usage of Sub-queries
- 20. REST endpoint best practices for authorization
- 21. Assert using the most specific overload method
- 22. General Testing Tips
- 23. Avoid using @MockBean
- Client
- Client Tests
- Database Relationships
- Development Process (How to Merge Changes)
- Inclusive, Diversity-Sensitive, and Appreciative Language
- Server
- System Design
- Using local user management
- Shibboleth/SAML2 Login & Registration
- Guided Tour
- Test Servers
- Builds and Dependency Management