Skip to content

Commit

Permalink
Synchronized build
Browse files Browse the repository at this point in the history
  • Loading branch information
lektor-bot committed Sep 6, 2024
1 parent c29ce57 commit 3d1a859
Showing 1 changed file with 40 additions and 282 deletions.
322 changes: 40 additions & 282 deletions programs/project-ideas/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -267,41 +267,11 @@ <h1>Open Source Work Programs: Project Ideas</h1>
</div>
<div class="project-ideas columns is-multiline">

<div class="column is-one-quarter filter filter-label difficulty-medium skill-git skill-github-actions skill-python">
<a href="#automating-quantifying-the-commons">
<div class="column is-one-quarter filter filter-label difficulty-medium skill-django skill-git skill-javascript skill-html skill-css skill-lektor">
<a href="#conslidate-implement-vocabulary-design-system-across-websites">
<article class="card entry-post horizontal">
<div class="card-content">
<h5 class="card-title">Automating Quantifying the Commons</h5>
</div>
</article>
</a>
</div>

<div class="column is-one-quarter filter filter-label difficulty-medium skill-ansible skill-debian skill-docker skill-git">
<a href="#ansible-dev-env">
<article class="card entry-post horizontal">
<div class="card-content">
<h5 class="card-title">Create local Ansible Dev environment using Docker</h5>
</div>
</article>
</a>
</div>

<div class="column is-one-quarter filter filter-label difficulty-hard skill-css skill-docker skill-git skill-javascript skill-php skill-wordpress">
<a href="#media-attribution-wp-plugin">
<article class="card entry-post horizontal">
<div class="card-content">
<h5 class="card-title">Create Media Attribution and License Plugin for WordPress</h5>
</div>
</article>
</a>
</div>

<div class="column is-one-quarter filter filter-label difficulty-medium skill-git skill-javascript skill-jekyll skill-html skill-css">
<a href="#modernize-cc-resource-archive">
<article class="card entry-post horizontal">
<div class="card-content">
<h5 class="card-title">Modernize CC Resource Archive</h5>
<h5 class="card-title">Consolidate and implement Vocabulary design system across ancillary</h5>
</div>
</article>
</a>
Expand All @@ -322,247 +292,21 @@ <h5 class="card-title">Original Ideas</h5>
<div class="body container">

<div class="project-idea">
<h2><a class="has-color-dark-slate-gray" name="automating-quantifying-the-commons">Automating Quantifying the Commons</a></h2>
<div class="columns">
<div class="column is-one-quarter">
<h5 class="b-header padding-bottom-small">Difficulty</h5>
<p class="padding-bottom-big">Medium</p>
<h5 class="b-header padding-bottom-small">Size</h5>
<p class="padding-bottom-big">Large (~350 hours, ~12 weeks)</p>
<h5 class="b-header padding-bottom-small">Skills recommended</h5>
<ul>
<li>Git</li>
<li>GitHub Actions</li>
<li>Python</li>
</ul>

<h5 class="b-header padding-bottom-small padding-top-big">Project Lead</h5>
<ul>
<li>Timid Robot</li>
</ul>

</div>
<div class="column is-three-quarters">
<h3 class="padding-bottom-big">The Problem</h3>
<p><p>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.</p>
</p>
<h3 class="padding-bottom-big padding-top-large">Expected Outcome</h3>
<p><p>Add automation of data gathering and report generation so that our reports
quantifying the commons are never more than 3 months out of date.</p>
</p>
<h3 class="padding-bottom-big padding-top-large">Contributor Tasks</h3>
<p><p>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.</p>
</p>
<h3 class="padding-bottom-big padding-top-large">Application Tips</h3>
<p><ul>
<li>Engage with the repository (issues, pull requests)</li>
<li>Be helpful and welcoming (e.g. answer other contributors’ questions on Slack)</li>
<li><a href="/programs/applicant-guide/">Applicant Guide</a></li>
</ul>
</p>
<h3 class="padding-bottom-big padding-top-large">Resources</h3>
<p><ul>
<li><a href="https://github.com/creativecommons/quantifying">creativecommons/quantifying</a>:
Quantifying the Commons</li>
<li><a href="https://github.com/creativecommons/quantifying/issues/22">[Feature] Automate Data Gathering and Analysis/Rendering · Issue
#22</a></li>
</ul>
</p>
</div>
</div>
<a href="#project-list" class="back-to-list"><i class="icon angle-up"></i> Back to the Project list</a>
</div>

<div class="project-idea">
<h2><a class="has-color-dark-slate-gray" name="ansible-dev-env">Create local Ansible Dev environment using Docker</a></h2>
<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>
<div class="columns">
<div class="column is-one-quarter">
<h5 class="b-header padding-bottom-small">Difficulty</h5>
<p class="padding-bottom-big">Medium</p>
<h5 class="b-header padding-bottom-small">Size</h5>
<p class="padding-bottom-big">Large (~350 hours, ~12 weeks)</p>
<h5 class="b-header padding-bottom-small">Skills recommended</h5>
<ul>
<li>Ansible</li>
<li>Debian</li>
<li>Docker</li>
<li>Git</li>
</ul>

