Skip to content

Latest commit

 

History

History
147 lines (82 loc) · 13 KB

mi-10-steps.md

File metadata and controls

147 lines (82 loc) · 13 KB

First Steps – Mobile Virtual Intern

The Big Picture

Welcome to the first steps for becoming an OLE Mobile Virtual Intern! We treat these first steps as a vetting process to prove that you can follow basic instructions before moving on to more complex projects and larger teams. Think of this as 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 mobile interns team! We’ll add you to our Virtual Interns Discord channel and assign you to a specific team to work on developing and improving OLE’s software. Our current mobile projects are:

  1. myPlanet: An Android app that syncs with Planet to save data for offline use and send usage data.
  2. Remote: An Android app that communicates with headless Raspberry Pi mobile server running treehouses image via Bluetooth.

If you are selected after completing these steps, you'll work with your team on an assignment, and assignments will change weekly. During this internship, you will have the opportunity to work with various software and languages, including Git, GitHub, Markdown, Command Line/Terminal, Command Line/Terminal Scripts, Vim, CouchDB, [Realm database](https://en.wikipedia.org/wiki/Realm_(database%29), Android Studio, and Kotlin.

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, Vagrant, Docker, Git, GitHub, GitHub issues, GitHub pull requests, etc. You'll also be introduced to OLE's digital library, Planet, and its companion Android app, myPlanet.

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 myPlanet, 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 and Stack Exchange serve as excellent supplementary resources to explore. :)

Step 0 - Prerequisites

To participate in the internship, you will need the following:

  1. A laptop or desktop computer with at least 8GB of RAM.
  2. An Android device (phone or tablet) with a minimum of 3GB of RAM and running Android 9 "Pie" or later, and/or a Chromebook.
    • If you do not have a physical Android or Chromebook device, you can use a Raspberry Pi 4 or 5 with at least 8GB of RAM as an experimental alternative.
  3. Discord installed on both your Android device and your laptop or desktop computer for easier communication and screenshot sharing.
  4. A stable internet connection.

Once you have confirmed that you meet the aforementioned requirements, please say hi to everyone in the Discord channel and let us know that you have reached Step 0.

Step 1 - Markdown & Forking Workflow

Follow the instructions on Creating Your GitHub Profile Page: A Guide to Markdown & Forking Workflow.

Remember: Only proceed to the next step once you've completed all the instructions and submitted the pull request for your profile.

Step 2 - myPlanet App

myPlanet is an Android app available on the Play Store. Please find and install it there using this link.

Enroll in Beta Testing

Join as a beta tester to help us improve the app:

  • From a Phone: Join in Google Play on Android in myPlanet's app detail page. Scroll all the way down, under “Join the beta,” tap Join.
  • From a Laptop or Desktop Computer: Join on the web via this link.

After enrolling, there may be a delay before you can upgrade to the beta version of the app.

Testing the app

Once you've installed the beta version of the app, launch it and grant necessary permissions. Tap the gear icon in the upper right after passing the intro screen. Keep configurations default and tap "SYNC". Wait for completion, then "LOG IN AS GUEST" and explore the app for a minimal of 15 minutes.

Take screenshots and attempt to crash the app. After exploration, update us on Discord: "I'm on step 2, spent about xx minutes in the myPlanet app and crashed it when navigating to ..." or "I'm on step 2, spent about xx minutes in the myPlanet app and it did not crash."

Details about the crash might take up to 24 hours to show up in Google Play Console on our end.

Step 3 - Build myPlanet in Android Studio

Follow the guide at myPlanet and Android Studio to clone myPlanet repository from GitHub and build the myPlanet app with Android Studio.

Step 4 - Connect myPlanet app to Planet

Follow the guide at Connecting myPlanet to Planet.

Step 5 - Git Repositories: A Guide to Cloning, Configuring, and Syncing Forks

Follow the directions at Git Repositories: A Guide to Cloning, Configuring, and Syncing Forks.

Step 6 - GitHub Issues Tutorial

  • Follow the tutorial under the GitHub Issues to create at least one issue. Post a link in the discord channel 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.

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

Step 7 - Take a Course on myPlanet, Courses Gardening

Follow the guide at Take a Course on myPlanet, Courses Gardening.

Step 8 - Create Issues and Pull Requests

In this step, your goal is to create, comment on, and resolve GitHub issues to improve our Markdown Wiki. Here's what you'll need to do:

  1. Create Issues:

    • Create 3 new issues in our GitHub repository regarding Mobile Intern First Steps or myPlanet User Manual.
    • Each issue should focus on a specific problem or improvement.
      • Ensure that at least one issue addresses content reduction, such as dead links, repetitive content, excessive detail, or the potential to reference external official documentation in Mobile Intern First Steps.
      • Ensure that at least one issue is about populating or improving the myPlanet User Manual page.
  2. Comment on Issues: Provide helpful comments on at least 3 existing issues that you did not create. This could be to provide feedback, suggest solutions, ask questions, or clarify the issue.

  3. Resolve Issues with Pull Requests: Resolve the 3 issues by making the necessary changes in separate branches derived from master in your repository, and submit a distinct pull request for each one.

Follow the same process as described in the GitHub Issues step, working to improve our documentation for future interns. To get your pull requests merged, they must be approved by at least two other OLE team members/interns. After creating a pull request, announce it on the Discord chat to request reviews. You may need to make additional corrections based on feedback.

Remember, even small issues are worth addressing. Keep your issues focused and concise. If your pull requests need additional approvals, continue to work on other tasks while you wait.

Just as your learning with this Wiki was made possible by the efforts of previous interns, now we turn to you to continue that tradition and help future interns take their First Steps. Help us make this documentation clear and useful for those who follow.

NOTE: While adding details can be helpful, it's important to remember that less is often more. Over time, this First Steps guide has become bloated with too much information, making it harder to follow. As you work on improving this guide, focus on simplifying the instructions and removing any unnecessary content. The goal is to create a clear and concise guide that future virtual interns can easily understand and use.

NOTE: While waiting for two OLE team members to approve your Pull Requests, you can continue creating more Issues and Pull Requests (upon approval, we suggest). They will all count towards your final Issue/PR total. PR approval can take time, so don't let a lengthy approval/fix process stop you from progressing in your "First Steps".

Once you complete Step 8 you will have:

  • 5 merged pull requests (one at step 1, one at step 6 and three at step 8)
  • 4 comments made on issues you didn't create (one at step 6 and three at step 8)
  • 4 issues created (one at step 6 and three at step 8)

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

Step 9 - Kotlin Tour

myPlanet use Kotlin as the development language. If you have no or little prior exposure to Kotlin, please go over the Kotlin crash-course on Android Developers to gain some familiarity.

Additionally, you may also go over the official Kotlin tour. Optionally, there are practice exercise at the end of each topic for you to get some hands on exercise.

Step 10 - Be part of the team

Next thing is to add yourself to the virtual intern list found in mi-team.md and create a pull request. Message us ("@okurole_25668", "@dogi" and "@vi-mobile") in the Discord channel so that we can set up a meeting and add you to the team as soon as possible.

Make sure to read through the intern orientation document before the meeting.