Skip to content

Commit

Permalink
Development: Improve contributing guidelines
Browse files Browse the repository at this point in the history
  • Loading branch information
Stephan Krusche committed Aug 25, 2024
1 parent 1bb9880 commit 19c6b58
Show file tree
Hide file tree
Showing 2 changed files with 92 additions and 48 deletions.
41 changes: 39 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,43 @@
# Contributing Guide for Artemis
# Contribution Guidelines for Artemis

Read the [setup guide](https://docs.artemis.cit.tum.de/dev/setup.html) on how to set up your local development environment.

Before creating a pull request, please read the [guidelines to the development process](https://docs.artemis.cit.tum.de/dev/development-process/development-process.html) as well as the [coding and design guidelines](https://docs.artemis.cit.tum.de/dev/guidelines.html).
## Identity and Transparency

To ensure a transparent and trustworthy environment, we have established different guidelines for members of our organization and external contributors.

### For Members of Our Organization

1. **Real Names Required**: As a member of our organization, you must use your full real name in your GitHub profile. This is a prerequisite for joining our organization. Using a real name is crucial for building trust within the team and the broader community. It fosters accountability and transparency, which are essential for collaborative work. When members use their real identities, it encourages open communication and strengthens professional relationships. Furthermore, it aligns with best practices in open-source communities, where transparency is key to ensuring the integrity and reliability of contributions.

2. **Profile Picture**: Members are required to upload an authentic profile picture. Use a clear, professional image and avoid comic-like pictures, memojis, or other non-authentic picture styles. Using a professional and authentic profile picture is essential for establishing credibility and fostering trust within the community. It helps others easily identify and connect with you, which is crucial for effective collaboration. By using a real photo, you present yourself as a serious and committed contributor, which in turn encourages others to take your work and interactions seriously. Avoiding non-authentic images ensures that the focus remains on the substance of your contributions rather than on distractions or misunderstandings that might arise from informal or unprofessional visuals.

3. **Direct Branching and PR Creation**: As a member, you are encourages to create branches and pull requests (PRs) directly within the repository. Please follow the internal branching and code review processes outlined in [guidelines to the development process](https://docs.artemis.cit.tum.de/dev/development-process/development-process.html) and [coding and design guidelines](https://docs.artemis.cit.tum.de/dev/guidelines.html).

### For External Contributors

1. **Identity Verification**: External contributions will only be considered if the contributor uses their real name and an authentic profile picture (see above). This ensures accountability and trustworthiness in all external contributions.

2. **Forking the Repository**: External contributors fork the repository and work on changes in their own branches.

3. **Submit a Pull Request**: Once your work is complete, submit a pull request for review. Ensure that your branch is up to date with the main branch before submitting.

4. **Compliance**: Contributions from external contributors that do not adhere to these guidelines may not be accepted.

### References and Best Practices

- We align our guidelines with the [GitHub Acceptable Use Policies](https://docs.github.com/en/site-policy/acceptable-use-policies) which stress the importance of authenticity and transparency in user profiles.
- For more insights on contributing to open-source projects, we recommend reviewing the [Open Source Guides by GitHub](https://opensource.guide/).

By following these guidelines, we foster a collaborative environment built on mutual trust and respect, essential for the success of our project.

## Contribution Process

1. **External contributors only**: Fork the Repository and create a branch.
2. **Create a feature branch**: Work on your changes in a separate branch.
3. **Submit a pull request**: Once your work is complete, submit a pull request for review.

Thank you for your contributions and for helping us maintain a high standard of quality and trust in this project.



99 changes: 53 additions & 46 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,29 +53,76 @@ Artemis brings interactive learning to life with instant, individual feedback on

## Roadmap

The Artemis development team prioritizes the following issues in the future. We welcome feature requests from students, tutors, instructors, and administrators. We are happy to discuss any suggestions for improvements.
The Artemis development team prioritizes the following areas in the future. We welcome feature requests from students, tutors, instructors, and administrators. We are happy to discuss any suggestions for improvements.

* **Short term**: Further improve the communication features with mobile apps for iOS and Android
* **Short term**: Improve the REST API of the server application
* **Short term**: Add the possibility to use Iris for questions on all exercise types and lectures (partly done)
* **Short term**: Provide GenAI based automatic feedback to modeling, text and programming exercise with Athena
* **Short term**: Improve the LTI integration with Moodle
* **Medium term**: Improve the REST API of the server application
* **Medium term**: Integrate an online IDE (e.g. Eclipse Theia) into Artemis for enhanced user experience
* **Medium term**: Add more learning analytics features while preserving data privacy
* **Medium term**: Improve the user experience, usability and navigation
* **Medium term**: Add automatic generation of hints for programming exercises
* **Medium term**: Add GenAI support for reviewing exercises for instructors
* **Medium term**: Add GenAI support for learning analytics
* **Medium term**: Add the possibility to use Iris for questions on all exercise types and lectures
* **Medium term**: Add GenAI support for learning analytics (partly done)
* **Long term**: Explore the possibilities of microservices, Kubernetes based deployment, and micro frontends
* **Long term**: Integrated on online IDE (e.g. Eclipse Theia) into Artemis for enhanced user experience
* **Long term**: Allow students to take notes on lecture slides and support the automatic updates of lecture slides
* **Long term**: Develop an exchange platform for exercises

## Setup, guides, and contributing
## Contributing to This Project

We welcome contributions from both members of our organization and external contributors. To maintain transparency and trust:

- **Members**: Must use their full real names and upload a professional and authentic profile picture. Members can directly create branches and PRs in the repository.
- **External Contributors**: Must adhere to our identity guidelines, using real names and authentic profile pictures. Contributions will only be considered if these guidelines are followed.

We adhere to best practices as recommended by [GitHub's Open Source Guides](https://opensource.guide/) and their [Acceptable Use Policies](https://docs.github.com/en/site-policy/acceptable-use-policies). Thank you for helping us create a respectful and professional environment for everyone involved.

We follow a pull request contribution model. For detailed guidelines, please refer to our [CONTRIBUTING.md](./CONTRIBUTING.md). Once your pull request is ready to merge, notify the responsible feature maintainer on Slack:

#### Maintainers

The following members of the project management team are responsible for specific feature areas in Artemis. Contact them if you have questions or if you want to develop new features in this area.

| Feature / Aspect | Responsible maintainer |
|--------------------------------|------------------------------------------------------------------------------------|
| Programming exercises | Stephan Krusche ([@krusche](https://github.com/krusche)) |
| Integrated code lifecycle | Stephan Krusche ([@krusche](https://github.com/krusche)) |
| Quiz exercises | Felix Dietrich ([@FelixTJDietrich](https://github.com/FelixTJDietrich)) |
| Modeling exercises (+ Apollon) | Stephan Krusche ([@krusche](https://github.com/krusche)) |
| Text exercises | Maximilian Sölch ([@maximiliansoelch](https://github.com/maximiliansoelch)) |
| File upload exercises | Maximilian Sölch ([@maximiliansoelch](https://github.com/maximiliansoelch)) |
| Exam mode | Stephan Krusche ([@krusche](https://github.com/krusche)) |
| Grading | Maximilian Sölch ([@maximiliansoelch](https://github.com/maximiliansoelch)) |
| Assessment | Maximilian Sölch ([@maximiliansoelch](https://github.com/maximiliansoelch)) |
| Communication | Ramona Beinstingel ([@rabeatwork](https://github.com/rabeatwork)) |
| Notifications | Ramona Beinstingel ([@rabeatwork](https://github.com/rabeatwork)) |
| Team Exercises | Stephan Krusche ([@krusche](https://github.com/krusche)) |
| Lectures | Maximilian Anzinger ([@maximiliananzinger](https://github.com/maximiliananzinger)) |
| Integrated Markdown Editor | Patrick Bassner ([@bassner](https://github.com/bassner)) |
| Plagiarism checks | Markus Paulsen ([@MarkusPaulsen](https://github.com/MarkusPaulsen)) |
| Learning analytics | Maximilian Anzinger ([@maximiliananzinger](https://github.com/maximiliananzinger)) |
| Adaptive learning | Maximilian Anzinger ([@maximiliananzinger](https://github.com/maximiliananzinger)) |
| Learning paths | Maximilian Anzinger ([@maximiliananzinger](https://github.com/maximiliananzinger)) |
| Tutorial Groups | Felix Dietrich ([@FelixTJDietrich](https://github.com/FelixTJDietrich)) |
| Iris | Patrick Bassner ([@bassner](https://github.com/bassner)) |
| Scalability | Matthias Linhuber ([@mtze](https://github.com/mtze)) |
| Usability | Ramona Beinstingel ([@rabeatwork](https://github.com/rabeatwork)) |
| Performance | Ramona Beinstingel ([@rabeatwork](https://github.com/rabeatwork)) |
| Infrastructure | Matthias Linhuber ([@mtze](https://github.com/mtze)) |
| Development process | Felix Dietrich ([@FelixTJDietrich](https://github.com/FelixTJDietrich)) |
| Mobile apps (iOS + Android) | Maximilian Sölch ([@maximiliansoelch](https://github.com/maximiliansoelch)) |

## Setup and guidelines

### Development setup, coding, and design guidelines

* [How to set up your local development environment](https://docs.artemis.cit.tum.de/dev/setup/)
* [Server coding and design guidelines](https://docs.artemis.cit.tum.de/dev/guidelines/server/)
* [Client coding and design guidelines](https://docs.artemis.cit.tum.de/dev/guidelines/client/)
* [Code Review Guidelines](https://docs.artemis.cit.tum.de/dev/development-process/#review)
* [Performance Guidelines](https://docs.artemis.cit.tum.de/dev/guidelines/performance/)

### Documentation

Expand All @@ -96,46 +143,6 @@ Artemis uses these external tools for user management and the configuration of p

If needed, you can configure self service [user registration](https://docs.artemis.cit.tum.de/admin/registration).

### Contributing

Please read the guide on [how to contribute](CONTRIBUTING.md) to Artemis.

Once your PR is ready to merge, notify the responsible feature maintainer on Slack:

#### Maintainers

The following members of the project management team are responsible for specific feature areas in Artemis. Contact them if you have questions or if you want to develop new features in this area.

| Feature / Aspect | Maintainer |
|--------------------------------|-----------------------------------------------------------------------------------------------------|
| Programming exercises | [@krusche](https://github.com/krusche) |
| Integrated code lifecycle | [@krusche](https://github.com/krusche) |
| Quiz exercises | [@FelixTJDietrich](https://github.com/FelixTJDietrich) |
| Modeling exercises (+ Apollon) | [@krusche](https://github.com/krusche) |
| Text exercises | [@maximiliansoelch](https://github.com/maximiliansoelch) |
| File upload exercises | [@maximiliansoelch](https://github.com/maximiliansoelch) |
| Exam mode | [@krusche](https://github.com/krusche) |
| Grading | [@maximiliansoelch](https://github.com/maximiliansoelch) |
| Assessment | [@maximiliansoelch](https://github.com/maximiliansoelch) |
| Communication | [@rabeatwork](https://github.com/rabeatwork) |
| Notifications | [@rabeatwork](https://github.com/rabeatwork) |
| Team Exercises | [@krusche](https://github.com/krusche) |
| Lectures | [@maximiliananzinger](https://github.com/maximiliananzinger) |
| Integrated Markdown Editor | [@maximiliansoelch](https://github.com/maximiliansoelch) [@bassner](https://github.com/bassner) |
| Plagiarism checks | [@MarkusPaulsen](https://github.com/MarkusPaulsen) |
| Learning analytics | [@bassner](https://github.com/bassner) |
| Adaptive learning | [@bassner](https://github.com/bassner) [@maximiliananzinger](https://github.com/maximiliananzinger) |
| Learning paths | [@maximiliananzinger](https://github.com/maximiliananzinger) |
| Tutorial Groups | [@FelixTJDietrich](https://github.com/FelixTJDietrich) |
| Iris | [@bassner](https://github.com/bassner) |
| Scalability | [@mtze](https://github.com/mtze) |
| Usability | [@rabeatwork](https://github.com/rabeatwork) |
| Performance | [@rabeatwork](https://github.com/rabeatwork) |
| Infrastructure | [@mtze](https://github.com/mtze) |
| Development process | [@FelixTJDietrich](https://github.com/FelixTJDietrich) |
| Mobile apps (iOS + Android) | [@krusche](https://github.com/krusche) [@maximiliansoelch](https://github.com/maximiliansoelch) |


### Building for production

To build and optimize the Artemis application for production, run:
Expand Down

0 comments on commit 19c6b58

Please sign in to comment.