<h5 class="b-header padding-bottom-small padding-top-big">Project Lead</h5>
<ul>
<li>Shafiya</li>
</ul>

</div>
<div class="column is-three-quarters">
<h3 class="padding-bottom-big">The Problem</h3>
<p><p>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.</p>
</p>
<h3 class="padding-bottom-big padding-top-large">Expected Outcome</h3>
<p><p>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.</p>
<p>Docker containers:</p>
<ul>
<li>Bastion (SSH jump server)</li>
<li>Ansible</li>
<li>Web server (Apache2/WordPress)</li>
<li>Database server (MariaDB)</li>
</ul>
</p>
<h3 class="padding-bottom-big padding-top-large">Contributor Tasks</h3>
<p><p>Contributor will:</p>
<ul>
<li>Set up Docker containers for the Bastion server, Ansible server, Web server,
and Database server.</li>
<li>Implement a secure system for managing and using secrets<ul>
<li>Set up a secure storage solution for managing secrets, such as Ansible Vault</li>
<li>It is recommended to inject secrets into containers at runtime as needed,
and not stored within container images.</li>
</ul>
</li>
<li>Configure Ansible playbooks for deploying the web application and interact
with the database.</li>
<li>Document the setup process</li>
</ul>
</p>
<h3 class="padding-bottom-big padding-top-large">Application Tips</h3>
<p><ul>
<li>Engage with the repository (issues, pull requests)</li>
<li>Be helpful and welcoming (e.g. answer other contributors’ questions on Slack)</li>
<li><a href="/programs/applicant-guide/">Applicant Guide</a></li>
</ul>
</p>
<h3 class="padding-bottom-big padding-top-large">Resources</h3>
<p><ul>
<li><a href="https://github.com/creativecommons/ansible-dev">creativecommons/ansible-dev</a> Ansible development environment. </li>
<li><a href="https://docs.ansible.com/">Ansible Documentation</a></li>
<li><a href="https://wiki.debian.org/FrontPage">FrontPage - Debian Wiki</a></li>
<li><a href="https://docs.docker.com/">Docker Docs</a></li>
<li><a href="https://github.com/creativecommons/sre-salt-prime">creativecommons/sre-salt-prime</a>: Site Reliability Engineering / DevOps SaltStack configuration files</li>
</ul>
</p>
</div>
</div>
<a href="#project-list" class="back-to-list"><i class="icon angle-up"></i> Back to the Project list</a>
</div>

<div class="project-idea">
<h2><a class="has-color-dark-slate-gray" name="media-attribution-wp-plugin">Create Media Attribution and License Plugin for WordPress</a></h2>
<div class="columns">
<div class="column is-one-quarter">
<h5 class="b-header padding-bottom-small">Difficulty</h5>
<p class="padding-bottom-big">Hard</p>
<h5 class="b-header padding-bottom-small">Size</h5>
<p class="padding-bottom-big">Large (~350 hours, ~12 weeks)</p>
<p class="padding-bottom-big">Large (~350 hours)</p>
<h5 class="b-header padding-bottom-small">Skills recommended</h5>
<ul>
<li>CSS</li>
<li>Docker</li>
<li>Django</li>
<li>Git</li>
<li>HTML</li>
<li>JavaScript</li>
<li>PHP</li>
<li>WordPress (including Classic Editor, Gutenberg Editor/React.js, Plugins, and
Themes)</li>
</ul>

<h5 class="b-header padding-bottom-small padding-top-big">Project Lead</h5>
<ul>
<li>Sara</li>
</ul>

</div>
<div class="column is-three-quarters">
<h3 class="padding-bottom-big">The Problem</h3>
<p><p>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.</p>
</p>
<h3 class="padding-bottom-big padding-top-large">Expected Outcome</h3>
<p><p>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.</p>
</p>
<h3 class="padding-bottom-big padding-top-large">Contributor Tasks</h3>
<p><p>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:</p>
<ul>
<li>through the Media Library directly</li>
<li>through the TinyMCE editor “Add Media” button when utilizing the Classic
Editor</li>
<li>when adding an image to a “featured image” or similar field in the Classic
Editor</li>
<li>through any Gutenberg editor block that utilizes an image/file attachment
mechanism.</li>
</ul>
<p>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.</p>
</p>
<h3 class="padding-bottom-big padding-top-large">Application Tips</h3>
<p><ul>
<li>Engage with the CC Legal Tools repositories (issues, pull requests)</li>
<li>Be helpful and welcoming (e.g. answer other contributors’ questions on Slack)</li>
<li><a href="/programs/applicant-guide/">Applicant Guide</a></li>
</ul>
</p>
<h3 class="padding-bottom-big padding-top-large">Resources</h3>
<p><ul>
<li><a href="https://wiki.creativecommons.org/wiki/Recommended_practices_for_attribution">CC Attribution Guidelines</a></li>
<li><a href="https://creativecommons.org/share-your-work/cclicenses/">CC Licenses</a></li>
<li><a href="https://codex.wordpress.org/TinyMCE">Classic Editor + TinyMCE</a></li>
<li><a href="https://www.docker.com/">Docker</a></li>
<li><a href="https://github.com/creativecommons/vocabulary-theme?tab=readme-ov-file#docker-containers">Docker in vocabulary-theme</a></li>
<li><a href="https://developer.wordpress.org/block-editor/explanations/architecture/key-concepts/">Gutenberg</a></li>
<li><a href="https://developer.wordpress.org/plugins/intro/">WordPress Plugin Development</a></li>
<li><a href="https://codex.wordpress.org/Theme_Development">WordPress Theme Development</a></li>
</ul>
</p>
</div>
</div>
<a href="#project-list" class="back-to-list"><i class="icon angle-up"></i> Back to the Project list</a>
</div>

