diff --git a/programs/project-ideas/index.html b/programs/project-ideas/index.html index fa5ecc8ec..4d991acd8 100644 --- a/programs/project-ideas/index.html +++ b/programs/project-ideas/index.html @@ -267,41 +267,11 @@

Open Source Work Programs: Project Ideas

-
- + - - - - - -
- -
-
-
Modernize CC Resource Archive
+
Consolidate and implement Vocabulary design system across ancillary
@@ -322,247 +292,21 @@
Original Ideas
-

Automating Quantifying the Commons

-
-
-
Difficulty
-

Medium

-
Size
-

Large (~350 hours, ~12 weeks)

-
Skills recommended
-
    -
  • Git
  • -
  • GitHub Actions
  • -
  • Python
  • -
- -
Project Lead
-
    -
  • Timid Robot
  • -
- -
-
-

The Problem

-

The Quantifying the Commons project has seen excellent additions led by student -developers. However, the scope of previous projects did not include automation -or combined reporting.

-

-

Expected Outcome

-

Add automation of data gathering and report generation so that our reports -quantifying the commons are never more than 3 months out of date.

-

-

Contributor Tasks

-

The contributor will need to architect a data flow, formalize data formats, -automate data gathering, and automate reporting. Challenges include quota -limits that may require multi-day/multi-step data gathering, deciding on plain -text vs binary data formats, and secret management. Knowledge of numpy and -matplotlib python libraries will be very helpful.

-

-

Application Tips

-

    -
  • Engage with the repository (issues, pull requests)
  • -
  • Be helpful and welcoming (e.g. answer other contributors’ questions on Slack)
  • -
  • Applicant Guide
  • -
-

-

Resources

-

-

-
-
- Back to the Project list -
- -
-

Create local Ansible Dev environment using Docker

+

Consolidate and implement Vocabulary design system across ancillary

Difficulty

Medium

Size
-

Large (~350 hours, ~12 weeks)

-
Skills recommended
-
    -
  • Ansible
  • -
  • Debian
  • -
  • Docker
  • -
  • Git
  • -
- -
Project Lead
-
    -
  • Shafiya
  • -
- -
-
-

The Problem

-

The enhancement of system architectures through the strategic transition from -SaltStack to Ansible for provisioning, coupled with the implementation of -Docker infrastructure, represents a significant step towards improved -efficiency and scalability.

-

-

Expected Outcome

-

The project's goal is to create a strong and local development setup using -Ansible and Docker. This setup will be like a real work environment, with a -special server for security (Bastion), automation with Ansible, a server for -websites, and a server for storing data. This setup will make developing things -easier and safer, and it will be a model for how we do similar projects at CC -in the future.

-

Docker containers:

-
    -
  • Bastion (SSH jump server)
  • -
  • Ansible
  • -
  • Web server (Apache2/WordPress)
  • -
  • Database server (MariaDB)
  • -
-

-

Contributor Tasks

-

Contributor will:

-
    -
  • Set up Docker containers for the Bastion server, Ansible server, Web server, -and Database server.
  • -
  • Implement a secure system for managing and using secrets
      -
    • Set up a secure storage solution for managing secrets, such as Ansible Vault
    • -
    • It is recommended to inject secrets into containers at runtime as needed, -and not stored within container images.
    • -
    -
  • -
  • Configure Ansible playbooks for deploying the web application and interact -with the database.
  • -
  • Document the setup process
  • -
-

-

Application Tips

-

    -
  • Engage with the repository (issues, pull requests)
  • -
  • Be helpful and welcoming (e.g. answer other contributors’ questions on Slack)
  • -
  • Applicant Guide
  • -
-

-

Resources

-

-

-
-
- Back to the Project list -
- -
-

Create Media Attribution and License Plugin for WordPress

-
-
-
Difficulty
-

Hard

-
Size
-

Large (~350 hours, ~12 weeks)

+

Large (~350 hours)

Skills recommended
  • CSS
  • -
  • Docker
  • +
  • Django
  • Git
  • HTML
  • JavaScript
  • -
  • PHP
  • -
  • WordPress (including Classic Editor, Gutenberg Editor/React.js, Plugins, and -Themes)
  • -
- -
Project Lead
-
    -
  • Sara
  • -
- -
-
-

The Problem

-

