@@ -267,41 +267,11 @@ <h1>Open Source Work Programs: Project Ideas</h1>
267267 </ div >
268268 < div class ="project-ideas columns is-multiline ">
269269
270- < div class ="column is-one-quarter filter filter-label difficulty-medium skill-git skill-github-actions skill-python ">
271- < a href ="#automating-quantifying-the-commons ">
270+ < div class ="column is-one-quarter filter filter-label difficulty-medium skill-django skill- git skill-javascript skill-html skill-css skill-lektor ">
271+ < a href ="#conslidate-implement-vocabulary-design-system-across-websites ">
272272 < article class ="card entry-post horizontal ">
273273 < div class ="card-content ">
274- < h5 class ="card-title "> Automating Quantifying the Commons</ h5 >
275- </ div >
276- </ article >
277- </ a >
278- </ div >
279-
280- < div class ="column is-one-quarter filter filter-label difficulty-medium skill-ansible skill-debian skill-docker skill-git ">
281- < a href ="#ansible-dev-env ">
282- < article class ="card entry-post horizontal ">
283- < div class ="card-content ">
284- < h5 class ="card-title "> Create local Ansible Dev environment using Docker</ h5 >
285- </ div >
286- </ article >
287- </ a >
288- </ div >
289-
290- < div class ="column is-one-quarter filter filter-label difficulty-hard skill-css skill-docker skill-git skill-javascript skill-php skill-wordpress ">
291- < a href ="#media-attribution-wp-plugin ">
292- < article class ="card entry-post horizontal ">
293- < div class ="card-content ">
294- < h5 class ="card-title "> Create Media Attribution and License Plugin for WordPress</ h5 >
295- </ div >
296- </ article >
297- </ a >
298- </ div >
299-
300- < div class ="column is-one-quarter filter filter-label difficulty-medium skill-git skill-javascript skill-jekyll skill-html skill-css ">
301- < a href ="#modernize-cc-resource-archive ">
302- < article class ="card entry-post horizontal ">
303- < div class ="card-content ">
304- < h5 class ="card-title "> Modernize CC Resource Archive</ h5 >
274+ < h5 class ="card-title "> Consolidate and implement Vocabulary design system across ancillary</ h5 >
305275 </ div >
306276 </ article >
307277 </ a >
@@ -322,247 +292,21 @@ <h5 class="card-title">Original Ideas</h5>
322292 < div class ="body container ">
323293
324294 < div class ="project-idea ">
325- < h2 > < a class ="has-color-dark-slate-gray " name ="automating-quantifying-the-commons "> Automating Quantifying the Commons</ a > </ h2 >
326- < div class ="columns ">
327- < div class ="column is-one-quarter ">
328- < h5 class ="b-header padding-bottom-small "> Difficulty</ h5 >
329- < p class ="padding-bottom-big "> Medium</ p >
330- < h5 class ="b-header padding-bottom-small "> Size</ h5 >
331- < p class ="padding-bottom-big "> Large (~350 hours, ~12 weeks)</ p >
332- < h5 class ="b-header padding-bottom-small "> Skills recommended</ h5 >
333- < ul >
334- < li > Git</ li >
335- < li > GitHub Actions</ li >
336- < li > Python</ li >
337- </ ul >
338-
339- < h5 class ="b-header padding-bottom-small padding-top-big "> Project Lead</ h5 >
340- < ul >
341- < li > Timid Robot</ li >
342- </ ul >
343-
344- </ div >
345- < div class ="column is-three-quarters ">
346- < h3 class ="padding-bottom-big "> The Problem</ h3 >
347- < p > < p > The Quantifying the Commons project has seen excellent additions led by student
348- developers. However, the scope of previous projects did not include automation
349- or combined reporting.</ p >
350- </ p >
351- < h3 class ="padding-bottom-big padding-top-large "> Expected Outcome</ h3 >
352- < p > < p > Add automation of data gathering and report generation so that our reports
353- quantifying the commons are never more than 3 months out of date.</ p >
354- </ p >
355- < h3 class ="padding-bottom-big padding-top-large "> Contributor Tasks</ h3 >
356- < p > < p > The contributor will need to architect a data flow, formalize data formats,
357- automate data gathering, and automate reporting. Challenges include quota
358- limits that may require multi-day/multi-step data gathering, deciding on plain
359- text vs binary data formats, and secret management. Knowledge of numpy and
360- matplotlib python libraries will be very helpful.</ p >
361- </ p >
362- < h3 class ="padding-bottom-big padding-top-large "> Application Tips</ h3 >
363- < p > < ul >
364- < li > Engage with the repository (issues, pull requests)</ li >
365- < li > Be helpful and welcoming (e.g. answer other contributors’ questions on Slack)</ li >
366- < li > < a href ="/programs/applicant-guide/ "> Applicant Guide</ a > </ li >
367- </ ul >
368- </ p >
369- < h3 class ="padding-bottom-big padding-top-large "> Resources</ h3 >
370- < p > < ul >
371- < li > < a href ="https://github.com/creativecommons/quantifying "> creativecommons/quantifying</ a > :
372- Quantifying the Commons</ li >
373- < li > < a href ="https://github.com/creativecommons/quantifying/issues/22 "> [Feature] Automate Data Gathering and Analysis/Rendering · Issue
374- #22</ a > </ li >
375- </ ul >
376- </ p >
377- </ div >
378- </ div >
379- < a href ="#project-list " class ="back-to-list "> < i class ="icon angle-up "> </ i > Back to the Project list</ a >
380- </ div >
381-
382- < div class ="project-idea ">
383- < h2 > < a class ="has-color-dark-slate-gray " name ="ansible-dev-env "> Create local Ansible Dev environment using Docker</ a > </ h2 >
295+ < h2 > < a class ="has-color-dark-slate-gray " name ="conslidate-implement-vocabulary-design-system-across-websites "> Consolidate and implement Vocabulary design system across ancillary</ a > </ h2 >
384296 < div class ="columns ">
385297 < div class ="column is-one-quarter ">
386298 < h5 class ="b-header padding-bottom-small "> Difficulty</ h5 >
387299 < p class ="padding-bottom-big "> Medium</ p >
388300 < h5 class ="b-header padding-bottom-small "> Size</ h5 >
389- < p class ="padding-bottom-big "> Large (~350 hours, ~12 weeks)</ p >
390- < h5 class ="b-header padding-bottom-small "> Skills recommended</ h5 >
391- < ul >
392- < li > Ansible</ li >
393- < li > Debian</ li >
394- < li > Docker</ li >
395- < li > Git</ li >
396- </ ul >
397-
398- < h5 class ="b-header padding-bottom-small padding-top-big "> Project Lead</ h5 >
399- < ul >
400- < li > Shafiya</ li >
401- </ ul >
402-
403- </ div >
404- < div class ="column is-three-quarters ">
405- < h3 class ="padding-bottom-big "> The Problem</ h3 >
406- < p > < p > The enhancement of system architectures through the strategic transition from
407- SaltStack to Ansible for provisioning, coupled with the implementation of
408- Docker infrastructure, represents a significant step towards improved
409- efficiency and scalability.</ p >
410- </ p >
411- < h3 class ="padding-bottom-big padding-top-large "> Expected Outcome</ h3 >
412- < p > < p > The project's goal is to create a strong and local development setup using
413- Ansible and Docker. This setup will be like a real work environment, with a
414- special server for security (Bastion), automation with Ansible, a server for
415- websites, and a server for storing data. This setup will make developing things
416- easier and safer, and it will be a model for how we do similar projects at CC
417- in the future.</ p >
418- < p > Docker containers:</ p >
419- < ul >
420- < li > Bastion (SSH jump server)</ li >
421- < li > Ansible</ li >
422- < li > Web server (Apache2/WordPress)</ li >
423- < li > Database server (MariaDB)</ li >
424- </ ul >
425- </ p >
426- < h3 class ="padding-bottom-big padding-top-large "> Contributor Tasks</ h3 >
427- < p > < p > Contributor will:</ p >
428- < ul >
429- < li > Set up Docker containers for the Bastion server, Ansible server, Web server,
430- and Database server.</ li >
431- < li > Implement a secure system for managing and using secrets< ul >
432- < li > Set up a secure storage solution for managing secrets, such as Ansible Vault</ li >
433- < li > It is recommended to inject secrets into containers at runtime as needed,
434- and not stored within container images.</ li >
435- </ ul >
436- </ li >
437- < li > Configure Ansible playbooks for deploying the web application and interact
438- with the database.</ li >
439- < li > Document the setup process</ li >
440- </ ul >
441- </ p >
442- < h3 class ="padding-bottom-big padding-top-large "> Application Tips</ h3 >
443- < p > < ul >
444- < li > Engage with the repository (issues, pull requests)</ li >
445- < li > Be helpful and welcoming (e.g. answer other contributors’ questions on Slack)</ li >
446- < li > < a href ="/programs/applicant-guide/ "> Applicant Guide</ a > </ li >
447- </ ul >
448- </ p >
449- < h3 class ="padding-bottom-big padding-top-large "> Resources</ h3 >
450- < p > < ul >
451- < li > < a href ="https://github.com/creativecommons/ansible-dev "> creativecommons/ansible-dev</ a > Ansible development environment. </ li >
452- < li > < a href ="https://docs.ansible.com/ "> Ansible Documentation</ a > </ li >
453- < li > < a href ="https://wiki.debian.org/FrontPage "> FrontPage - Debian Wiki</ a > </ li >
454- < li > < a href ="https://docs.docker.com/ "> Docker Docs</ a > </ li >
455- < li > < a href ="https://github.com/creativecommons/sre-salt-prime "> creativecommons/sre-salt-prime</ a > : Site Reliability Engineering / DevOps SaltStack configuration files</ li >
456- </ ul >
457- </ p >
458- </ div >
459- </ div >
460- < a href ="#project-list " class ="back-to-list "> < i class ="icon angle-up "> </ i > Back to the Project list</ a >
461- </ div >
462-
463- < div class ="project-idea ">
464- < h2 > < a class ="has-color-dark-slate-gray " name ="media-attribution-wp-plugin "> Create Media Attribution and License Plugin for WordPress</ a > </ h2 >
465- < div class ="columns ">
466- < div class ="column is-one-quarter ">
467- < h5 class ="b-header padding-bottom-small "> Difficulty</ h5 >
468- < p class ="padding-bottom-big "> Hard</ p >
469- < h5 class ="b-header padding-bottom-small "> Size</ h5 >
470- < p class ="padding-bottom-big "> Large (~350 hours, ~12 weeks)</ p >
301+ < p class ="padding-bottom-big "> Large (~350 hours)</ p >
471302 < h5 class ="b-header padding-bottom-small "> Skills recommended</ h5 >
472303 < ul >
473304< li > CSS</ li >
474- < li > Docker </ li >
305+ < li > Django </ li >
475306< li > Git</ li >
476307< li > HTML</ li >
477308< li > JavaScript</ li >
478- < li > PHP</ li >
479- < li > WordPress (including Classic Editor, Gutenberg Editor/React.js, Plugins, and
480- Themes)</ li >
481- </ ul >
482-
483- < h5 class ="b-header padding-bottom-small padding-top-big "> Project Lead</ h5 >
484- < ul >
485- < li > Sara</ li >
486- </ ul >
487-
488- </ div >
489- < div class ="column is-three-quarters ">
490- < h3 class ="padding-bottom-big "> The Problem</ h3 >
491- < p > < p > The current existing Creative Commons WordPress plugin has feature drift and
492- technical debt that make it a challenge to sensibly expand/revise. At the core
493- of desired uses, this new WordPress plugin needs a reliable and succinct way to
494- add Attribution and Licensing information to a Media item within the Media
495- Library at initial upload. This modification/extension of the Media item’s
496- "meta field information" needs to be stable and clear enough to enable future
497- expansions in featureset into other areas of the WordPress backend interface.</ p >
498- </ p >
499- < h3 class ="padding-bottom-big padding-top-large "> Expected Outcome</ h3 >
500- < p > < p > Building from a strategy of simplistic and necessary structure and
501- functionality, a new plugin would be created that extends the fields for a
502- Media item to include License and Attribution information.</ p >
503- </ p >
504- < h3 class ="padding-bottom-big padding-top-large "> Contributor Tasks</ h3 >
505- < p > < p > Contributor will follow an approach that is simple to maintain, and possible to
506- extend in the future. Users can upload items in at least four ways, and ideally
507- all four would be factored into this plugin:</ p >
508- < ul >
509- < li > through the Media Library directly</ li >
510- < li > through the TinyMCE editor “Add Media” button when utilizing the Classic
511- Editor</ li >
512- < li > when adding an image to a “featured image” or similar field in the Classic
513- Editor</ li >
514- < li > through any Gutenberg editor block that utilizes an image/file attachment
515- mechanism.</ li >
516- </ ul >
517- < p > Each of these routes should have the ability to input and modify this
518- additional meta field information about the item. The plugin should utilize
519- well structured PHP generally. More specifically when solving for Gutenberg
520- and/or TinyMCE adequate and sensible choices in JavaScript should be utilized.
521- All code should be well documented, and specific code interacting with the
522- Classic editor vs. Gutenberg editor contexts should be well compartmentalized.
523- The Contributor will also set up a custom Docker configuration in accordance
524- with other WP + Docker setups utilized by CC, specifically for the build and
525- testing of the plugin.</ p >
526- </ p >
527- < h3 class ="padding-bottom-big padding-top-large "> Application Tips</ h3 >
528- < p > < ul >
529- < li > Engage with the CC Legal Tools repositories (issues, pull requests)</ li >
530- < li > Be helpful and welcoming (e.g. answer other contributors’ questions on Slack)</ li >
531- < li > < a href ="/programs/applicant-guide/ "> Applicant Guide</ a > </ li >
532- </ ul >
533- </ p >
534- < h3 class ="padding-bottom-big padding-top-large "> Resources</ h3 >
535- < p > < ul >
536- < li > < a href ="https://wiki.creativecommons.org/wiki/Recommended_practices_for_attribution "> CC Attribution Guidelines</ a > </ li >
537- < li > < a href ="https://creativecommons.org/share-your-work/cclicenses/ "> CC Licenses</ a > </ li >
538- < li > < a href ="https://codex.wordpress.org/TinyMCE "> Classic Editor + TinyMCE</ a > </ li >
539- < li > < a href ="https://www.docker.com/ "> Docker</ a > </ li >
540- < li > < a href ="https://github.com/creativecommons/vocabulary-theme?tab=readme-ov-file#docker-containers "> Docker in vocabulary-theme</ a > </ li >
541- < li > < a href ="https://developer.wordpress.org/block-editor/explanations/architecture/key-concepts/ "> Gutenberg</ a > </ li >
542- < li > < a href ="https://developer.wordpress.org/plugins/intro/ "> WordPress Plugin Development</ a > </ li >
543- < li > < a href ="https://codex.wordpress.org/Theme_Development "> WordPress Theme Development</ a > </ li >
544- </ ul >
545- </ p >
546- </ div >
547- </ div >
548- < a href ="#project-list " class ="back-to-list "> < i class ="icon angle-up "> </ i > Back to the Project list</ a >
549- </ div >
550-
551- < div class ="project-idea ">
552- < h2 > < a class ="has-color-dark-slate-gray " name ="modernize-cc-resource-archive "> Modernize CC Resource Archive</ a > </ h2 >
553- < div class ="columns ">
554- < div class ="column is-one-quarter ">
555- < h5 class ="b-header padding-bottom-small "> Difficulty</ h5 >
556- < p class ="padding-bottom-big "> Medium</ p >
557- < h5 class ="b-header padding-bottom-small "> Size</ h5 >
558- < p class ="padding-bottom-big "> Large (~350 hours, ~12 weeks)</ p >
559- < h5 class ="b-header padding-bottom-small "> Skills recommended</ h5 >
560- < ul >
561- < li > Git</ li >
562- < li > JavaScript</ li >
563- < li > Jekyll</ li >
564- < li > HTML (Semantic & Accessible)</ li >
565- < li > CSS (Structured & Accessible)</ li >
309+ < li > Lektor</ li >
566310</ ul >
567311
568312 < h5 class ="b-header padding-bottom-small padding-top-big "> Project Lead</ h5 >
@@ -573,38 +317,52 @@ <h5 class="b-header padding-bottom-small padding-top-big">Project Lead</h5>
573317 </ div >
574318 < div class ="column is-three-quarters ">
575319 < h3 class ="padding-bottom-big "> The Problem</ h3 >
576- < p > < p > The Resources Archive has an outdated visual setup, and needs functionality
577- fixes and improvements.</ p >
320+ < p > < p > The new design system, Vocabulary, has been implemented to varying degrees
321+ across several Creative Commons web entities, versioning and features do not
322+ have full parity and each implementation merits a further investigation,
323+ course correction, expansion, and cleanup.</ p >
578324</ p >
579325 < h3 class ="padding-bottom-big padding-top-large "> Expected Outcome</ h3 >
580- < p > < p > Upgrade the look and feel to match current CC aesthetics, using the internal
581- Design System (Vocabulary). Codebase is running current and standards compliant
582- technology implementations. Entire site builds as static files on GitHub Pages.
583- Generate clear documentation of codebase and functionality.</ p >
326+ < p > < p > Ancillary CC websites implement the current versions and features of the latest
327+ Vocabulary codebase in a consistent and stable manner. Necessary new features
328+ are identified, built, and implemented upstream into Vocabulary itself where
329+ relevant, localized features are implemented into the codebase of each project
330+ where necessary.</ p >
584331</ p >
585332 < h3 class ="padding-bottom-big padding-top-large "> Contributor Tasks</ h3 >
586- < p > < p > Contributor will refactor codebase to fix resource submission, use current
587- semantic, accessible, and standards compliant HTML, CSS, and JavaScript to
588- match the current visual aesthetic of Creative Commons sites. Improve the
589- overall UX for finding, submitting, and accessing resources. Ensure the site
590- functions as a static and stable site hosted on GitHub Pages. Final
591- implementation will have clear documentation drafted within the codebase for
592- future maintainability.</ p >
333+ < p > < p > Identify and catalog features present on current sites, but missing within
334+ Vocabulary. Document migration paths between conflicting or missing UX patterns.
335+ Rewrite and/or refactor the codebase of each ancillary site, maintaining its
336+ original function, while implementing the Vocabulary design system; migrating
337+ implementations from NPM dependency chains to more simplistic static code, where
338+ needed; building out new features as necessary locally or within the Vocabulary
339+ codebase itself. Using simple, standards-compliant, and accessible HTML, CSS,
340+ and minimal JavaScript.</ p >
593341</ p >
594342 < h3 class ="padding-bottom-big padding-top-large "> Application Tips</ h3 >
595343 < p > < ul >
596- < li > Engage with the repository (issues, pull requests)</ li >
344+ < li > Engage with the ancillary sites and Vocabulary repositories (issues, pull requests)</ li >
597345< li > Be helpful and welcoming (e.g. answer other contributors’ questions on Slack)</ li >
598346< li > < a href ="/programs/applicant-guide/ "> Applicant Guide</ a > </ li >
599347</ ul >
600348</ p >
601349 < h3 class ="padding-bottom-big padding-top-large "> Resources</ h3 >
602350 < p > < ul >
603- < li > < a href ="https://github.com/creativecommons/cc-resource-archive "> creativecommons/cc-resource-archive</ a > :
604- CC Resource Archive</ li >
605- < li > < a href ="https://jekyllrb.com/ "> Jekyll</ a > , < a href ="https://www.getlektor.com/ "> Lektor</ a > , or
606- < a href ="https://getnikola.com/ "> Nikola</ a > </ li >
607- < li > < a href ="https://pages.github.com/ "> GH Pages</ a > </ li >
351+ < li > < a href ="https://vocabulary-docs.netlify.app/ "> Vocabulary Docs</ a > </ li >
352+ < li > < a href ="https://github.com/creativecommons/vocabulary "> Vocabulary Repository</ a > </ li >
353+ < li > < a href ="http://search.creativecommons.org "> search.creativecommons.org</ a > </ li >
354+ < li > < a href ="https://github.com/creativecommons/search "> Search Portal Repository</ a > </ li >
355+ < li > < a href ="http://resources.creativecommons.org "> resources.creativecommons.org</ a > </ li >
356+ < li > < a href ="https://github.com/creativecommons/cc-resource-archive "> Resources Archive Repository</ a > </ li >
357+ < li > < a href ="http://opensource.creativecommons.org "> opensource.creativecommons.org</ a > </ li >
358+ < li > < a href ="https://github.com/creativecommons/creativecommons.github.io-source "> Open Source Repository</ a > </ li >
359+ < li > < a href ="http://legaldb.creativecommons.org "> legaldb.creativecommons.org</ a > </ li >
360+ < li > < a href ="https://github.com/creativecommons/legaldb "> LegalDB Repository</ a > </ li >
361+ < li > < a href ="https://developer.mozilla.org/en-US/docs/Glossary/Semantics "> MDN Web Docs: Semantics</ a > </ li >
362+ < li > < a href ="https://developer.mozilla.org/en-US/docs/Web/HTML "> MDN Web Docs: HTML</ a > </ li >
363+ < li > < a href ="https://developer.mozilla.org/en-US/docs/Web/JavaScript "> MDN Web Docs: JavaScript</ a > </ li >
364+ < li > < a href ="https://docs.djangoproject.com/en/5.1/ "> Django Docs</ a > </ li >
365+ < li > < a href ="https://www.getlektor.com/docs/ "> Lektor Docs</ a > </ li >
608366</ ul >
609367</ p >
610368 </ div >
0 commit comments