Skip to content

Commit efb223b

Browse files
authored
Merge pull request creativecommons#596 from creativecommons/gsoc2021-project-ideas
add GSoC 2021 project ideas
2 parents 01d2422 + 675ab74 commit efb223b

File tree

7 files changed

+347
-2
lines changed

7 files changed

+347
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
_model: project-idea
2+
---
3+
_hidden: yes
4+
---
5+
title: Add CC Chooser to CC WordPress Plugin
6+
---
7+
problem:
8+
Currently, we have a license selector on the admin panel that works fine but it
9+
can be improved by using the workflow of the new CC Chooser. We also have a set
10+
of Gutenberg blocks to insert a license in the content, we can also add a new
11+
block that can contain the CC Chooser workflow as well, this will improve the
12+
user experience and would be more educational regarding the CC Licenses.
13+
---
14+
expected_outcome:
15+
Revamping the admin panel of the plugin, adding the CC Chooser on it as well as
16+
a Gutenberg block.
17+
---
18+
internship_tasks:
19+
The intern will be expected to:
20+
- Research about how the new CC Chooser manage the user workflow
21+
- Recreate that process in the WordPress admin panel
22+
Generate a new Gutenberg block
23+
---
24+
application_tips:
25+
The intern should be able to plan this process and find the best way to adapt
26+
the workflow from the CC Chooser (JavaScript/Vue) to WordPress (PHP).
27+
---
28+
resources:
29+
- **[Applicant Guide][appguide]**
30+
- [New CC Chooser][betachooser]
31+
- [creativecommons/chooser][chooser]: [WIP] The new and improved CC license
32+
selection tool.
33+
- [creativecommons/wp-plugin-creativecommons][wpplugin]: Official Creative
34+
Commons plugin for licensing your content. With Creative Commons licenses,
35+
keep your copyright AND share your creativity.
36+
37+
[appguide]: /internships/applicant-guide/
38+
[betachooser]: https://chooser-beta.creativecommons.org/
39+
[chooser]: https://github.com/creativecommons/chooser
40+
[wpplugin]: https://github.com/creativecommons/wp-plugin-creativecommons/
41+
---
42+
skills_recommended:
43+
- JavaScript
44+
- PHP
45+
- React
46+
- WordPress
47+
---
48+
mentors:
49+
- Hugo
50+
---
51+
difficulty: Medium
52+
---
53+
filter_value: difficulty-medium skill-javascript skill-php skill-wordpress
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
_model: project-idea
2+
---
3+
_hidden: yes
4+
---
5+
title: Licenses Machine Readable Information
6+
---
7+
problem:
8+
The Creative Commons licenses consist of three layers: 1) Legal code, 2) Human
9+
readable deeds, 3) Machine readable (API and RDF). The new license
10+
infrastructure does not yet generate the third layer: machine readable data.
11+
---
12+
expected_outcome:
13+
Extend the new license infrastructure to generate machine readable licenses
14+
information. This project is an opportunity to empower applications,
15+
communities, and projects that wish to make the Creative Commons licenses
16+
available to their users.
17+
---
18+
internship_tasks:
19+
The intern will be expected to:
20+
- Comprehend legacy machine readable licenses information
21+
- Extend new license infrastructure to achieve parity with legacy
22+
infrastructure
23+
- Research current RDF specifications
24+
- Make recommendations for modernizing and improving machine readable licenses
25+
information (ex. updated RDF syntax, JSON API)
26+
- Create initial versions of the recommendations
27+
---
28+
application_tips:
29+
This project appears simple (ingest data and generate XML), but there are many
30+
many important details and strict requirements. I expect the project will
31+
broadly have three phases: 1) mimicry, 2) research, and 3) innovation.
32+
Applications should:
33+
- be detail oriented
34+
- value simplicity over cleverness
35+
---
36+
resources:
37+
- **[Applicant Guide][appguide]**
38+
- [About The Licenses - Creative Commons][aboutlicenses]
39+
- [Describing Copyright in RDF - Creative Commons Rights Expression
40+
Language][rdfns]
41+
- [api.creativecommons.org — CC API v documentation][api]
42+
- [creativecommons/cc-licenses][licenses]
43+
- [creativecommons/cc-licenses-data][licensesdata]
44+
45+
[appguide]: /internships/applicant-guide/
46+
[aboutlicenses]: https://creativecommons.org/licenses/
47+
[rdfns]: https://creativecommons.org/ns/
48+
[api]: https://api.creativecommons.org/docs/
49+
[licenses]: https://github.com/creativecommons/cc-licenses
50+
[licensesdata]: https://github.com/creativecommons/cc-licenses-data
51+
---
52+
skills_recommended:
53+
- Django
54+
- Jinja2
55+
- Python
56+
- XML
57+
- YAML
58+
---
59+
mentors:
60+
- Abhishek Naidu
61+
- Nimish Bongale
62+
- Zack Krida
63+
---
64+
difficulty: High
65+
---
66+
filter_value: difficulty-high skill-python
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
_model: project-idea
2+
---
3+
_hidden: yes
4+
---
5+
title: Vocabulary - Performance Improvements
6+
---
7+
problem:
8+
[Vocabulary][vocabulary] currently has some performance issues, related to:
9+
- File size of CSS files
10+
- Runtime loading cascade (importing Vocabulary from the CDN then loads
11+
additional stylesheets and font files in sequence, instead of in parallel).
12+
We need to eliminate this waterfall.
13+
14+
Performance can also be further improved via documentation, and sharing best
15+
practices for implementing vocabulary with consumers:
16+
- Guidelines and suggestions for using [purgecss][purgecss] with Vocabulary
17+
- Instructions on how/and what to prefetch or preload (with copy-pastable meta
18+
tags) (see: [Preload, prefetch and other link tags | CSS-Tricks][csstricks])
19+
- Create tooling so that these performance improvements can be maintained over
20+
time. Some ideas:
21+
- Filesize monitoring via GitHub actions: [ampproject/filesize][filesize]
22+
- Add linting rules for Sass files [sds/scss-lint][scsslint]
23+
24+
[vocabulary]: https://github.com/creativecommons/vocabulary/
25+
[purgecss]: https://github.com/FullHuman/purgecss
26+
[csstricks]: https://css-tricks.com/preload-prefetch-and-other-link-tags/
27+
[filesize]: https://github.com/ampproject/filesize
28+
[scsslint]: https://github.com/sds/scss-lint
29+
---
30+
expected_outcome:
31+
This work will have a strong and measurable impact on all sites using CC
32+
Vocabulary. The current live sites using vocabulary are:
33+
- https://chooser-beta.creativecommons.org/
34+
- https://opensource.creativecommons.org/
35+
- https://search.creativecommons.org/
36+
- https://summit.creativecommons.org/
37+
38+
We will be updating more CC websites to use Vocabulary in Q1 of this year.
39+
These changes will be quantifiable by measuring changes in page size (measured
40+
in kilobytes), and reduced load times on the Google-defined metrics "[core web
41+
vitals][corewebvitals]": Largest Contentful Paint (LCP), First Input Delay
42+
(FID), and Cumulative Layout Shift (CLS).
43+
44+
[corewebvitals]: https://web.dev/vitals/
45+
---
46+
internship_tasks:
47+
- Audit the current performance issues
48+
- Rewrite and modify CSS files and the build pipeline
49+
---
50+
application_tips:
51+
Applying interns should do some basic performance analysis of some existing CC
52+
web properties using Vocabulary. They should also outline how they intend to
53+
measure the results of their work, taking special care to capture as much
54+
relevant initial data and reporting *before* their changes are implemented as
55+
possible.
56+
57+
This project requires proficiency in CSS/Sass and optionally an understanding
58+
of front-end build tooling with NPM. Some JavaScript may likely be useful as
59+
well. This is a great opportunity for a developer to learn about front-end
60+
performance profiling, "modern" web performance metrics, and many native HTML
61+
APIs and specifications for dealing with asset loading.
62+
---
63+
resources:
64+
- **[Applicant Guide][appguide]**
65+
- [creativecommons/vocabulary][vocabulary]: A cohesive design system & Vue
66+
component library to unify the web-facing Creative Commons
67+
- [Web Vitals][webvitals]
68+
- [Best practices for measuring Web Vitals in the field][bestpractices]
69+
- [PurgeCSS - Remove unused CSS][purgecssdocs]
70+
- [how and why to avoid css @import statements in stylesheets on your
71+
websites - lost saloon][avoidimports]
72+
73+
[appguide]: /internships/applicant-guide/
74+
[vocabulary]: https://github.com/creativecommons/vocabulary/
75+
[webvitals]: https://web.dev/vitals/
76+
[bestpractices]: https://web.dev/vitals-field-measurement-best-practices/
77+
[purgecssdocs]: https://purgecss.com/
78+
[avoidimports]: https://www.lostsaloon.com/technology/how-to-avoid-css-import-statements-in-stylesheets-to-improve-seo/
79+
---
80+
skills_recommended:
81+
- CSS
82+
- CSS Preprocessors (Sass)
83+
- JavaScript (optional)
84+
---
85+
mentors:
86+
- Abhishek Naidu
87+
- Nimish Bongale
88+
- Zack Krida
89+
---
90+
difficulty: Medium
91+
---
92+
filter_value: difficulty-medium skill-css skill-javascript
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
_model: project-idea
2+
---
3+
_hidden: yes
4+
---
5+
title: Vocabulary - Remove dependency on Bulma
6+
---
7+
problem:
8+
[Vocabulary][vocabulary] is currently written on top of an existing CSS
9+
library, [Bulma][bulma]. There are a few problems with Bulma: naming
10+
inconsistencies that confuse developers; difficulty in overriding its existing
11+
classes; the large file size, and the more general maintenance burden of
12+
relying on a third party library as the base for our design system.
13+
14+
[vocabulary]: https://github.com/creativecommons/vocabulary/
15+
[bulma]: https://bulma.io/
16+
---
17+
expected_outcome:
18+
This work would have benefits to performance, and would need to be coordinated
19+
with the performance improvements project, but would also benefit the developer
20+
experience and ease of use for Vocabulary. Users will no longer need to jump
21+
between Bulma’s documentation and Vocabulary’s, and the entire codebase will be
22+
colocated and easier to navigate.
23+
---
24+
internship_tasks:
25+
The intern will need to assess existing web properties and figma designs to
26+
determine which CSS classes from Bulma need to be replicated and integrated
27+
into Vocabulary. This also means keeping track of what Bulma features can be
28+
ignored. Initially, any Bulma features we’re not using should be kept; they can
29+
either be re-implemented manually or their code can be copied directly into
30+
vocabulary. Later, once our vocabulary sites have migrated to the new version
31+
of Vocabulary without Bulma, we can look at deprecating and removing some of
32+
these features.
33+
34+
This intern will need to follow consistent naming conventions and CSS
35+
architectural style ([Block Element Modifier {BEM}][bem], utility classes,
36+
etc.) to ease the burden of this change for users.
37+
38+
Finally, the intern will need to document how to migrate to the version of
39+
Vocabulary that makes these changes live, with clear explanations of what code
40+
is deprecated, new, or modified.
41+
42+
[bem]: http://getbem.com/introduction/
43+
---
44+
application_tips:
45+
The intern should outline a plan to audit and access existing Vocabulary
46+
implementations and develop a plan to migrate away from Bulma.
47+
---
48+
resources:
49+
- **[Applicant Guide][appguide]**
50+
- [creativecommons/vocabulary][vocabulary]: A cohesive design system & Vue
51+
component library to unify the web-facing Creative Commons
52+
- [Vocabulary Storybook][storybook]
53+
- [Bulma][bulma]: Free, open source, and modern CSS framework based on Flexbox
54+
- [CSS Code Coverage Tool - Chrome DevTools - Dev Tips][csscoverage]
55+
56+
[appguide]: /internships/applicant-guide/
57+
[vocabulary]: https://github.com/creativecommons/vocabulary/
58+
[storybook]: https://cc-vocabulary.netlify.app/
59+
[bulma]: https://bulma.io/
60+
[csscoverage]: https://umaar.com/dev-tips/121-css-coverage/
61+
---
62+
skills_recommended:
63+
- CSS/Sass
64+
- JavaScript
65+
- NPM
66+
---
67+
mentors:
68+
- Abhishek Naidu
69+
- Nimish Bongale
70+
- Zack Krida
71+
---
72+
difficulty: High
73+
---
74+
filter_value: difficulty-high skill-css skill-javascript
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
_model: project-idea
2+
---
3+
_hidden: yes
4+
---
5+
title: WordPress - Remove Queulat dependency
6+
---
7+
problem:
8+
Queulat is a very good toolset to create forms, metaboxes, and custom post
9+
types but it lacks documentation and it could be a problem for the future. We
10+
may need to find an alternative to this.
11+
---
12+
expected_outcome:
13+
The project would consider a couple of alternatives to completely remove
14+
Queulat from the repos that are currently using it.
15+
---
16+
internship_tasks:
17+
The intern will be expected to:
18+
- Research about alternatives to this
19+
- Implement an alternatives in one of the WordPress theme repositories listed
20+
under Resources, below
21+
---
22+
application_tips:
23+
The intern is expected to outline a plan to remove this dependency as well as
24+
the research about the possible alternatives.
25+
---
26+
resources:
27+
- **[Applicant Guide][appguide]**
28+
- [felipelavinz/queulat][queulat]: Development toolkit for WordPress
29+
- [creativecommons/creativecommons-base][base]: Base WordPress theme for
30+
Creative Commons websites.
31+
- [creativecommons/creativecommons-certificate][certificate]: WordPress theme
32+
for the CC Certificate Website
33+
- [creativecommons/wp-theme-cc-chapter][chapter]: Creative Commons Chapter site
34+
theme (including chapter sites setup, taxonomies, and widget code)
35+
- [creativecommons/wp-theme-cc-commoners][commoners]
36+
- [creativecommons/wp-theme-summit][summit]
37+
38+
[appguide]: /internships/applicant-guide/
39+
[queulat]: https://github.com/felipelavinz/queulat
40+
[base]: https://github.com/creativecommons/creativecommons-base
41+
[certificate]: https://github.com/creativecommons/creativecommons-certificate
42+
[chapter]: https://github.com/creativecommons/wp-theme-cc-chapter
43+
[commoners]: https://github.com/creativecommons/wp-theme-cc-commoners
44+
[summit]: https://github.com/creativecommons/wp-theme-summit
45+
---
46+
skills_recommended:
47+
- PHP
48+
- WordPress
49+
---
50+
mentors:
51+
- Hugo
52+
---
53+
difficulty: High
54+
---
55+
filter_value: difficulty-high skill-php skill-wordpress