<div class="project-idea">
<h2><a class="has-color-dark-slate-gray" name="modernize-cc-resource-archive">Modernize CC Resource Archive</a></h2>
<div class="columns">
<div class="column is-one-quarter">
<h5 class="b-header padding-bottom-small">Difficulty</h5>
<p class="padding-bottom-big">Medium</p>
<h5 class="b-header padding-bottom-small">Size</h5>
<p class="padding-bottom-big">Large (~350 hours, ~12 weeks)</p>
<h5 class="b-header padding-bottom-small">Skills recommended</h5>
<ul>
<li>Git</li>
<li>JavaScript</li>
<li>Jekyll</li>
<li>HTML (Semantic &amp; Accessible)</li>
<li>CSS (Structured &amp; Accessible)</li>
<li>Lektor</li>
</ul>

<h5 class="b-header padding-bottom-small padding-top-big">Project Lead</h5>
Expand All @@ -573,38 +317,52 @@ <h5 class="b-header padding-bottom-small padding-top-big">Project Lead</h5>
</div>
<div class="column is-three-quarters">
<h3 class="padding-bottom-big">The Problem</h3>
<p><p>The Resources Archive has an outdated visual setup, and needs functionality
fixes and improvements.</p>
<p><p>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.</p>
</p>
<h3 class="padding-bottom-big padding-top-large">Expected Outcome</h3>
<p><p>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.</p>
<p><p>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.</p>
</p>
<h3 class="padding-bottom-big padding-top-large">Contributor Tasks</h3>
<p><p>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.</p>
<p><p>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.</p>
</p>
<h3 class="padding-bottom-big padding-top-large">Application Tips</h3>
<p><ul>
<li>Engage with the repository (issues, pull requests)</li>
<li>Engage with the ancillary sites and Vocabulary repositories (issues, pull requests)</li>
<li>Be helpful and welcoming (e.g. answer other contributors’ questions on Slack)</li>
<li><a href="/programs/applicant-guide/">Applicant Guide</a></li>
</ul>
</p>
<h3 class="padding-bottom-big padding-top-large">Resources</h3>
<p><ul>
<li><a href="https://github.com/creativecommons/cc-resource-archive">creativecommons/cc-resource-archive</a>:
CC Resource Archive</li>
<li><a href="https://jekyllrb.com/">Jekyll</a>, <a href="https://www.getlektor.com/">Lektor</a>, or
<a href="https://getnikola.com/">Nikola</a></li>
<li><a href="https://pages.github.com/">GH Pages</a></li>
<li><a href="https://vocabulary-docs.netlify.app/">Vocabulary Docs</a></li>
<li><a href="https://github.com/creativecommons/vocabulary">Vocabulary Repository</a></li>
<li><a href="http://search.creativecommons.org">search.creativecommons.org</a></li>
<li><a href="https://github.com/creativecommons/search">Search Portal Repository</a></li>
<li><a href="http://resources.creativecommons.org">resources.creativecommons.org</a></li>
<li><a href="https://github.com/creativecommons/cc-resource-archive">Resources Archive Repository</a></li>
<li><a href="http://opensource.creativecommons.org">opensource.creativecommons.org</a></li>
<li><a href="https://github.com/creativecommons/creativecommons.github.io-source">Open Source Repository</a></li>
<li><a href="http://legaldb.creativecommons.org">legaldb.creativecommons.org</a></li>
<li><a href="https://github.com/creativecommons/legaldb">LegalDB Repository</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Glossary/Semantics">MDN Web Docs: Semantics</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/HTML">MDN Web Docs: HTML</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript">MDN Web Docs: JavaScript</a></li>
<li><a href="https://docs.djangoproject.com/en/5.1/">Django Docs</a></li>
<li><a href="https://www.getlektor.com/docs/">Lektor Docs</a></li>
</ul>
</p>
</div>
Expand Down

0 comments on commit 3d1a859

Please sign in to comment.