Skip to content

Discussion and Q&A of Outreachy + GSoC ideas 2021 #9257

@jywarren

Description

@jywarren

Hi all! We've completed our ideas list for Outreachy and Google Summer of Code 2021, and we are sharing it here for discussion. We often find that key info needs to be added or expanded upon to help people understand the projects, and are going to try discussing them all here (or in "breakout issues" if this gets too long) this year.

Remember that we have not yet been approved/confirmed for either program (as of March 2 2021) but in the interest of discussion and collaboration, we're posting this now. Thanks! 🤞

The official listing is at https://publiclab.org/wiki/gsoc-ideas#2021+Ideas and we'll leave that one as it is (as it's nice and short too, easy to browse).

By contrast, here, i'll post the full text, but we'll keep editing it and refining it as we go, based on your input.

Outreachy folks -- two of these projects -- the first two -- are posted for Outreachy. That means that if we get one or two Outreachy fellows, they will have priority to take those projects. However, it does happen that we have been able to accept more than one person per project. We hope this page will be helpful for ANYONE who wishes to build a project or proposal around these ideas. Thanks for being friendly, cooperative, and supportive to one another!

Also watch out for Welcome issues to go up in the coming days to ask folks to introduce themselves, and to otherwise offer support and info on the application and selection process.

Lastly, THANK YOU SO MUCH for your interest! We are so excited to have the chance to work with you! 🎉 🎉 🎉 🎉 🎉 🎉 🎉


Posting here so we can host a Q&A about our Summer of Code programs (Google Summer of Code and Outreachy), the project ideas for this upcoming season, and begin to refine the descriptions in more detail than we do on the formal listing at https://publiclab.org/gsoc-ideas

2021 Ideas

Education-related usability upgrades

Part of: https://github.com/publiclab/plots2

Description: Due to the growing community of educators using our PublicLab.org content management system, we are hoping to tackle a collection of systems, features, and fixes focused on educational users, and incorporating feedback from our community of educators. This project will include changes and fixes to our draft saving system, our coauthorship model, explanatory displays for complex systems like our geodata storage, modifications to our content moderation and spam filtering systems, and even changes to our username autocompletion scripts, all culminating in a smoother and more coherent system for educators across the US gulf coast who are working with students on environmental and environmental justice topics.

Tasks include:

List: https://gitter.im/publiclab/publiclab

Prerequisites: HTML/CSS, some JavaScript, some Ruby on Rails

Difficulty Level: easy

Potential mentors: Jeffrey Yoo Warren, Cess Wairimu, Sudipto Ghosh,ADD YOUR NAME HERE


Tag/topic system refinements

Part of: https://github.com/publiclab/plots2

Description: Our growing community has seen a major reorganization of content and activity around topic areas in the past year or two, and as this featureset has matured, we are looking to refine and improve it based on community input. This project would include the following:

List: https://gitter.im/publiclab/publiclab, https://gitter.im/publiclab/publiclab

Prerequisites: JavaScript, Ruby on Rails

Difficulty Level: medium

Potential mentors: Jeffrey Yoo Warren, Cess Wairimu, ADD YOUR NAME HERE


Geographic features refinements

Part of: https://github.com/publiclab/plots2

Description: Public Lab community members are increasingly sharing geographic context while sharing on the PL website. We have a robust geographic metadata system and site-wide prompts to add geotags. This project will focus on key optimizations and additions which will smooth and expand geographic features, including:

  • A “Spreadsheet to Layer” workflow using a GitHub issue template and/or bot to walk people through formatting a spreadsheet, inserting it into a JavaScript file, and opening a pull request to add the data to the Leaflet Environmental Layers library, which drives geo layers on the Public Lab site: https://github.com/publiclab/leaflet-environmental-layers
  • This may include: developing a static microsite on GitHub Pages where you can enter a Spreadsheet URL and it generates a code file for a Leaflet layer
  • It might also auto-generate tests for the new layer
  • Increase amount of content shown per page-view at /map - currently we show few users/pages per refresh; increase while monitoring server load
  • Possible solution: Develop a prototype micro-service to scrape the Public Lab API for geographic content and generate a bbox-queryable GeoJSON service, to display both people and pages, to replace direct API access at https://github.com/publiclab/leaflet-environmental-layers/blob/main/src/PLpeopleLayer.js
  • Ensure empty people grid squares don’t generate popups - following https://publiclab.org/location-privacy and https://github.com/publiclab/leaflet-blurred-location
  • Ensure grid squares with blurred locations are tinted
  • Develop ideas and prototypes for how to ensure “important” or expected content is surfaced
  • Ranking by recency, views - brainstorm with community reps
  • Add and refine environmental layers as part of the Leaflet Environmental Layers library
  • Improve load times by ensuring bbox and tbox optimization