The current existing Creative Commons WordPress plugin has feature drift and -technical debt that make it a challenge to sensibly expand/revise. At the core -of desired uses, this new WordPress plugin needs a reliable and succinct way to -add Attribution and Licensing information to a Media item within the Media -Library at initial upload. This modification/extension of the Media item’s -"meta field information" needs to be stable and clear enough to enable future -expansions in featureset into other areas of the WordPress backend interface.

-

-

Expected Outcome

-

Building from a strategy of simplistic and necessary structure and -functionality, a new plugin would be created that extends the fields for a -Media item to include License and Attribution information.

-

-

Contributor Tasks

-

Contributor will follow an approach that is simple to maintain, and possible to -extend in the future. Users can upload items in at least four ways, and ideally -all four would be factored into this plugin:

-
    -
  • through the Media Library directly
  • -
  • through the TinyMCE editor “Add Media” button when utilizing the Classic -Editor
  • -
  • when adding an image to a “featured image” or similar field in the Classic -Editor
  • -
  • through any Gutenberg editor block that utilizes an image/file attachment -mechanism.
  • -
-

Each of these routes should have the ability to input and modify this -additional meta field information about the item. The plugin should utilize -well structured PHP generally. More specifically when solving for Gutenberg -and/or TinyMCE adequate and sensible choices in JavaScript should be utilized. -All code should be well documented, and specific code interacting with the -Classic editor vs. Gutenberg editor contexts should be well compartmentalized. -The Contributor will also set up a custom Docker configuration in accordance -with other WP + Docker setups utilized by CC, specifically for the build and -testing of the plugin.

-

-

Application Tips

-

    -
  • Engage with the CC Legal Tools repositories (issues, pull requests)
  • -
  • Be helpful and welcoming (e.g. answer other contributors’ questions on Slack)
  • -
  • Applicant Guide
  • -
-

-

Resources

-

-

-
-
- Back to the Project list -
- -
-

Modernize CC Resource Archive

-
-
-
Difficulty
-

Medium

-
Size
-

Large (~350 hours, ~12 weeks)

-
Skills recommended
-
    -
  • Git
  • -
  • JavaScript
  • -
  • Jekyll
  • -
  • HTML (Semantic & Accessible)
  • -
  • CSS (Structured & Accessible)
  • +
  • Lektor
Project Lead
@@ -573,38 +317,52 @@
Project Lead

The Problem

-

The Resources Archive has an outdated visual setup, and needs functionality -fixes and improvements.

+

The new design system, Vocabulary, has been implemented to varying degrees +across several Creative Commons web entities, versioning and features do not +have full parity and each implementation merits a further investigation, +course correction, expansion, and cleanup.

Expected Outcome

-

Upgrade the look and feel to match current CC aesthetics, using the internal -Design System (Vocabulary). Codebase is running current and standards compliant -technology implementations. Entire site builds as static files on GitHub Pages. -Generate clear documentation of codebase and functionality.

+

Ancillary CC websites implement the current versions and features of the latest +Vocabulary codebase in a consistent and stable manner. Necessary new features +are identified, built, and implemented upstream into Vocabulary itself where +relevant, localized features are implemented into the codebase of each project +where necessary.

Contributor Tasks

-

Contributor will refactor codebase to fix resource submission, use current -semantic, accessible, and standards compliant HTML, CSS, and JavaScript to -match the current visual aesthetic of Creative Commons sites. Improve the -overall UX for finding, submitting, and accessing resources. Ensure the site -functions as a static and stable site hosted on GitHub Pages. Final -implementation will have clear documentation drafted within the codebase for -future maintainability.

+

Identify and catalog features present on current sites, but missing within +Vocabulary. Document migration paths between conflicting or missing UX patterns. +Rewrite and/or refactor the codebase of each ancillary site, maintaining its +original function, while implementing the Vocabulary design system; migrating +implementations from NPM dependency chains to more simplistic static code, where +needed; building out new features as necessary locally or within the Vocabulary +codebase itself. Using simple, standards-compliant, and accessible HTML, CSS, +and minimal JavaScript.

Application Tips

    -
  • Engage with the repository (issues, pull requests)
  • +
  • Engage with the ancillary sites and Vocabulary repositories (issues, pull requests)
  • Be helpful and welcoming (e.g. answer other contributors’ questions on Slack)
  • Applicant Guide

Resources