Skip to content

Capstone Project Plan

Martii edited this page Aug 15, 2014 · 4 revisions

Capstone Project Plan

Introduction

User-scripts are lightweight site-specific browser extensions, written entirely in JavaScript and containing a special block of metadata that tells a user-script engine, such as GreaseMonkey, on what site to run the script. The script can do anything that originary JavaScript running on a web can do, such as modify the appearance or functionality of the site on the client-side. Some user-script employ special API functions — provided by the user-script engine — to do things that normal client-side JavaScript cannot, like cross-domain xmlhttprequests.

People who write user-scripts (script authors) need a place to publish them where other users can download scripts for installation. Users want a place to find scripts that will be useful for them. Currently, there exists a de facto user-script repository called userscripts.org. The site has many users and contains thousands of user-scripts. Unfortunately, userscripts.org is in a state of disrepair and has been all but abandoned by its creators. Many active user-script developers have expressed an interest in improving the site, but it remains closed source. Several members have shown interest in contributing to a competing open source user-script repository and that is how the idea for OpenUserJS was born. OpenUserJS will be a fully open-source site dedicated to fulfilling the needs of the online user-script author and user community. A goal of making the project open-source is to ensure its continued development and support by any interested party in the future. Additionally, powerful features which have long been requested will be a boon to the community by allowing for proper attribution, community approval voting, and fair and safe sharing of user-scripts.

Risks

We are dependant on our hosting service, nodejitsu. If OpenUserJS becomes too large we will have to monetize in some way to afford better hosting. Also, if the site becomes too large it will require changes to the architecture to handle scaling the system to a distributed application framework.

Resource Requirements

This project will require machines for each developer’s use. Because the project is open-source, developers will provide their own development systems. Another side-effect of developing this software as full open-source is that all development software, languages, and technologies will be free and open-source as well. OpenUserJS will require individual servers to support each of following individual needs: hosting the general OpenUserJS backbone site code (this will be originally handled using nodejitsu.com), hosting the website database such as user profiles and statistics (handled by mongolab.com), and hosting the actual user-scripts (supported by Amazon S3).

Project Tasks & Schedule

Milestone 1 - Target Completion Date: 12 Mar 2014

  • Presentation of highlighted scripts on OpenUserJS home page
  • Create user profile functionality and management tools
  • Create area and functionality for managing user settings
  • Add place and capability for authors to upload scripts directly to site
  • GitHub site integration

Milestone 2 - Target Completion Date: 09 Apr 2014

  • Implement markdown functionality to user input text editing
  • Create functionality to search for scripts with auto-complete and suggestion
  • Add ability for users to flag user-created content as malicious or spam
  • Functionality for users to review scripts and upvote/downvote
  • Create Graveyard: place to store “deleted” scripts and content
  • Create the Toolbox: storage space for script libraries to be used by authors

Milestone 3 - Target Completion Date: 30 Apr 2014

  • Enable forking functionality for other script authors
  • User-script sandbox for initial detection of potentially malicious scripts
  • Create administrator nomination page
  • Enable authors to create a group and assign groups to their user-scripts
  • Enable authors to collaborate by allowing other users to work on their scripts
  • Create The Garage: a place for authors to request aid from other authors
  • Create Beggar’s Corner: a place for users to request scripts
  • Add a high-quality script issues tracker

Monitoring and Reporting Mechanisms

Git will be used for version control. GitHub issues will be used to coordinate work by assigning issues to team members and milestones will be used to track overall project progress. Documents will be initially created and shared using Google Drive, but finished documents will be stored and updated as pages in the GitHub wiki for the project.