List: https://gitter.im/publiclab/publiclab, https://gitter.im/publiclab/publiclab

Prerequisites: JavaScript, Node, Ruby on Rails

Difficulty Level: hard

Potential mentors: Jeffrey Yoo Warren, ADD YOUR NAME HERE


Translation system refinements

Part of: https://github.com/publiclab/plots2

Description: (This project may be combined with another small project) Our internationalization (i18n) system exists but lacks a consistent workflow for importing new translations, as well as suffering from some HTML parsing and UI shortcomings. This project will:

List: https://gitter.im/publiclab/publiclab, https://gitter.im/publiclab/publiclab

Prerequisites: JavaScript, Ruby on Rails

Difficulty Level: medium

Potential mentors: Jeffrey Yoo Warren, Cess, ADD YOUR NAME HERE


Legacy code deprecation

Part of: https://github.com/publiclab/plots2

Description: (This project may be combined with another small project) Our codebase retains a variety of old database models, code segments, and removing them is a delicate task involving correcting tests, restructuring the database, and more. This project will:

  • build on completed projects to continue the work of removing older legacy models and tables from our system
  • adjust or remove tests along with code removal
  • use Rails database migrations to remove unused tables
  • produce archival exports of data which we are deleting if necessary
  • merge and combine deprecated content types into standard ones; for example, Maps become Wiki pages
  • test out migrations in development environments and on our cloned copy of the production server, to ensure smooth deployment
  • increase code coverage as a result of reducing unused and untested code
  • deprecation projects listing is available at https://github.com/publiclab/plots2/milestone/24
  • read more at: Deprecate Drupal legacy database structures/naming #956

List: https://gitter.im/publiclab/publiclab, https://gitter.im/publiclab/publiclab

Prerequisites: JavaScript, Ruby on Rails

Difficulty Level: medium

Potential mentors: Jeffrey Yoo Warren, Cess, ADD YOUR NAME HERE


spectral-workbench.js JS/Rails integration

Part of: https://github.com/publiclab/spectral-workbench, https://github.com/publiclab/spectral-workbench.js

Description:
Our newly revamped and tested library at spectral-workbench.js was designed to work both on its own (https://github.com/publiclab/spectral-workbench.js/) or as a JavaScript component in a larger system, the spectralworkbench.org Rails application. Work on the standalone library is nearly complete and this project will take on the integration of the newly revamped and re-organized code into the parent Rails application, following a pattern shown at https://github.com/publiclab/inline-markdown-editor for housing a JS project within a Rails project. Parts of this project are already included for displaying saved and graphed data at pages like https://spectralworkbench.org/spectrums/205427 (see integration at https://github.com/publiclab/spectral-workbench/blob/98dbde7a881788f7bd48db59eee616d6de70054b/app/views/spectrums/show2.html.erb#L22-L29), but the new code will replace the live capture interface at https://spectralworkbench.org/capture/, and will need to be able to access the following server-side resources and routes:

  • fetching recent calibrations by the logged-in user
  • prompting people to log in to save data
  • detecting the need to calibrate and directing people to the appropriate page and/or docs
  • fetching the most recent calibration and using it to display calibrated data

The current JavaScript code at https://spectralworkbench.org/capture performs all of this, and should be saved at https://spectralworkbench.org/capture/legacy, while the new code should be launched first at https://spectralworkbench.org/capture/new and compared for feature parity with the legacy version before any legacy systems are move or modified. The project will also require some Rails full-stack system tests to confirm functionality in the new UI.

A LOT more information on this was just posted in a comment, click here to read it in full: #9257 (comment) and copied into a new issue at publiclab/spectral-workbench.js#219

List: https://gitter.im/publiclab/publiclab

Prerequisites: JavaScript, Ruby on Rails

Difficulty Level: medium

Potential mentors: Jeffrey Yoo Warren, Cess, ADD YOUR NAME HERE

Metadata

Metadata

Assignees

No one assigned

    Labels

    brainstormIssues that need discussion and requirements need to be elucidateddesignissue requires more design work and discussion (i.e. mockups and sketches)discussiongsocoutreachy

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions