Fresher Tasks 2023-24

This document comprises the tasks you will need to complete to proceed further in the Praveshan process. These tasks are meant to challenge your skills and put your determination to the test, as well as to introduce you to multiple domains of software development.

If you’re completely new to programming or if you need a quick refresher, we recommend going through Harvard University’s free and online course CS50arrow-up-right’s Introduction to Computer Sciencearrow-up-right. We advise focusing only on weeks zero, one, two, and six for now.

Finally, keep in mind that these tasks are aimed at making you comfortable being uncomfortable. Don’t get sidetracked into mastering any of the tools you’ll be using. Instead, learn just enough to get the task done well.

We hope you enjoy working on the tasks as much as we enjoyed making them. Good luck!

Submission Guidelines

  1. Make a private GitHub repository titled amfoss-tasks.

  2. Create a README.md file in the root of the repository to introduce yourself and answer the following questions:

    1. Why should we choose you?

    2. What are your goals for the next six months? How will you accomplish them?

    3. How will you contribute back to the club?

Do include any thoughts or feedback you have on the praveshan process as well.

  1. Create folders titled task-## (where ## is the serial number of the task) to upload your work for the corresponding task.

  2. Unless mentioned otherwise, include a brief explanation of how you approached each task in a README.md file in the corresponding folders.

Take a look at this repository if you still have any doubts about the intended structure: https://github.com/TheHuntsman4/amfoss-tasksarrow-up-right

Tasks

0. Install Linux

Linux is a free and open-source operating system. Many developers prefer Linux over other operating systems for its security, stability, and customizability. All the following tasks are meant to be done only on Linux or MacOS.

Since you’ll be messing around with your disk partitions, make sure you keep a backup of any important data on an external device. If you’re new to Linux, we highly** recommend installing Ubuntu. If you already have Windows installed, you could dual-boot your preferred distro alongside Windows. For macOS users, just start using the terminal more and check out Homebrew as well.

Resources:

1. Terminal Wizard

Have you seen the Harry Potter movies or read the books? If you have, then you must be familiar with the Triwizard Tournament, where participants must complete a series of dangerous and thrilling tasks. The winner is awarded the Triwizard Cup and eternal glory. Now, for this task, imagine yourself as a daring participant in the real-life magical spectacle known as the Terminal Wizard Championship! Imagine the Linux terminal as your wand, and let its powerful commands be your spells, which will help you to conquer the championship.

Your objective is to explore the Linux command line and complete the given task by using the necessary terminal commands. As you complete each challenge, you’ll receive fragments of a secret code that are scattered across countless files and git branches. You have to find all the secret codes to win the Terminal Wizard Cup and thus, complete the task.

Check out the given repository for further instructions.

GitHub Repository: https://github.com/KshitijThareja/TerminalWizardarrow-up-right

2. Lessgo Hugo

Have you ever come across stunning portfolio websites and blogs and wanted to build something similar but didn’t know how? Hugo helps you to build such captivating websites without writing a single line of code.

For this task, you have to create a simple portfolio website showcasing your creativity using Hugo, a popular open-source website generator. Use Hugo’s website themes to choose a website template that reflects your style and build on it. You will then have to host your portfolio website on Github Pages, a service that allows you to put your website up on the internet for anyone to view!

In your task-02 folder, add both the link to your Hugo repository and the link to your website in the README.md file. Instead of including your approach to this task in the README, make a blog post on your website.

Resources:

3. Hello, World!

Programming languages serve as a medium for you to communicate instructions to your computer. But not all of them go about it in the same way. Some languages are built to make communication as simple as possible, while others are built to ensure that it’s as fast as possible. In this task, you’ll use different languages to solve the same problem and learn about each language’s approach and implementation.

The problem is simple. Given any number n, find all the prime numbers up to and including n and print them out to the terminal. The number n must be taken as input from the user.

You need to solve this problem in all of the following languages to complete this task successfully: Python, Ruby, Elixir, Javascript, Java, Go, C, C++, Rust and Haskell.

Upload all necessary files for each language in separate folders within the task-03 folder in your repository.

4. Competitive Programming

Once you start programming, you don’t just learn how to code but you also learn how to think logically and clearly. In this task, we’ve come up with a few puzzles for you to put your logical ability to the test. You’ll need to solve these questions and implement the solutions in a programming language of your choice. For those who are new to programming, we suggest Python as it hides a lot of complexity with its simple, easy-to-use functions.

Once your answers have been accepted, upload the files for the solutions to directory task-04 in your repository. Provide your Hackerrank username in the README file in this directory.

Contest link: https://www.hackerrank.com/cp-praveshan-2023arrow-up-right

5. Hypertext Mockup Language

A popular rock band is looking to generate some extra revenue by selling their music and branded merchandise online. They decided to make a website for their online shop. As an artistic lot, they already have in mind what it should look like. However, being musicians and not web developers, they are clueless about how to translate their design to code that can be displayed on a browser.

You have been employed by the band to build two web pages imitating the design given. You must recreate it as closely as possible, using only HTML and CSS. Luckily, you’re provided with all the assets to make your work easier. If all works perfectly, they have promised you a ticket to their next show! Ready to rock out?

GitHub Repository: https://github.com/amfoss/tasks/tree/2023/task-05arrow-up-right

6. Cricket Vault

