Closed jywarren closed 2 years ago
This is My Proposed Idea
User Interface Improvement
Part of: https://github.com/publiclab/community-toolbox
Description: This project is a platform dedicated to community growth and getting insights on organization-wide activities. So, we need to improve the User Interface for the whole project in order to make it more friendly for especially for new comer as it contains code of content and the issues for first timers of different repositories.
Improvising the HTML code.
Improve CSS and JS for different sections and make them compact.
Build the grids to solve the scrolling issue in different sections of the page.
Organising the different sections of the page to make it more attractive.
improved workflows for first-timers as this page is to welcome new contributors.
Update and work on some frontend libraries to make the UI extremely good.
Improve the design of the webpage.
List: https://gitter.im/publiclab/publiclab
Prerequisites: HTML, CSS, Bootstrap ,and JavaScript
Difficulty Level: medium
Potential mentors: Jeffrey Yoo Warren, ADD YOUR NAME HERE If you think it is good can we consider it for gsoc
Hi Yogesh, we will note this idea and discuss with our @publiclab/community-reps however as @cesswairimu noted in #9283 our default policy is to consider primarily ideas from our ideas list. But I appreciate your attention to the community toolbox project which is indeed very important to our community! 🎉
Education - B-Tech (Computer Engineering) [currently in 2nd Year]
As we all are aware of Image Sequencer, a very cool and efficient sequencer which works in a very constructive manner with support of many strong modules and well protected by robust tests.
It has everything in it as a complete package to fire-up.
But!!! As this sequencer is based on plain vanilla javascript, and raw HTML we have reached a kind of saturation point of it .we are compromising with the powerful features of great Technologies out there. which not only improve its current behaviour but also leaves many aspects to be covered for future reference and also give a great Compatibility with many such Technologies.
I did some research for this and some experiment on this and thought that we should upgrade it to React
.
Why React ?
You must be wondering that why to shift it to react if we have everything with us already.But Before Diving straight to conclusion i would like put some key points like -
once converted to react we can make use of some static site generators like Gatsby which not only solves above mentioned problem but also enhance users experience.
One of the cool thing we are going to enjoy after this upgrade is we can make use of powerful react testing library like cypress
whose compatibility with react is very high.
let a user is working on a image, he did several adjustments by generating many sub-part of image. some might have the changes he wanted to work later and some to store just for reference purpose but there is no such provision for that if we have react with us we can use library like redux to save these modules for later use and it is a great feature to have.
whenever a component need to be changed we don't have to re-render whole page we can easily update that particular part of sequencer with it easily.
upgrading to newer version of current packages like bootstrap
and adding some complex features like adding dark mode
will became much more easy due to props and hooks of react.
last but not the least upgrading it to react will leave many future scope for integrating it with latest Technology with ease.
Few more Changes related to performance and for better user experience that i had in my mind.which can be done with or without react -
Add Step
button or click on one of the quick-add menu shortcut.
what i thought is to attach a keyboard control on it using that we can navigate between different modules.
just like the tab switching feature of MacOS
and it will not be limited to that only.Rather we will have the ability to move in both the direction and after stopping our pointer on one of the module shortcut it will display a default change related to that particular module in our preview image so that the user can visually experience what a particular module do or how that module will going to affect its current change on a image. we can do this with help of doubly circular linked list and instead of a single click we can listen for dblclick
event on those quick menu tab to select one of them when we are done inspecting them.
(also feature of choosing a module with mouse will also be there as it is) .demo for above idea -
Add a draw (pen/pencil) kind of a tool which will be global in its scope means can be used with any module.This tool will help us draw anything on the image or help us write something on it. This will be interactive feature to have.
change the design for upper part of image sequencer which we are discussing about in (#1808)
use async await instead of Promises as they just leads to callback hell and that makes code look ugly, difficult to read and understand but async and await are more cleaner way to acheive the same thing we do with promises ( they are just syntactical sugar for the same)
Fixed Registration Problem of Service Worker (#1807) [ merged ]
Text Alignment Made Easy And Convenient (#1804) [ merged ]
Close Webcam Automatically after clicking a picture (#1816) [ merged ]
Try To Fetch Latest Data First Then Switch To Cached One (#1819) [ merged ]
notify users for selecting empty step (#1818) [ merged ]
fixed unable to load version problem (#1789) [ merged ]
made update Prompt responsive (#1831) [ merged ]
improved way of displaying docs-link (#1799) [ merged ]
stopped redundant processing and fixed the working of close button (#1797) [ merged ]
notify users for failure in loading image via external URL (#1813) [ merged ]
Added Dark Mode for ImageSequencer (#1824) [ open ]
clear input field after selecting a module/step (#1825) [ issue ]
Before suggesting any change mentioned in this proposal i have worked on exactly similar to them (almost all) so that i have a clear understanding of how i will be going to accomplish such task.
Examples -
In React upgrade solution i have turned my own chat application based on Web sockets
and nodeJs
into react version and successfully upgraded it.
Now it is much more cleaner and it became easy for me to maintain and add more features to it.
In draw tool solution (pencil/pen) i have added backend for gradient brush in gpujs-real-renderer.
Added a rainbow brush (the tool i am talking about) in rainbow board
In Tab-Switching approach i have did something similar here Also i have very clear understanding of many advance data structures like graphs , fenwick trees, Segment trees and many more so this solution isn't a big problem for me.
5 like wise i have searched and worked for other solution as well.
Thank you sir and everyone
who have extracted their time in reading this .I know it is bit lengthy to read but i tried my best to reduce my wording and only mention those details that needs to be discussed.Thanks you so much again. ☺️ @jywarren @cesswairimu could you please have a look on this.
@jywarren sir could you please provide a feedback for this proposal.
Hi, @jywarren and @cesswairimu here Translation system refinements I guess the only users who have an account on Transifex those users can only translating the website into different languages using Transifex, and also only in production mode, we can see the footer? Actually, what are the parameters we need to refine here? Thanks
Hi, @jywarren and @cesswairimu as only in production mode we can select any language but at localhost, it shows me Spanish to follow on the Twitter button how can I change it to English now?
Since it's mentioned that the first two projects are for Outreachy applicants, so its better that a GSoC candidate doesn't choose the first two projects. Am I right?
Hi all, i'll copy in some answers I gave in our chatroom so all can see!
Hi @gaurav2699 not necessarily as we may not get 2 Outreachy slots, so it's OK to post proposals for those. At this point it's not clear which of the two may receive Outreachy support, and we're sorry for the uncertainty that brings, but there's not a lot we can do about it at this point.
Also responded to @Manasa2850 in the chatroom: if for GSoC it might be good to pick one, as the hours are halved per project this year. For Outreachy, combining two is OK but we don't expect you to. Whether the ideas seem feasible within the given time and proposed schedule is one thing we consider on reviewing applications. Thank you!
Then after a clarification, I said to @Manasa2850 that it's OK to submit 2 separate proposals for 2 separate ideas if one wishes.
Also, i just updated the Education project with:
- ensure comment /replies/ appear on the new spam2 dashboard! https://github.com/publiclab/plots2/issues/8854#issuecomment-804342189
Hi, @jywarren and @cesswairimu as only in production mode we can select any language but at localhost, it shows me Spanish to follow on the Twitter button how can I change it to English now?
Hi @YogeshSharma01 -- you can use this URL to switch: https://publiclab.org/change_locale/es
where es
can be replaced with the correct language code. See the available ones at the footer of PublicLab.org and you can see the available links there too!
Hi all, just noting that @cesswairimu has posted our official GSoC call for proposals here! https://publiclab.org/notes/cess/03-24-2021/call-for-2021-gsoc-proposals
Hey @jywarren, @cesswairimu and mentors. Dropped in my draft proposal at https://publiclab.org/notes/barun1024/03-24-2021/gsoc-2021-proposal-geographic-features-refinement. Would be glad to get feedback on it :)
Hi, @jywarren here Translation system refinements I guess the only users who have an account on Transifex those users can only translating the website into different languages using Transifex. what are the parameters we need to refine here? Thanks
Hi @YogeshSharma01 -- my understanding is that when you follow the prompts (also see https://publiclab.org/translation) -- you are guided to set up an account. Do you think there is more we can do to smooth this workflow? To make it easier and lower barrier? Or are you asking something more specific about parameters for Transifex API integration? Thank you!
@jywarren I have the same query regarding the parameters we need to consider for refining the custom translation helper you mentioned above but can you also mention parameters regarding the Transifex API integration that we need to consider, and anything else I should look into regarding the translation refinements project. Also, I have posted the draft proposal here: https://publiclab.org/notes/govindgoel/03-25-2021/gsoc-proposal I am working on improving it. Thanks
Hi, @jywarren exactly more specific about parameters for Transifex API integration?
Hi @jywarren and @cesswairimu, I had a few questions regarding the spectral workbench integration project idea under GSoC. Pls have a look. Thanks :)
Hi @YogeshSharma01 @govindgoel I've added to the Translation idea:
additional projects/issues/tasks/documentation/discussion at https://github.com/publiclab/plots2/labels/Translation%20System and especially #3262
And also adding that I believe we need an additional "guide" on the process of importing translations from Transifex, perhaps at https://publiclab.org/wiki/translation or https://github.com/publiclab/plots2#internationalization.
Also adding more fully, i hope this helps!:
I believe we need an additional "guide" on the process of importing translations from Transifex, perhaps at https://publiclab.org/wiki/translation or https://github.com/publiclab/plots2#internationalization. My understanding is that it's simply copying the Transifex file in from Transifex, but there may need to be a merge so as not to lose translations from outside Transifex? More on ways to automate this here: https://community.transifex.com/t/transifex-should-be-able-to-push-translations-more-often-transifex-github-integration/261/3
Hi, @jywarren when I try to translate the text by clicking on the 'Get Started' in the globe icon, I'm directed to the 404 page on transfix website. Here is the ScreenShot also, I'm not able to find the Publiclab plots in the transfix search bar.
Hi @jywarren and @cesswairimu, I had a few questions regarding the spectral workbench integration project idea under GSoC. Pls have a look. Thanks :)
- Does this require the live capture interface code to be re-written in order to integrate with ruby on rails ?
- And if so, where do we want to integrate it to, is it supposed to be integrated at https://github.com/publiclab/spectral-workbench or some new domain altogether since the project inline-markdown editor is integrated into the plots2 project I believe…
- But then how is the current spectral workbench working then, since there is already a RoR integration - https://github.com/publiclab/spectral-workbench .
/app/views/spectrums/show2.html.erb
- so for this, /app/views/capture/index2.html.erb
perhaps? That way we don't risk the current working version while trying to integrate the new one.
- And do we need a db to store the values for the login users assuming option 1 is correct ?
The Rails app should manage all user data! We should be able to "build in" the JS functionality for the capture interface similarly for how we did for the spectrum display interface, with the Rails app managing all the stateful back-end and database and even data management, and a pretty minimal "handoff" of new data from the capture interface to the "host" Rails app. See how the original JS code from long ago managed both saving new spectra (using an HTML form on the page to submit) and fetching calibration data: https://github.com/publiclab/spectral-workbench/blob/main/app/assets/javascripts/capture.js#L356-L385 You can see where the server responds to these requests on the server side in this controller: https://github.com/publiclab/spectral-workbench/blob/main/app/controllers/capture_controller.rb
- Are there any enhancements that can be considered if option 1 is correct and the code is to be rewritten altogether ?
Much of the new capture interface at https://publiclab.github.io/spectral-workbench.js/examples/new-capture/ is already written, but there may need to be some new code adapted from the previous version for:
This is still a pretty substantial project but it's nowhere near a rewrite of the capture interface itself! I hope this is helpful!
@jywarren one more thing regarding the project as it is mentioned [This project may be combined with another small project]. So do I need to do any specific changes or mention in the proposal, for example, project timeline.
Hi, @jywarren when I try to translate the text by clicking on the 'Get Started' in the globe icon, I'm directed to the 404 page on transfix website.
Oh no! I wonder if either our account expired or if they substantially changed the API and our link no longer works? Would you be able to open this in an issue? Thank you @YogeshSharma01 for finding that. ☹️
@jywarren one more thing regarding the project as it is mentioned [This project may be combined with another small project]. So do I need to do any specific changes or mention in the proposal, for example, project timeline.
I think we would want to hear the order you propose and how you'd organize your time, and also why you think these two projects could be completed within the allotted time, so we know you have a full understanding of the work to be done. Thank you!!!
Hi, @jywarren I open an issue for the transfix link no longer working #9394
Hi @jywarren and @cesswairimu I had a question regarding project ideas in GSoC. Are the first 2 projects in Project ideas strictly reserved for outreachy or GSoC applicants can also make a proposal for it? I had applied for Outreachy but my initial application could not get approved due to not meeting minimum time commitment criteria which is not the case in reality. I'm very eager to work on these projects and would like to participate in GSoC for the same idea. Is it possible to do so?
Hi @17sushmita -- no, we accept applications for these from both programs. Yes, we would love to have your application through the GSoC program! Thank you!
Hi @jywarren, I have a query regarding the Legacy Code deprecation project. It has been mentioned to produce archival export of the data. So I want to know which format will be desirable: .sql, csv, json, or anything else. Thank you!
Also, another query I posted here https://github.com/publiclab/plots2/issues/4072
Hey @jywarren. I have a doubt, I believe we are deprecating the drupal_content_type_map model, and as mentioned in this issue #956, we are merging the drupal_content_type_map model to the map node body field. Since the body of a node is a text field, how can we merge the content_type_map table in that as it contains several columns? Thank you!
Hi, Gaurav! Good questions. for the export data format, I think SQL is probably fine.
As to drupal_content_type_map columns, I think we should assemble a readable string from them, perhaps humanizing the column names and assembling Markdown text from them along with their values? Thanks!
On Fri, Apr 2, 2021 at 9:42 AM Gaurav Singh @.***> wrote:
Also, another query I posted here #4072 https://github.com/publiclab/plots2/issues/4072
Hey @jywarren https://github.com/jywarren. I have a doubt, I believe we are deprecating the drupal_content_type_map model, and as mentioned in this issue #956 https://github.com/publiclab/plots2/issues/956, we are merging the drupal_content_type_map model to the map node body field. Since the body of a node is a text field, how can we merge the content_type_map table in that as it contains several columns? Thank you!
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/publiclab/plots2/issues/9257#issuecomment-812536215, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAF6J67QOYG2X2DVYCN7NLTGXCTBANCNFSM4YPZRAPQ .
Hi all, i wanted to drop in some notes i left on @govindgoel's proposal that really applies to all proposals for the translation system!
On
1. Refine the custom translation helper
a few thoughts I had were:
- we do this in both JS and Ruby, i believe - that is, the
i18n
gem has a translation helper in each, and i believe we've overridden the Ruby one (usingtranslate()
now instead oft()
), but we should think on how to do this in JavaScript as well! If it's simple and well written enough, we can just port over the code so both work normally.- we might want to run similar tests on both the JS and Ruby versions
- for the display issues where the globe is showing up oddly, i wonder if we might want to consider a different display. What if we instead added a
.......
dotted underline to words that needed translation, and when you hover over with the mouse, a globe icon appears? This might be easier to format. However, if there is already a hover-over popover or tooltip, we'd have to ensure that the new one doesn't interrupt it or overlap it.
Thanks! I hope this is helpful!
Also, with regard to the idea of an additional guide for how to import translation files, I've added to the above description:
we've started documenting and testing this process in this issue: https://github.com/publiclab/plots2/issues/9481
also thanks to @YogeshSharma01 for investigating the Transifex link 404 issue. Thinking about the recruitment process, i changed the title of that issue to think about how to smooth the process for first-time translators. Maybe this could be part of the plan too! https://github.com/publiclab/plots2/issues/9394
Hi all, i wanted to drop in some notes i left on @govindgoel's proposal that really applies to all proposals for the translation system!
On
1. Refine the custom translation helper
a few thoughts I had were:
- we do this in both JS and Ruby, i believe - that is, the
i18n
gem has a translation helper in each, and i believe we've overridden the Ruby one (usingtranslate()
now instead oft()
), but we should think on how to do this in JavaScript as well! If it's simple and well written enough, we can just port over the code so both work normally.- we might want to run similar tests on both the JS and Ruby versions
- for the display issues where the globe is showing up oddly, i wonder if we might want to consider a different display. What if we instead added a
.......
dotted underline to words that needed translation, and when you hover over with the mouse, a globe icon appears? This might be easier to format. However, if there is already a hover-over popover or tooltip, we'd have to ensure that the new one doesn't interrupt it or overlap it.Thanks! I hope this is helpful!
Hi, @jywarren Just want to confirm that we want to implement i18n in js because we don't want to reload the page whenever the user selects or changes his language so that our user experience is improved and gets the page in a real-time environment. Please confirm so that I can think more about this and let me know if mean something else.
Hi @YogeshSharma01 actually the i18n implementation is not for preventing a page refresh, but in order to extend the ability to translate to elements which are created/generated only using JS. These include:
It also allows us to consider how to extend translations into database-backed features such as the footer.
By contrast, when changing a language we probably /do/ want to refresh the page, as there will be many elements which will make use of the ruby, server-side helpers, and converting them to use JS in that one scenario probably introduces unnecessary complexity and maintenance burden. I hope this makes sense! Thanks for the excellent question!
I wanted also to respond to @daemon1024's question about geographic scraping/caching/microservices:
I am not exactly sure what do we want to scrape, since we already have an api for people and posts, hence I used the term cache to as to reduce the load on the api. Do we plan to use some external website which we would need to scrape for data?
I think there are a few options on this. But the main thing is that we are making arbitrary bbox (bounding box) queries to an API using 2 latitudes and 2 longitudes, so a URL-based caching system probably won't work well, since people will zoom and drag the map in unpredictable ways.
However, the results are JSON, so we might think about how to store JSON objects in a geographic index for fast retrieval. Our database is actually not set up for that, as we use the more general purpose tags "lat:" and "lon:" and so we can't do as efficient database indexing on those.
this is the query we get when we go to https://publiclab.org/map#6/41/-71, for example. Learn about this kind of API query here: https://publiclab.org/wiki/api
So I think we can think about 2 components - the "storage/retrieval" using a query /like/ the one above, and the mechanism to "scrape and store" from the PL API into that storage system.
For storage/retrieval, there seem to be many good options, i'm thinking node.js for lightweight and fast, but we can be flexible: https://duckduckgo.com/?q=efficient+nodejs+geojson+database&atb=v121-6&ia=web
For the scraping, I'm not sure. Maybe we could think about whether we are constantly scanning by region, or if accessing the microservice triggers a deferred re-fetch from the original API? These are really good design/architecture questions to weigh pros/cons on.
Thanks @daemon1024 !!!
Thanks a lot @jywarren for the detailed response 😬. That does clarify a lot of things for me and given me some context for what to look into. Will get back to you in the proposal comments after some investigation ✌️
Also a reminder for everyone, The deadline for submitting the proposal on official GSoC website is in 2 hours. Not really sure if it's region specific but I would suggest everyone to submit the PDF immediately to be safe, you can keep modifying it till the deadline.
All the Best everyone 🚀🎉
Hi all, i've crossed off a couple items from the first idea on Education related refinements, as @TildaDares correctly pointed out that some work has now been completed on it. Don't worry too much if this is already in your proposals, it's OK. But I did add a couple new items to try to round out the idea to compensate:
/v2/dashboard
- https://github.com/publiclab/plots2/issues/9278 (if not complete by start of session)It is possible more will get completed before the session begins, and that's pretty natural for a constantly evolving project like the Public Lab website -- but we can just keep track and adjust the idea outline accordingly!
Thanks, all!
The discussion issue for GSOC/Outreachy 2022 is open in #10754. Thanks everyone!
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:
/v2/dashboard
- https://github.com/publiclab/plots2/issues/9278 (if not complete by start of session)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:
locked
by a mod/administrator, only mods/administrators can add/delete tags on that page (building on existing system at https://publiclab.org/wiki/locked) (To prevent banned users from adding tags as a form of spam.)parent:____
tags (as described in https://publiclab.org/wiki/power-tags#General+power+tags)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:
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:
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:
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: https://github.com/publiclab/plots2/issues/9257#issuecomment-810523749 and copied into a new issue at https://github.com/publiclab/spectral-workbench.js/issues/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