-
Notifications
You must be signed in to change notification settings - Fork 528
Developing skills
In general, it's easier to contribute to the Oppia codebase if you have some knowledge of git, as well as at least one of Kotlin or Android. You don't need to know all of this before you start, though! Many of our contributors have picked these skills up concurrently while tackling their first issues.
That said, we strongly recommend that you be open to learning new things. If you need to brush up on some of the technologies used in Oppia, here are some resources that may help:
- Git and Github are used to make changes to the repository, so it's good to know how to use them to do basic stuff like branching, merging, pulling, pushing, and committing.
- For beginners:
-
Learning Branching Git helps explain how git works. Try the levels below:
- Levels 1, 2, and 3 from the Introduction sequence.
- Levels 1, 2, 3, 4, 5, and 6 from Push and Pull Git Remotes.
- Introduction to GitHub covers how to use GitHub.
-
Learning Branching Git helps explain how git works. Try the levels below:
- More advanced:
- The other levels from Learn Branching Git cover git in more depth.
- You may find this git visualizer helpful for understanding more advanced git operations. It can be helpful for simple ones too!
- GitHub's managing merge conflicts page explains how to address merge conflicts.
- For beginners:
- Kotlin is used for Android in oppia. You can learn the basics of kotlin from Udacity -- Kotlin bootcamp for programmers by Google.
- Learn the basics of android to understand the project structure and the libraries that are used in most common apps from the Udacity -- Developing Android Apps with Kotlin course.
- To learn the advanced topics like Dependency Injection and Testing in Android check out Udacity -- Advanced Android with Kotlin course.
All the learning resources mentioned are free. If you find a useful learning resource that isn't listed here, please add it to help other new contributors!
Have an idea for how to improve the wiki? Please help make our documentation better by following our instructions for contributing to the wiki.
Core documentation
Developing Oppia
- Contributing to Oppia Android
- Bazel
- Key Workflows
- Testing
- Developing Skills
- Frequent Errors and Solutions
- RTL Guidelines
- Working on UI
- Writing Design Docs
Developer Reference
- Code style
- Background Processing
- Dark mode
- Buf Guide
- Firebase Console Guide
- Platform Parameters & Feature Flags
- Work Manager
- Dependency Injection with Dagger
- Revert & regression policy
- Upgrading target SDK version
- Spotlight Guide
- Triaging Process
- Bazel
- Internationalization
- Terminology in Oppia
- Past Events