Contribute

Contribute to git.nrw

We appreciate your interest in contributing to git.nrw! This platform is a collaborative project between universities in North Rhine-Westphalia, built with Hugo, and designed to provide educational resources for the university community. Your contributions are crucial for expanding and enhancing this platform.

This guide will help you understand how to contribute, particularly in creating courses, and ensure your contributions seamlessly integrate into the project.

Code of Conduct

We are committed to creating an open and welcoming environment. Please treat everyone with respect and professionalism. Discrimination, harassment, or any form of inappropriate behavior will not be tolerated.

How to Contribute

Prerequisites

  • Git proficiency: You should be comfortable with basic Git commands like cloning, branching, committing, and pushing.
  • Hugo: Our website uses Hugo. Download and install it from the Hugo website .
  • Development environment: You’ll need Hugo, Node.js and npm to run the project locally.
  • Docker (optional): Alternatively, you can use Docker to run the project.

Quick Start for Experienced Developers

  1. Clone the repository: git clone git@gitlab.com:<project-name>/<repository-name>.git
  2. Install dependencies: npm install
  3. Start development server: npm start (or use Docker: npm run docker:build and npm run docker:up)
  4. Create a new course: hugo new courses/<kebab-style-course-name>/_index.md
  5. Add lessons: hugo new courses/<kebab-style-course-name>/<prefix>-<kebab-style-lesson-name>.md (e.g., 010-010-introduction.md)
  6. Write your content in Markdown.
  7. Preview your course: http://localhost:1313/en/courses/<kebab-style-course-name>
  8. Commit your changes: git add ., git commit -m "your message", git push
  9. Create a merge request on GitLab.

For detailed information on content guidelines, licensing, and more, please continue reading below.

Branching Strategy

We follow a clear branching strategy to manage contributions effectively:

  • main branch: The main branch holds the production-ready code.
  • feature branches: Used for developing new features.
  • bug branches: Used for fixing bugs.
  • chore branches: Used for routine tasks like updating dependencies or documentation.
  • courses branches: Used specifically for creating or updating courses (as described above).

Creating a Course (Detailed Guide)

A detailed guide on creating courses is available within the platform itself . This guide provides comprehensive instructions on structuring your course, writing effective content, and using the available features. It also acts as a real-life example of a course.

Images and Media

  • Store images in static/images/courses/<course-name>/.
  • Store videos in static/videos/courses/<course-name>/.
  • Ensure you have the rights or licenses to use all media.

Content Guidelines

  • Language: Use clear and concise language, avoiding jargon or explaining it when necessary.
  • Formatting: Maintain consistency in Markdown formatting.
  • File names: Use English, kebab-case, and a numeric prefix (e.g., 010-010-introduction.md).
  • Metadata: Fill in all required fields in the frontmatter of your Markdown files.

Licensing

  • Your content: License your contributions under CC BY.
  • Third-party content: Use only content with appropriate licenses, clearly indicate the license, and adhere to its terms. Courses themselves must be licensed under CC BY.

Contributors

Sven Wöhrle
Sven Wöhrle
Torben Buck
Torben Buck
Gorka Ribera
Gorka Ribera

Support

If you have any questions or encounter problems, please don’t hesitate to use our contact form .

Thank you for your contributions and for being a part of the git.nrw community!