gsoc-2016
gsoc-2016

Here's where all proposed 2016 proposals can be seen: http://publiclab.org/notes/warren/03-10-2016/google-summer-of-code-2016-draft-proposals **** ##Accepted proposals list ###Rich Profile Pages on PublicLab.org **By:** [Lalith](/profile/Lalithr95) **Link to accepted proposal:** https://publiclab.org/notes/Lalithr95/03-23-2016/rich-profile-tags-and-improving-the-performance-of-publiclab-org **Part of:** [PublicLab.org](/wiki/plots2) **Description:** A major build-out of profile pages on PublicLab.org. Implement profile tagging for geographic data, role, tools, skills, and barnstars -- all highly requested features by the Public Lab community! Including: * a table and Rails model for `profile_tags` * a form for tagging users on the /profile page (only to admins or the user themselves) * some features built upon these tags, such as that only user.role == "admin" or the user themselves may create them * user.has_tag(), .powertag(), and similar methods based on drupal_node's examples: https://github.com/publiclab/plots2/blob/master/app/models/drupal_node.rb#L235-L283 * a user map using tags like "lat:45.01" and "lon:-91.341" similar to this example: https://github.com/publiclab/plots2/blob/master/app/views/notes/tools_places.html.erb#L4-L15 (view live here: https://publiclab.org/places) * a form for inputting location tags on a profile using an autocomplete input, similar to https://mapknitter.org/maps/new (code here: https://github.com/publiclab/mapknitter/blob/master/app/views/map/_new.html.erb#L29-L84) **List:** plots-dev@googlegroups.com **Links:** * powertagging your profile for location, topics, and gear: https://github.com/publiclab/plots2/issues/104 * presentation ideas for "achievements and skills" listings on profiles, using profile tagging: https://github.com/publiclab/plots2/issues/442 * barnstars: https://github.com/publiclab/plots2/issues/167 * barnstars custom graphics (extra fun): https://github.com/publiclab/plots2/issues/265 **Prerequisites:** Ruby on Rails **Difficulty level:** hard **Potential mentors:** Bronwen Densmore, Jeff Warren, Liz Barry, Bryan Bonvallet. **** ###Search and sorting **By:** [Ujitha](/profile/Ujitha) **Link to accepted proposal:** https://publiclab.org/notes/Ujitha/03-12-2016/advanced-searching-and-sorting-tool-for-publiclab-org **Part of:** [PublicLab.org](/wiki/plots2) **Description:** This project is to develop searching and sorting tools to help organize Public Lab's open science and technology knowledge base. These features will also be used by community managers to help people develop their projects and connect to others. **Longer story:** The search box is located in the top bar and at this URL: https://publiclab.org/search/. It does not search through the content on profile pages, which is the primary place that people communicate their research interests when they first join the site. Tags are hugely important to knowledge organization on the site: tags create relationships between pages by linking bodies of research, and [powertags](/wiki/power-tags) add hierarchy (parenting), trigger inclusion on metapages like /places, or change graphic styling as in /blog, and much more. The top level [tag page](https://publiclab.org/tags) needs the ability to sort alphabetically and by frequency of use. Tag sorting will also be a big help for moderating inappropriate content in terms of streamlining batch tag deletion. Currently even when spam is removed, any spam tags used remain in autosuggest which means users are shown offensive words nearly every time they begin typing to add a tag to a page or post. Sorting will also be useful on https://publiclab.org/people. **List:** plots-dev@googlegroups.com **Links:** * add more types of sorting to /profiles (AKA /people) https://github.com/publiclab/plots2/issues/317 * implement tag sorting https://github.com/publiclab/plots2/issues/179 and tag optomization: https://github.com/publiclab/plots2/issues/99 * expand search to include profile content (for admin users): https://github.com/publiclab/plots2/issues/209, currently only accessible via datadumps: https://github.com/publiclab/plots2/issues/308 **Prerequisites:** Ruby on Rails **Difficulty level:** hard **Potential mentors:** Jeff Warren, Liz Barry, Bryan Bonvallet, Dan Henry **** ###Browser-based Arduino sensor data transfer using WebRTC and headphone jack **By:** [Richard](/profile/rmeister) **Link to accepted proposal:** https://publiclab.org/notes/rmeister/03-24-2016/browser-based-arduino-sensor-data-transfer-using-webrtc-and-headphone-jack **Description:** A way to read data off of sensors from a website, using only an audio cable, building on modem.js and SoftModem (see links). Dramatically eases connecting to a sensor using a laptop or smartphone directly from a web page, no software installation necessary. If you can, as a first step, see if you can connect a SoftModem-enabled arduino to a speaker and read the data into [the modem.js demo](http://jywarren.github.io/modem.js/demo.html). **List:** plots-dev@googlegroups.com - [Main discussion thread here](https://groups.google.com/forum/#!topic/plots-dev/rKdNTJXuHhU) **Update:** it seems that modem.js and SoftModem use different encodings, and there is discussion about using or modifying Firmata as the protocol. [Read more here](https://groups.google.com/forum/#!topic/plots-dev/TtpWt4iVkLY) **Links:** * https://github.com/NeoCat/FSK-Serial-Generator-in-JavaScript/ (specifically for SoftModem, but encode only, no decode) * https://github.com/dolske/modem.js * [Modem.js live demo for basic testing](http://jywarren.github.io/modem.js/demo.html) * https://github.com/arms22/SoftModem (poor/no documentation) * Example hardware, notes, and software links: http://www.elechouse.com/elechouse/index.php?main_page=product_info&cPath=90_92&products_id=2199 * Discussion on using SoftModem in Arduino forums: http://forum.arduino.cc/index.php?topic=86351.0 * Another related tutorial: http://learn.linksprite.com/arduino/shields/softmodem-data-communication-a/ * discussion: https://groups.google.com/forum/#!searchin/plots-airquality/audio/plots-airquality/3b3Y2vrMsoI/xebM6kNBEgAJ **Prerequisites:** JavaScript, Arduino **Difficulty level:** medium/hard **Potential mentors:** Jeff Warren **** ###Expanded Q&A system for PublicLab.org **By:** [Ananyo](https://publiclab.org/profile/ananyo2012) **Link to accepted proposal:** https://publiclab.org/notes/ananyo2012/03-25-2016/expanded-q-a-system-for-publiclab-org **Part of:** [PublicLab.org](/wiki/plots2) **Description:** This is a critical step for moving from a separated email and website structure towards clearly answered questions prominently featured as the knowledge base of Public Lab. This project features a posting form, styling for presentation, answering feature, more outreach display for recruiting, integration with Rich Profiles to feature helpful people, displays of common questions. **Longer story:** Currently as things stand now, the same questions get asked again and again on the email forums, which is totally fine but we think we can do a little better. Often the questions are the same "getting started" questions that are commonly compiled into an FAQ, however, in our experience, static FAQs quickly expire as new developments outpace documentation. A "Stack Overflow" model would allow questions to be re-answered over time, while preserving links into the wikis and notes of PublicLab.org. Adding a Q&A layer over publiclab.org/research and publiclab.org/wiki would give a question-asker confidence that a particular bit of documentation answers a particular question they have. **More on implementation** One resource for Q&A is to look at existing questions, even if the prototype system we have is very crudely made. https://publiclab.org/tag/question:* will show you all questions currently asked, and any tag page, for example, https://publiclab.org/tag/balloon-mapping will show the "Ask a question" button and current minimal interface. Currently, questions are implemented as `DrupalNodes` with tags marking them as a `question:foo` on topic `foo`. We think this is fine, as the tagging system is robust, user-moddable without code, and quite flexible. This probably means that Questions don't need their own model, unless it simply inherits from DrupalNode but uses the same db table. Informally, some questions are tagged `answered` once they're answered, but currently that doesn't do anything extra -- but it could be used to mark a question as answered, or a tag like `answered:` with the comment id could be used to indicate which question caused the answer, or perhaps `answered:` for *who* answered it. If a student takes on the "Search/sorting" project, the Sunspot integration may be something they do, and you'd have to work with them on integration with your module. Establishing an API around the current search methods, perhaps with a Search model, would be a good way to compartmentalize this work, and some simple automated unit tests of the Search model would ensure that the other student's work would have to meet basic functionality before it was pulled in. Other things that could be great add-ons for this project are some better way to alert subscribers who've signed up to answer questions on a topic, as currently we rely on the posted questions being well tagged at publication time. But if they aren't (and question askers may not be familiar with our tagging, so they may not be), there's no additional trigger for tags added later to trigger notifications. Perhaps some way to scan the question body could trigger this. A way to view how many questions people have **answered** is also interesting, as it may incentivize people to answer lots of questions in order to gain some kind of visible "reputation". Considering how "helpful" people are, and how that's displayed on the site, is also an exciting direction. **List:** plots-dev@googlegroups.com **Links:** * Search results for all posts tagged "question": [http://publiclab.org/tag/question:*](http://publiclab.org/tag/question:*) (make sure the * is at the end of the URL) * Search results for all posts tagged "answered": https://publiclab.org/tag/answered * Stub wiki page: https://publiclab.org/wiki/q-a * Closest: https://github.com/publiclab/plots2/issues/162 * more background: https://github.com/publiclab/plots2/issues/209 * an interesting [overview of Q&A sites here](https://en.wikipedia.org/wiki/List_of_question-and-answer_websites) which could be researched for more ideas. **Prerequisites:** Ruby on Rails, JavaScript/jQuery **Difficulty level:** easy **Potential mentors:** Liz, Dan Henry **** ###Internationalize publiclab.org **By:** [Jitesh](https://publiclab.org/profile/jiteshxyz) **Link to accepted proposal:** https://publiclab.org/notes/jiteshxyz/03-20-2016/internationalization-of-publiclab-org **Part of:** [PublicLab.org](/wiki/plots2) **Description:** Internationalizing the plots2 codebase is the step required so that publiclab.org can be translated into other languages. **Longer story:** Internationalization is the process of designing a software application so that it can potentially be adapted to various languages and regions without engineering changes. Localization is the process of adapting internationalized software for a specific region or language by adding locale-specific components and translating text. Localization (which is performed multiple times, for different locales) uses the infrastructure or flexibility provided by internationalization (which is ideally performed only once, or as an integral part of ongoing development). **So far,** all we have is that you can tag a post or wiki with "lang:es" for spanish, you can see all content in Spanish by going to https://publiclab.org/tag/lang:es . You could do the same with any language code, like "lang:fr". We have also made sure all character sets work in page content, although are not sure about titles, due to URL generation. **What would success look like for this project?** Once internationalization is in place, people can localize the footer, header, sidebars, menus, posting forms, etc. A related project is to figure out which crowdtranslation platform would be good -- it would be simplest for the existing publiclab community to use github to track changes and versions, however, there are existing really successful platforms for translation especially in Chinese for video content. Finally, we would be able to have subdomains for each language like es.publiclab.org (for espanol) etc. **List:** plots-dev@googlegroups.com **Links:** * start with the footer and header since they are not complex: https://github.com/publiclab/plots2/issues/393 * email thread that has been going on since 2014 (!): https://groups.google.com/forum/#!topic/plots-dev/zv78dEQC42o * once this project is done, we can choose a platform for actually doing the translations: https://github.com/publiclab/plots2/issues/395 **Prerequisites:** Ruby on Rails **Difficulty level:** easy to tackle the header and footer, but beyond that possibly hard because it would eventually touch almost every part of the template code. **Mentor:** Liz Barry ****...


