Detailed Description: We have a lot of algorithms in 20+ programming languages in our GitHub repositories, but they are not properly organised and discoverability is not good. For a beginner, it becomes difficult to learn algorithms and their implementation. For a person who is not familiar with Git or Github, this can become a hurdle in learning. So we want to build an interactive web app where students can explore various algorithms and learn their implementation in the programming language of their choice. The code for these algorithms and their plain text explanation should be fetched automatically from Github Repos and rendered in a readable form. Further, this plain text explanation can also be multilingual.
Expected outcomes:
Skills Required: HTML, CSS, Javascript, React, Next.js
Difficulty: Easy
Potential Mentors:
Detailed Description: Currently, the user has to clone a repository and then commit new files on it to add a new algorithm. For someone who is not familiar with git but is well-versed in algorithms, it would be difficult to contribute. The CMS will present a web application to the users where they can write code for the new algorithm and add plain text explanations.
Expected outcomes:
Skills Required: React, Javascript, CSS
Difficulty: Medium
Potential Mentors:
Detailed Description: Currently, if you want to apply for a job, you visit the career page of the job. Then, you fill the form with the same details you have filled for other jobs that you have applied for. Sometimes, Google Chrome helps fill the form by autofill data, but this is not always possible. The forms may ask your Twitter/LinkedIn profile URL and Google Chrome doesn’t save this. In this situation, you visit the desired social page, copy the URL and then paste it on the form. The same happens when skills and experience are filed in the application. In this project, we are trying to make a browser extension that is capable of saving everything and auto-fills the job form or any type of form effectively.
Expected outcomes:
Skills Required: HTML, CSS, Javascript
Difficulty: Easy
Potential Mentors:
Detailed Description: This will be a server to handle the save events from the CMS. This will have a basic authentication and authorisation system. We need to serve APIs for saving new algorithms, editing existing algorithms and moderating the changes. The logic to parse the payload received and commit it to the respective repositories will stay here.
Expected outcomes:
Skills Required: Python, GitHub API
Difficulty: Medium
Potential Mentors:
Detailed Description: Algorithms Keeper is an automated pull request reviewing bot. It already automates the initial review of Python pull requests; therefore, this project will extend that tool to perform a deeper analysis of proposed changes to code and documentation. The current tool focuses only on Python submissions but TheAlgorithms currently has repositories for 25 programming languages. Work should be done to make useful initial code reviews across multiple programming languages. Automated reviews should be intuitive and self-documenting and should always encourage contributions.
Expected outcomes:
Skills Required: GitHub Actions, Python
Difficulty: Hard
Potential Mentors:
Detailed Description: Apart from algorithms, the web app will have a section for technical blogs mostly related to algorithms and scalability. We want to create a dashboard where the user can write blogs in MD format. On saving the blog, the MD file should be committed to the repository on Github, which would then be fetched and rendered in the explore blogs section. This should support multiple languages.
Expected outcomes:
Skills Required: Javascript, Python, React
Difficulty: Easy
Potential Mentors:
Detailed Description: Every contributor on the organisation would have a contributor profile on the website. This page should show all the algorithms and blogs added by that user. This would include contributions from both, committing directly to the repo and adding from CMS. A contribution chart should also be displayed on the profile just as it does on Github. This would help to display the top contributors and encourage others to learn and share algorithms.
Expected outcomes:
Skills Required: React, Github APIs, Javascript, Charts
Difficulty: Easy
Potential Mentors:
Detailed Description: A simple flutter application for The Algorithms. It will help in learning the space and time complexities of various algorithms using spaced repetition and flashcards. Users will be able to play quizzes, learn algorithms and read blogs. Every day the user should get a notification for the algorithm of the day and a streak will be maintained to keep track of all the algorithms the user has learned.
Expected outcomes:
Skills Required: Flutter
Difficulty: Easy
Potential Mentors: