Welcome to the first steps for becoming an OLE Software Engineering Virtual Intern! We treat these first steps as a vetting process to prove that you can follow simple instructions before you can progress to working on harder projects in bigger teams. Consider them to be the interview for the internship.
If you are selected for the internship after completing the steps, you will be officially invited to join the OLE software engineering interns team! We’ll add you to relevant Discord channels and assign you to a specific team to work on developing and improving OLE’s software. Our current projects is Planet – a learning management system designed as a Progressive Web App using Angular and CouchDB. Click here to learn more about the Planet Learning platform.
During this internship, you will have the opportunity to work with various software, tools, and technologies, including Git, GitHub, Markdown, Command Line, CouchDB, Docker, HTML5, JavaScript, Node.js, Angular, TypeScript, SCSS, and Visual Studio Code.
NOTE: This is an unpaid, intensive internship requiring a minimum commitment of 24 hours per week for at least 3 months. Additional details about the internship can be found in our FAQ. If you have further questions, feel free to ask in our Discord server!
Social coding is a huge part of any open source and collaborative project, and the Open Learning Exchange (OLE) is no different. In the following series of steps, you will learn about Markdown, Docker, Git, GitHub, GitHub issues, GitHub pull requests, etc. You'll also be introduced to OLE's learning management system (LMS) – Planet.
These steps may seem simple, but we expect high-quality work, which might require extra time. We want to see that you can use, or learn to use, these tools effectively — including writing clear GitHub issues, using basic Git commands, creating proper pull requests, navigating Planet, etc. Just passively following the steps is the bare minimum; instead, aim to impress us with excellent GitHub etiquette and well-structured Markdown.
Take the opportunity to read more about the tools and languages we use to deepen your understanding and reduce confusion. Treat these steps as learning opportunities! The GitHub and Markdown skills you practice in first steps are crucial for both this internship and a future career in software development.
The MDwiki offers plenty of resources to help you complete these steps. You'll find a list of useful links at the end of each step. :)
We also would like you to keep us regularly updated in our Discord server's #vi-software
channel as you complete these steps. We will ask you to send messages, links, and screenshots along the way, which we'll use to track your progress. Please make sure not to miss this, as it's crucial for us to track your work.
A significant part of these steps is identifying problems or suggesting improvements for this MDwiki. As you complete the steps, take note of any issues you encounter or ideas for enhancements. This helps improve the MDwiki and these steps for future interns.
While there's no official deadline for completing these steps, most successful candidates finish them within 7-8 days. Good luck!
Our FAQ page is a comprehensive resource containing answers to common questions about the internship and First Steps. It also features additional helpful links and video tutorials aimed at familiarizing you with the tools and languages integral to our work.
If you have general internship inquiries and can't find the information you need on the FAQ page, please don't hesitate to reach out to us via Discord. Try to avoid DMs as others might have the same question!
For technical questions not covered in the FAQ, in addition to contacting us on Discord, Google, Stack Exchange, and ChatGPT serve as excellent supplementary resources to explore. :)
(Estimated Time: 1h)
This step includes two tasks:
- Watch the Repository and Follow Contributors:
- To keep up with the latest activities, use the "Watch" button in repositories and "Follow" individuals.
- Visit GitHub, and watch the Open Learning Exchange's Planet repository to stay updated on changes.
- Follow OLE's CTO dogi and Planet's core developer Mutugi on GitHub.
- You can also follow other active virtual interns to stay updated on their activities.
- Contribute to Translations on Crowdin:
- We use Crowdin to translate our user interface into multiple languages.
- If you know a language supported by Planet, your translation assistance would be greatly appreciated. Create a Crowdin account and aim to translate at least 10% of the words in your chosen language. For an overview of the functionality and terminology, refer to the Planet User Manual. Your contributions will help both the project and enhance your understanding of Planet. Be sure to let us know in the #vi-software channel on Discord if you're able to contribute to our translation efforts.
(Estimated Time: 1.5h)
Follow the instructions on the GitHub and Markdown page.
- Once you complete this step, you will have:
- 1 Pull request made
Make sure that you've linked to your github.io and pull request link in #vi-software channel on Discord (https://YourUserName.github.io
and LinkToYourPullRequest
). Also include the Raw.githack link in your pull request as we asked in the pull request template.
(Estimated Time: 1.5h)
Setting up your local development environment is the first step to becoming a Virtual Intern at OLE. Follow the instructions on the Environment Setup to install the necessary tools and software. This will prepare you to successfully run both production and development versions of the planet later on.
(Estimated Time: 2.5h)
This step includes two tasks:
-
Docker Tutorial:
- Follow the instructions on the Docker Tutorial page.
- Docker is a program that performs operating-system-level virtualization, also known as containerization.
- Learn the basics of interacting with Docker and Docker Compose using the command-line interface and basic commands for maintaining your Planet installation.
-
Planet Configurations:
- Refer to the Planet Configurations page.
- Learn how to configure your Community Planet.
(Estimated Time: 2h)
This step includes the Planet Tutorial, which explains the features of the Planet application.
Additionally, there is a myPlanet Tutorial that covers the Android application. Please follow this tutorial if you have an Android device.
(Estimated Time: 1h)
Follow the directions at Git Repositories to keep your username.github.io and your local repository up to date.
(Estimated Time: 2.5h)
Follow the direction at GitHub Issues. In this step, you’ll learn about GitHub Issues, Commits, and Pull Requests, as well as the collaborative workflow used during the internship. You will create a GitHub Issue related to the Software Engineering Intern First Steps’ content, create a branch to address it, and submit a Pull Request to the open-learning-exchange/open-learning-exchange.github.io
repository. Additionally, you’ll collaborate with the team to make necessary changes and comment on existing Issues.
Please note that creating and working on issues is not strictly bound by the specific "Step" you're in. You may continue working up to Step 9 while awaiting OLE approval for your issue(s) or pull request(s).
(Estimated Time: 1.5h)
Follow the directions under the Nation Planet tab.
(Estimated Time: 4.5h)
Follow Create More Issues and Pull Requests, where you'll focus on improving our Markdown Wiki. This involves creating three issues, with at least one addressing content reduction and another enhancing the Planet User Manual. Additionally, you'll comment on three existing issues and resolve your own by submitting pull requests. Follow the process outlined in the GitHub Issues Tutorial, each pull request will need to be reviewed and approved by two team members before merging.
Hint: You can track your progress with the number of pull requests and issues here.
(Estimated Time: 3h)
In Step 2, we set up a local production environment for Planet. Now, follow the Planet Development Setup Tutorial to configure your development environment. This step involves working with Docker, Git, Node.js, Angular, and the Planet application.
(Estimated Time: 1h)
Once you've confirmed that you've met the requirements in the progress tracker, your next step is to add yourself to the virtual intern list in vi-team.md and submit a pull request. Afterward, message us ("@mutugiii", "@dogi", and "@vi-software") in the Discord #vi-software channel to schedule a meeting and officially join the team.
After scheduling the meeting, and before it takes place, be sure to review the Software Engineering Intern Orientation document.