Skip to content

Latest commit

 

History

History
121 lines (69 loc) · 11.1 KB

vi-first-steps.md

File metadata and controls

121 lines (69 loc) · 11.1 KB

First Steps – Software Engineering Virtual Intern

The Big Picture

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 at least 24 hours of work per week. You can find more information about the internship in our FAQ. If you have additional questions, feel free to ask in the Discord server!

The Steps

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 the Discord 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!

FAQ - Frequently Asked Questions

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. :)

Step 0 - Introductory Steps

This step includes two tasks:

  1. Watch the Repository and Follow Contributors:

Watch Screen Shot Follow Screen Shot

  1. 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.

Step 1 - Markdown and Fork Tutorial

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.

Step 2 - Software Prerequisites

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.

Step 3 - Planet and Docker

This step includes two tasks:

  1. 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.
  2. Planet Configurations:

Step 4 - Planet and myPlanet Tutorial

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.

Step 5 - Keeping Fork Updated

Follow the directions at Git Repositories to keep your username.github.io and your local repository up to date.

Step 6 - GitHub Issues Tutorial

Follow GitHub Issues to create at least one issue. Post a link in Discord whenever you create an issue or when you comment on someone else's issue. You are encouraged to post as many issues as you can for improving the page as well as for personal practice. No issue is too big or too small to be filed and it is OK if you are not sure how to fix it yourself. If you know how to solve an issue, be sure to provide a detailed account of your research and show how to fix it. It is ok to file an issue about minor typos and very small changes, but do not make this the case for all of the issues that you file. You can also work on issues that you didn't create.

Make sure you have created at least one issue, resolved it, commented on an issue you didn't create and have a pull request with the fix merged. You may continue making Issues, Pull requests and Comments, or move on to the next step, while you are waiting for your pull request to be merged. The approval process for your Step 6 fix may take time, but it is OK to continue working.

  • Once you complete Step 6 you will have:
    • 2 pull requests made (one at step 3 and one at step 6)
    • 1 comment added (on an issue you didn't create)
    • 1 issue created

Hint: You can track your progress with the number of pull requests and issues here.

Please note that creating and working on Issues are not exactly bound by the "Step" you are in. Feel free to move on to other steps while you wait on OLE approval for your merge(s). You can also add more Issues and PR's in the meantime.

Step 7 - Nation Planet

Follow the directions under the Nation Planet tab.

Step 8 - Create More Issues and Pull Requests

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.

Step 9 - Planet Development Setup

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.

Step 10 - Be Part of the Team

Next thing 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.

Before the meeting, be sure to review the Software Engineering Intern Orientation document.