In the vast realm of cricket fandom, where matches unfold like epic battles, there is always a group of avid fans yearning for a seamless way to stay connected to the live game. Enter Harigovind, a coding virtuoso with an unwavering passion for the sport. Fueled by his love for cricket, he embarks on a mission to create the ultimate Discord bot – "Crickey." With its unrivalled ability to crawl the web, "Crickey" bestows live updates upon its users, and will become the heartbeat of cricket discussions worldwide and a loyal companion to fans during every match. But to make this grand bot, Harigovind needs an assistant.

In this task, you'll prove your skills to Harigovind by building an initial prototype that has the most basic features that the bot "Crickey" should have. But beware! There are several others who are aiming to be the great Harigovind's assistant. Distinguish yourself from others by adding your own commands to make the prototype more lively. We wish you luck!

GitHub Repository: https://github.com/amfoss/tasks/tree/2023/task-06arrow-up-right

Resources:

7. AK-47℃

Comrade Kalashnikov got drenched on his visit to the motherland. He was punished by his superiors for not being properly dressed. Create a handy chrome extension for Kalashnikov which will keep him well informed about the weather at his next rendezvous location so that he can prepare and dress accordingly to not get reprimanded by his superiors again.

Use HTML, CSS, and JavaScript to complete the task. The extension should return real-time weather data of any location according to user input.

As a developer, nothing is more satisfying than seeing your product out in the wild being helpful to a lot of people. While deploying your extension on the Chrome store would benefit a lot of people, that is beyond the scope of this task and is completely optional.

GitHub Repository: https://github.com/amfoss/tasks/tree/2023/task-07arrow-up-right

Resources:

8. Poke-Search!

Professor Oak urgently needs your assistance! While he was diligently working on an essential update for the Pokedex, disaster struck, and he accidentally deleted some code from the main repository. Now, he's in dire need of your Python programming skills to help him rebuild the necessary functions using PySide6 and retrieve Pokemon data through the Poke API. Your task is crucial to ensure that his work gets back on track.

GitHub Repository: https://github.com/amfoss/tasks/tree/2023/task-08arrow-up-right

Resources:

9. GeoQuest

In the covert world of high-stakes espionage, you, codename CartoGrapher, are recruited into a secret organisation with a mission to build a unique map application. Using Google's Flutter framework for Android and iOS, combined with OpenStreetMap, an open-source tool at your disposal, your mission is to create a powerful app enabling agents to drop pins on locations they wish to travel to while displaying the distance and time required for each journey. With your coding prowess, this covert travel app will be a vital tool for the organisation's agents as they embark on top-secret assignments across the world, navigating with precision and speed through the shadows of espionage.

Check out the given Github Repository for more intel!

GitHub Repository: https://github.com/amfoss/tasks/tree/2023/task-09arrow-up-right

10. RuskOS

A kernel is the core program around which an operating system is built. Using a custom open-source or self-made kernel can mitigate potential spyware built into operating systems such as Windows.

Tanya Von Degourachaff was delivering a package on behalf of Doktor Wilhelm Voigt that contained such a kernel. It was a little program called the Kreschnder cypher, a kernel written in Rust that contained a unique text pattern required to activate their new state-of-the-art aerial defence system.

Unfortunately, the kernel sustained some damage due to an enemy ambush on the way to the destination. Now it’s up to you, a field engineer Dingus, to restore the kernel before shipping it back out.

GitHub Repository: https://github.com/amfoss/tasks/tree/2023/task-10arrow-up-right

Resources:

Additional Tasks

11. TinkerCAD

Design a functional device using Arduino on TinkerCad for an automatic retractable roof in a farming environment.Try to create an accurate mimicry of an automatic retractable roof by Integrating a Servo motor, LDR sensor, and LCD screen to simulate the roof automation. Upon LDR sensor light detection, ensure the Servo activates, while displaying "ROOF OPEN" on the LCD. Conversely, when light is not detected, deactivate the Servo, and display "ROOF CLOSED" on the LCD.

Resources:

12. Godot

In the realm of shadows and secrets, the legendary ninja, Ninja Hattori, finds himself entangled in trouble. As he trains diligently in his ancient dojo, distressing news reaches him - the sacred flag, an emblem of honour and wisdom, has been stolen by a malevolent force.

Feeling the weight of responsibility, Ninja Hattori knows he cannot face this perilous challenge alone. Help him on his quest using the Godot engine to create a 3D game virtual world of obstacles and train him to capture the flag.

GitHub Repository: https://github.com/amfoss/tasks/tree/2023/task-12arrow-up-right

Resources:

13. Vim

Ever wanted to impress your family and friends with how quickly you can write and edit code? Vim or Vi Improved is a free and open-source text editor built on keybindings that will help you write code blazing fast.

To get started, install Vim and type in “vimtutor” into your terminal. Complete all chapters of vimtutor and upload the final txt file into your amfoss-tasks repository to complete this task successfully.

Resources:

14. Bandit

Ever wanted to test your cybersecurity skills? Just visit Bandit OverTheWire and dive in. Use your Linux terminal skills to find passwords, and store them in 'pass.txt' files in level-specific folders. This challenge will deepen your grasp of command-line operations and security methods. Complete ten levels of OverTheWire and upload the required files to your repository to complete this task.

Resources:

15. Project Euler

Complete the first five questions from Project Euler, an exploration of mathematical and computational problems. As you solve each problem, store your solutions in their respective folders within your tasks repository. And don’t forget to let us know your approach in the README.md file for this task.

Last updated