forked from TheAlgorithms/TheAlgorithms.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathideas.html
More file actions
336 lines (312 loc) · 14.9 KB
/
ideas.html
File metadata and controls
336 lines (312 loc) · 14.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
<html>
<head>
<title>The Algorithms - Ideas List for GSOC'21</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<style>
body{
background-color: white;
}
p {
text-align: justify;
}
hr{
margin-top: 50px;
margin-bottom: 50px;
}
.idea {
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
transition: 0.3s;
padding: 30px;
margin-top: 25px;
margin-bottom: 50px;
}
.idea:hover {
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);
}
.header{
background: #3a4952;
color: white;
}
h3 {
padding-bottom: 10px;
}
</style>
</head>
<body>
<div class="row header">
<div class="col-sm-1">
<img src="https://avatars.githubusercontent.com/u/20487725?s=200&v=4" width="130">
</div>
<div class="col-sm-10" style="margin-left:16px">
<h1>The Algorithms</h1>
<h2>Ideas List for GSOC’21</h2>
</div>
</div>
<div class="container-fluid">
<div class="row">
<div class="col-sm-6">
<div class="idea">
<h3><u>Webapp for learning algorithms</u></h3>
<p>
<b>Detailed Description: </b> 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.
</p>
<p>
<b>Expected outcomes: </b>
<ul>
<li>An interactive multilingual web app to explore and learn algorithms in the programming language
of their choice.
</li>
</ul>
</p>
<p>
<b>Skills Required: </b> HTML, CSS, Javascript, React, Next.js
</p>
<p>
<b>Difficulty: </b> Easy
</p>
<p>
<b>Potential Mentors: </b>
<ol>
<li>Malte Jürgens (Gitter: <a href="https://gitter.im/maltejur">maltejur</a>)</li>
<li>David Leal (Gitter: <a href="https://gitter.im/Panquesito7">Panquesito7</a>)</li>
<li>Anshul Malik (Gitter: <a href="https://gitter.im/anshulmalikce">anshulmalikce</a>)</li>
<li>Chetan Kaushik (Gitter: <a href="https://gitter.im/dynamitechetan">dynamitechetan</a>)</li>
</ol>
</p>
</div>
<div class="idea">
<h3><u>The Algorithms CMS - Frontend</u></h3>
<p>
<b>Detailed Description: </b> 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.
</p>
<p>
<b>Expected outcomes: </b>
<ul>
<li>A CMS that will serve as an interface to add algorithms.</li>
<li>Capability to add programming language implementation.</li>
<li>Capability to add plain text translation.</li>
</ul>
</p>
<p>
<b>Skills Required: </b> React, Javascript, CSS
</p>
<p>
<b>Difficulty: </b> Medium
</p>
<p>
<b>Potential Mentors: </b>
<ol>
<li>Malte Jürgens (Gitter: <a href="https://gitter.im/maltejur">maltejur</a>)</li>
<li>David Leal (Gitter: <a href="https://gitter.im/Panquesito7">Panquesito7</a>)</li>
</ol>
</p>
</div>
<div class="idea">
<h3><u>Merlin Extension</u></h3>
<p>
<b>Detailed Description: </b> 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.
</p>
<p>
<b>Expected outcomes: </b>
<ul>
<li>A browser extension that stores personal and professional information.</li>
<li>Save time for filling out forms by auto-filling almost all the fields.</li>
<li>Improve accuracy of auto-fill suggestions.</li>
</ul>
</p>
<p>
<b>Skills Required: </b> HTML, CSS, Javascript
</p>
<p>
<b>Difficulty: </b> Easy
</p>
<p>
<b>Potential Mentors: </b>
<ol>
<li>Vishwesh Jainkuiya (Gitter: <a href="https://gitter.im/jainkuniya">jainkuniya</a>)</li>
<li>Abhinn Mishra (Gitter: <a href="https://gitter.im/mishraabhinn">mishraabhinn</a>)</li>
</ol>
</p>
</div>
<div class="idea">
<h3><u>The Algorithms CMS - Backend</u></h3>
<p>
<b>Detailed Description: </b> 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.
</p>
<p>
<b>Expected outcomes: </b>
<ul>
<li>A CMS backend that will serve as a data source for the web app.</li>
<li>Exposed APIs to save and update blogs.</li>
</ul>
</p>
<p>
<b>Skills Required: </b> Python, GitHub API
</p>
<p>
<b>Difficulty: </b> Medium
</p>
<p>
<b>Potential Mentors: </b>
<ol>
<li>Nikhil Kala (Gitter: <a href="https://gitter.im/nikhilkala">nikhilkala</a>)</li>
<li>Anup Kumar Panwar (Gitter: <a href="https://gitter.im/anupkumarpanwar">anupkumarpanwar</a>)</li>
</ol>
</p>
</div>
</div>
<div class="col-sm-6">
<div class="idea">
<h3><u>Algorithms Keeper</u></h3>
<p>
<b>Detailed Description: </b> 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.
</p>
<p>
<b>Expected outcomes: </b>
<ul>
<li>Improve automated initial reviews of Python pull requests.</li>
<li>Automate initial reviews for other languages.</li>
<li>Study of which features (test coverage, self-documenting variable names, type hints, etc.) are
most important for project maintainers.
</li>
<li>Improve sensitivity to the needs of submitters (esp. those learning the language and learning
how to contribute to open source).
</li>
</ul>
</p>
<p>
<b>Skills Required: </b> GitHub Actions, Python
</p>
<p>
<b>Difficulty: </b> Hard
</p>
<p>
<b>Potential Mentors: </b>
<ol>
<li>Dhruv Manilawala (Gitter: <a href="https://gitter.im/dhruvmanila">dhruvmanila</a>)</li>
<li>Christian Clauss (Gitter: <a href="https://gitter.im/cclauss">cclauss</a>)</li>
</ol>
</p>
</div>
<div class="idea">
<h3><u>Blog dashboard</u></h3>
<p>
<b>Detailed Description: </b> 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.
</p>
<p>
<b>Expected outcomes: </b>
<ul>
<li>A blog section on the website.</li>
<li>Dashboard to create blogs.</li>
</ul>
</p>
<p>
<b>Skills Required: </b> Javascript, Python, React
</p>
<p>
<b>Difficulty: </b> Easy
</p>
<p>
<b>Potential Mentors: </b>
<ol>
<li>Rohit Gupta (Gitter: <a href="https://gitter.im/r0hit-gupta">r0hit-gupta</a>)</li>
<li>Chetan Kaushik (Gitter: <a href="https://gitter.im/dynamitechetan">dynamitechetan</a>)</li>
</ol>
</p>
</div>
<div class="idea">
<h3><u>Contributor profile</u></h3>
<p>
<b>Detailed Description: </b> 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.
</p>
<p>
<b>Expected outcomes: </b>
<ul>
<li>Contributor profile with top charts.</li>
<li>Encourage people to contribute and learn more.</li>
</ul>
</p>
<p>
<b>Skills Required: </b> React, Github APIs, Javascript, Charts
</p>
<p>
<b>Difficulty: </b> Easy
</p>
<p>
<b>Potential Mentors: </b>
<ol>
<li>Madhav Gaba (Gitter: <a href="https://gitter.im/madhavgaba">madhavgaba</a>)</li>
<li>Nikhil Kala (Gitter: <a href="https://gitter.im/nikhilkala">nikhilkala</a>)</li>
<li>Anup Kumar Panwar (Gitter: <a href="https://gitter.im/anupkumarpanwar">anupkumarpanwar</a>)</li>
</ol>
</p>
</div>
<div class="idea">
<h3><u>Flutter App</u></h3>
<p>
<b>Detailed Description: </b> 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.
</p>
<p>
<b>Expected outcomes: </b>
<ul>
<li>Flutter app for The Algorithms.</li>
<li>Learn a new algorithm everyday</li>
</ul>
</p>
<p>
<b>Skills Required: </b> Flutter
</p>
<p>
<b>Difficulty: </b> Easy
</p>
<p>
<b>Potential Mentors: </b>
<ol>
<li>Rohit Gupta (Gitter: <a href="https://gitter.im/r0hit-gupta">r0hit-gupta</a>)</li>
<li>Rahul Kathuriya (Gitter: <a href="https://gitter.im/RahulKathuria">RahulKathuria</a>)</li>
</ol>
</p>
</div>
</div>
</div>
</div>
</body>
</html>