themes/vocabulary_theme/templates/project-ideas.html

+4-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ <h1>Open Source Internships: Project Ideas</h1>
2828
<button type="button" class="button tag filter-btn" data-filter="skill-javascript">
2929
Skill: JavaScript
3030
</button>
31+
<button type="button" class="button tag filter-btn" data-filter="skill-php">
32+
Skill: PHP
33+
</button>
3134
<button type="button" class="button tag filter-btn" data-filter="skill-python">
3235
Skill: Python
3336
</button>
@@ -74,7 +77,7 @@ <h5 class="b-header padding-bottom-small">Difficulty</h5>
7477
<p class="padding-bottom-big">{{ idea.difficulty }}</p>
7578
<h5 class="b-header padding-bottom-small">Skills recommended</h5>
7679
{{ idea.skills_recommended }}
77-
<h5 class="b-header padding-bottom-small padding-top-big">Mentors</h5>
80+
<h5 class="b-header padding-bottom-small padding-top-big">Mentor pool</h5>
7881
{{ idea.mentors }}
7982
</div>
8083
<div class="column is-three-quarters">

webpack/js/ideas.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ $(document).ready(function(){
1717
'difficulty-easy',
1818
'difficulty-medium',
1919
'difficulty-hard',
20+
'skill-css',
2021
'skill-javascript',
22+
'skill-php',
2123
'skill-python',
2224
'skill-wordpress',
2325
'skill-writing'
@@ -92,4 +94,4 @@ $(document).ready(function(){
9294
toggleBtn($(this));
9395
return showIdeas(selected);
9496
});
95-
});
97+
});

0 commit comments

Comments
 (0)