Contribute to ScratchR

We are looking for a web developer to help us fix current bugs and implement some of the following new features on the website

  • Performance tunning.
    • Improve queries, add indices
    • Get rid of unnecessary code, data and queries
    • Make better use of tirggers, views, temp tables and other MySQL-specific optimization tools
    • Explore caching: memcache, query caching, proxy, etc
  • Add and customize wiki to store documentation and let regular kids and educatores add content to specific sections. Wiki should be easy to use (WYSIWYG) and allow for embedding videos, images and Scratch projects. Maybe Diki Wiki.
  • User driven content classification/regulation
    • Safe site
    • Trust point system (similar to Slashdot's Karma)
    • Delegating admin powers: youth Council, educator's council, etc
    • Metadata entry (using Mechanical Turk?)
  • Mapping:
    • Link projects to a specific geolocation.
    • Show where visitors come from in a map
    • Connect educators in the same town to have meetups
  • International and accessible
    • Internationalization and localization (i18n & l10n). Present different languages and content, wikipedia style
    • Use GNU gettext for external files with multiple languages
    • Autodetect where user is coming from and present different language/content
    • Switch back and forth to different language
    • User-generated translations of UI and projects
    • Accessibility (section 508 compliance)
    • On multiple browsers and devices: W3C compliance. Clean up HTML code.
  • Security
    • DoS attacks, tune apache for traffic throttling.
    • Review code, patch possible security threats and set rules for future
    • Prevention of SQL injection and access to shell via system calls
  • User experience
    • Linking related projects with each other. Visualization of connections of modded projects.
    • Additional ways of filtering browsing results. For example show the most loved projects of tag 'foo' in the past month.
    • Smart tagging. When looking at the tag "car" also present elements tagged as "car" and "automobiles"
    • Recommendation system. People who watched this project also watched this ones.
    • Search engine customization. More frequent indexing. Make better use of Google API or use Apache Lucene.
    • Personalization of MyStuff and overall website
  • Mashup friendly
    • Expose data via API
    • RSS feeds of groups of projecs, comments and forums
    • Embeddable content (galleries and projects)
    • Facebook app
    • Specific connections witth other sites such as MySpace, Blogger, Wordpress
    • Get data from other sites into Scratch projects (web variables)
  • System to synchronize multiple ScratchR repositories
  • Generation of site statistics and data visualizations. For example: generate graphs of number of scripts uploaded in a period of time
  • Better integrationd of site with forums (PunBB)
  • Initial exploration of a Flash-based Scratch player

Skills: experience with PHP, MySQL and Apache is a must. Knowledge of a web development framework is strongly preferred. Experience with CakePHP is a big plus.

If you are an undergrad at MIT you can join the Scratch team as a UROP.

To apply just send us a link to your resume and/or portfolio to Andrés Monroy-Hernández

Processing