The project shall be called Relates2! We call it R2 for short.
I turned in the first draft of my project proposal yesterday. I'll post a PDF of the final here after I meet with a tutor and revise it and whatnot. The whole thing is 13 pages long and definitely not worth reading because proposals are by nature repetitive, but here's the introduction and the feature set. I'll get into the gritty technical details this weekend when I actually start coding (finally).
--
Summary
Relates2 is a web-based application where users can declare a relationship between any two web addresses (URIs). URIs can be associated by any relationship in R2's database, which can be amended and added to by users under guidance by administrators. Once the relationship between two sites is known, linked content can either be embedded throughout the web through our API or can be viewed using our Firefox plugin. In the end users enjoy a richer browsing experience that is augmented by relevant largely user-generated content.
Feature Specification
R2 is made up of several interlocking but conceptually distinct components: the backend, the web interface, the API interface, and the browser plugin.
Database/Backend
This part of the product is invisible to the user and thus we are free to implement it any way we see fit. All it really has to do is be reliable and store the data required to run the rest of the site: every relation we recognize, every type of resource we recognize, every pair of related URIs, users, rules, and various statistics.
Web Interface
This is the first user-facing part of the product. Through it, users can:
Link two sites. Upon entering the URIs of the two sites, R2 tries to infer the types of the URIs and suggests them to the user. The interface also suggests a relationship between the two resources if it knows their types. The user is free to override either. Once entered, the link is stored in the database and available for querying.
View related content. The user can enter a URI and then view a list of all content related to that URI. The related content interface will at the very least allow the user to sort by type of relation and popularity of the link. When content links correspond to media the media will be previewed inline. The web interface will also allow a user to agree or disagree with a link. This interface is the part of the project most open to interpretation. Though it is not of the highest priority we believe that there is a lot of innovation that could go into this part of the site, including graphical and interactive methods of viewing relationships.
View new content. The user can view a list of all the recently linked resources. Sorting can be done at least by popularity and relationship.
API
The API allows developers to do anything that can be done through the web interface, only through XML and without any presentation necessary. There will also be API calls to return pre-formatted information for easy embedding on the web. The API will feature useful presentation-minded features that prepare content for embedding, i.e. a method such as getThumbnail that knows how to extract a thumbnail from common sources such as Flickr and YouTube. To use the API developers will need to have an API key in much the same way that the Flickr and Facebook APIs require.
Browser Plugin
The last component of R2 will be a browser plugin targetted at Firefox users. It will normally run as an icon in the corner of the browser window, out of the user's view until the user wishes to use it. When the user views a site that has related content known to R2, the icon changes colors to signify that it has information for the user. If interested, the user can click the icon and a sidebar will appear. Related content will be listed as it is in the web interface, with media shown inline where possible and various sorting options available. The user can quickly add other content through the plugin as well.
The adventures of two Stanford Computer Science students as they build a web application from scratch.
Thursday, April 12, 2007
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment