@@ -267,41 +267,11 @@ <h1>Open Source Work Programs: Project Ideas</h1>
267
267
</ div >
268
268
< div class ="project-ideas columns is-multiline ">
269
269
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 ">
272
272
< article class ="card entry-post horizontal ">
273
273
< 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 >
305
275
</ div >
306
276
</ article >
307
277
</ a >
@@ -322,247 +292,21 @@ <h5 class="card-title">Original Ideas</h5>
322
292
< div class ="body container ">
323
293
324
294
< 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 >
384
296
< div class ="columns ">
385
297
< div class ="column is-one-quarter ">
386
298
< h5 class ="b-header padding-bottom-small "> Difficulty</ h5 >
387
299
< p class ="padding-bottom-big "> Medium</ p >
388
300
< 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 >
471
302
< h5 class ="b-header padding-bottom-small "> Skills recommended</ h5 >
472
303
< ul >
473
304
< li > CSS</ li >
474
- < li > Docker </ li >
305
+ < li > Django </ li >
475
306
< li > Git</ li >
476
307
< li > HTML</ li >
477
308
< 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 >
566
310
</ ul >
567
311
568
312
< 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>
573
317
</ div >
574
318
< div class ="column is-three-quarters ">
575
319
< 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 >
578
324
</ p >
579
325
< 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 >
584
331
</ p >
585
332
< 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 >
593
341
</ p >
594
342
< h3 class ="padding-bottom-big padding-top-large "> Application Tips</ h3 >
595
343
< 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 >
597
345
< li > Be helpful and welcoming (e.g. answer other contributors’ questions on Slack)</ li >
598
346
< li > < a href ="/programs/applicant-guide/ "> Applicant Guide</ a > </ li >
599
347
</ ul >
600
348
</ p >
601
349
< h3 class ="padding-bottom-big padding-top-large "> Resources</ h3 >
602
350
< 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 >
608
366
</ ul >
609
367
</ p >
610
368
</ div >
0 commit comments