Thank you for considering contributing to our project! This document provides organization-wide contribution guidelines. For repository-specific details, please also read the CONTRIBUTING.md (or AGENTS.md) in the relevant repository.
If you remember nothing else from this guide, keep these three rules in mind:
- 🧹 Leave It Cleaner Than You Found It — Every time you touch a piece of code, try to leave it in a better state. Tidy up as you go!
- 🔍 Do It Right the First Time — Aim for quality from the start. "Fixing it later" rarely happens, so let's avoid technical debt today.
- 🤓 Take Pride in Your Work — Write code that is a joy to read. Attention to detail is what separates good software from great software.
| Repository | What it is |
|---|---|
| prompt | Main PROMPT platform — React micro-frontends + Go microservices |
| prompt-intro-course | Standalone intro programming course component and server |
| prompt-lib | Shared frontend libraries (@tumaet/prompt-ui-components, @tumaet/prompt-shared-state) |
| prompt-sdk | Go SDK for auth, resolution helpers, and shared domain types |
Each repository contains its own detailed setup and development guide.
To maintain a trustworthy and transparent community, all contributors must:
- Use their real full name in their GitHub profile.
- Upload an authentic profile picture — a clear, professional photo. Avoid memojis, avatars, or comic-style images.
These requirements apply to both organization members and external contributors. Contributions that do not adhere to this policy may not be accepted. For full details, see our Code of Conduct.
- Search the repository's Issues first to see if the bug has already been reported.
- If not, open a new issue using the available bug report template.
- Include clear reproduction steps, your environment, and screenshots where applicable.
- We love new ideas! Open a feature request issue in the appropriate repository.
- For large architectural changes, discuss them on our Discord first.
- Create a feature branch directly in the repository using a descriptive name:
feature/your-feature-namefix/your-bug-descriptionchore/task-description
- Work on your changes in that branch, following the code conventions in the relevant repo's guide.
- Open a pull request against the
main(or appropriate) branch and fill in the PR template completely. - Respond to review feedback and keep your branch up to date.
- Verify your identity: Ensure your GitHub profile uses your real name and an authentic photo.
- Fork the repository you want to contribute to.
- Create a feature branch in your fork with a descriptive name.
- Make your changes, following the coding standards and conventions defined in the repository.
- Open a pull request from your fork to the upstream repository's
mainbranch. - Keep your branch up to date with the upstream main branch before requesting review.
Each repository defines its own conventions — please read the relevant guide before starting:
| Repository | Guide |
|---|---|
prompt |
AGENTS.md |
prompt-intro-course |
AGENTS.md |
prompt-lib |
README.md |
prompt-sdk |
README.md |
General cross-repository standards:
- Frontend (TypeScript/React): PascalCase for components, camelCase for utilities, no
anytypes, preferinterfaceovertype. - Backend (Go): PascalCase for exported identifiers, camelCase for unexported, snake_case for DB columns/tables.
- Keep pull requests small and focused — one concern per PR.
- Update documentation if you change behavior.
- Add or update tests as appropriate.
- Go services:
go test ./...from the relevant server directory. Tests use testcontainers for DB isolation. - Frontend:
yarn lintandyarn buildfrom the relevant client directory.
Tests must pass before a PR will be merged.
- Discord: Join our server for real-time discussions, help, and planning.
- Documentation: prompt-edu.github.io/prompt
- Issues: Use the GitHub Issues tracker in the relevant repository.
By contributing, you agree to abide by our Code of Conduct. Please read it before participating.
Thank you for helping us build great open-source software for education! 🚀
PROMPT is developed at the Research Group Applied Education Technologies (AET), Technical University of Munich.