Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Development: Restructure server code completely into modules #9307

Merged
merged 45 commits into from
Sep 12, 2024

Conversation

krusche
Copy link
Member

@krusche krusche commented Sep 11, 2024

BREAKING

HUGE REFACTORING

This PR completely restructures the server code:

  1. Change the package path from de.tum.in.www1.artemis to de.tum.cit.aet.artemis
  2. Create module folders to group logical functionality and move files into these modules in the following sub folders
    • config
    • domain
    • dto
    • exception
    • repository
    • service
    • web

Artemis will initially contain the following modules (for now only folders)

  1. core (user management, admin, security, config, courses, organization, all remaining features not integrated in another module)
  2. assessment (results, grading, scores)
  3. athena (connector to the python service Athena to produce automatic feedback)
  4. atlas (learning analytics, competencies, learning paths, metrics)
  5. buildagent (for programming exercises)
  6. communication (conversation, messaging, notifications, emails)
  7. exam (exam mode)
  8. exercise (basic exercise infrastructure, team exercises, participations, submissions)
  9. fileupload (file upload exercises)
  10. iris (connector to the pyris service and Iris LLM Chatbot functionality)
  11. lecture (lectures, attachment, learning units)
  12. lti (connector for external LMS)
  13. modeling (modeling exercises, apollon integration, compass)
  14. plagiarism (everything related to plagiarism, JPlag integration)
  15. programming (everything related to programming exercises, connectors to Gitlab (deprecated), Jenkins, etc.)
  16. quiz (everything related to quiz exercises)
  17. text (everything related to text exercises)
  18. tutorialgroup (everything related to tutorial groups)

Please notice, that this PR is a starting point. Not all files are perfectly sorted into their respective folder (module) yet, however as this is a breaking refactoring that will definitely lead to merge conflicts with all other open branches / PRs, we wanted to finish a good first version. We kindly ask all developers for understanding, this refactoring was necessary and will significantly simplify development in the future.

No actual code was changed, except to fix compile errors or testing issues (e.g. changed visibility, removal of unused code).

This PR will only be tested quickly because with so many changes, it does not make sense to conduct a code review nor can we keep it open for a long time. In case issues are found, please report them and we will fix them in smaller follow-up PRs. However, as we only moved files into different folders, nothing should be broken.

We apologize for inconveniences while resolving merge conflicts!

In a follow-up, we plan to move the server tests into the same folder structure in the test folder.

Checklist

Testserver States

Note

These badges show the state of the test servers.
Green = Currently available, Red = Currently locked
Click on the badges to get to the test servers.







@krusche krusche added server Pull requests that update Java code. (Added Automatically!) chore priority:critical refactoring labels Sep 11, 2024
@krusche krusche added this to the 7.5.3 milestone Sep 11, 2024
@krusche krusche changed the title Development: Restructure server code Development: Restructure server code completely into modules Sep 11, 2024
ole-ve
ole-ve previously approved these changes Sep 12, 2024
@krusche krusche merged commit 29df59d into develop Sep 12, 2024
15 of 21 checks passed
@krusche krusche deleted the chore/restructure-server branch September 12, 2024 09:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chore client Pull requests that update TypeScript code. (Added Automatically!) config-change Pull requests that change the config in a way that they require a deployment via Ansible. documentation priority:critical refactoring server Pull requests that update Java code. (Added Automatically!) tests
Projects
Status: Merged
Development

Successfully merging this pull request may close these issues.

3 participants