Author Comment Last activity Moderation
stevie "stevie awards a barnstar to ananyo2012 for their awesome contribution! " | Read more » over 8 years ago
warren "Oh, one question -- can askers change the answer they accept? " | Read more » over 8 years ago
warren "Wow! Great and friendly presentation of the new system! I have some small comments, like that the icon by "Comments" should be fa-comment since th..." | Read more » over 8 years ago
liz "Wow a real milestone! " | Read more » over 8 years ago
warren "A couple updates for the Rich Editor too: a prototype (not fully working) autocompletion for @callouts an autocomplete tagging system, based on h..." | Read more » over 8 years ago
ananyo2012 "Here is my Progress on the Expanded Q & A System Project As mentioned in the plots2 pull request #550 I have written controller actions and vi..." | Read more » over 8 years ago
ananyo2012 "@liz Thanks for your sincere thoughts on the ideas. It's great to have your views. Yeah I do support the tradition of Publiclab. Barnstar system is..." | Read more » over 8 years ago
liz "Great note and comment thread! Thank you @Ananyo2012 for putting this together and also for very detailed email communications. It's really great w..." | Read more » over 8 years ago
nmz787 "I take it you've seen this reference design and implementation (all open source): http://web.eecs.umich.edu/~prabal/projects/hijack/ " | Read more » over 8 years ago
rmeister "@warren, regarding the cable type: there are two different standards. The main difference is that ground and microphone signal pins are switched. B..." | Read more » over 8 years ago
warren "Wow, great start though! One thought for debugging is to record as an audio file the output from a known source (softmodem or the fsk generator) an..." | Read more » over 8 years ago
rmeister "Last week I tried to replicate the circuit of the SoftModem shield. I had not the exact resistor values at hand, so maybe thats why it could not re..." | Read more » over 8 years ago
warren "If we want users to mark tags as favorites, we could potentially use profile tagging to achieve this, but I guess if we already have a way to follo..." | Read more » over 8 years ago
warren "What about for the upvote HTML, reusing the already familiar Like template, and modifying it so it can be used for upvoting too -- Ajaxy, too. Or i..." | Read more » over 8 years ago
stevie "Thanks for the feedback, love the Upvote :) Know we might not get feedback from @liz for a while because she is traveling, but I'm interested to h..." | Read more » over 8 years ago
ananyo2012 "@stevie With respect to the user reputation/badging system we can use points according to the number of questions/answers and the number of upvotes..." | Read more » over 8 years ago
ananyo2012 "@stevie Ok then we can drop the dislike button and keep a Upvote button similar to this one. Regarding the user approving an answer I think the p..." | Read more » over 8 years ago
ananyo2012 "@warren Instead of topic wise sorted question we can use the idea of Favourite tags similar to that used in stackoverflow. The user can enter a ..." | Read more » over 8 years ago
ananyo2012 "@stevie What I wanted to show is on clicking the Add Comment button the comment editor will show up below all comments of that section. For answe..." | Read more » over 8 years ago
warren "a general way in which people "follow" questions Just chipping in on this, subscribing to the tag "question:balloon-mapping" subscribes you to all..." | Read more » over 8 years ago
stevie "Hi there. Love the mockup. I had a few thoughts: Can there be a general way in which people "follow" questions. Some people really like answering..." | Read more » over 8 years ago
rmeister "Ah, I overlooked that it was softserial in your case. Yes I think modem.js produces sine waves. At least there is a sine function in the code and ..." | Read more » over 8 years ago
warren "Also, do you think filtering will be necessary? Depending on how it's implemented, modem.js might not care. " | Read more » over 8 years ago
warren "Oh, cool! To clarify, I haven't yet used SoftModem, just softserial, which doesn't do FSK. This looks great, it's awesome to see the longer and sho..." | Read more » over 8 years ago