Our plugin will be created with flash and actionscript. Flash and actionscript by nature communicate through browser facilities, URLs, etc. Therefore our plugin will be communicating with our web server directly to retrieve lists of turtorials, single tutorials, member pages, etc. through POST data requests and sends. The plugin will essentially be the frontend for our web server and database.
The web server itself will be using PHP to facilitate communication between the database and the plugin. It will also be hosting a single webpage for adding additional tutorials through the use of a bookmarklet.
The database will be using MySQL tables with the InnoDB engine to store data. The web server and database will both be hosted in a cloud environment with our team members’ websites. The cloud environment should scale according to traffic, although premium memberships to the cloud host may be required if the project receives a lot of traffic.
Our database schema consists of seven tables total:
Tutorials This is where the URLs, descriptions, submission info, etc. of each tutorial is stored.
Members This table stores member usernames, passwords, and personal information (country, expertise level, etc.) This information typially is shown when viewing a member’s profile in the plugin.
Tags The tags table stores all unique tag names. The tags names stored in this table will be referenced by other tables for string operations.
Taglets This table differs from the tags table in that it works solely as a connective table. When a user tags a tutorial an entry is made in this table that records references to the tag used (tags table) the memeber that did the tagging (members table) and the tutorial that was tagged (tutorials table).
Comments This table stores the textual comments about tutorials that have been made by community members.
Favorites This table keeps track of the tutorials that each member has “favorited”.
Flags Flags are used by members to mark tutorials as incorrect, offensive or irrelevant to photoshop. Once a tutorial has been flagged a certain amount of times that tutorial no longer appears in searches. This table keeps track of these flags.
The interaction map outlines the relationship between the various elements of our plugin using higher-fidelity wireframes (which you can see in more detail here.) The red lines show how certain actions (pressing a button, selecting a menu item, etc) lead to database events and/or a screen change.
Architecture
Due March 11, 2010
Our plugin will be created with flash and actionscript. Flash and actionscript by nature communicate through browser facilities, URLs, etc. Therefore our plugin will be communicating with our web server directly to retrieve lists of turtorials, single tutorials, member pages, etc. through POST data requests and sends. The plugin will essentially be the frontend for our web server and database.
The web server itself will be using PHP to facilitate communication between the database and the plugin. It will also be hosting a single webpage for adding additional tutorials through the use of a bookmarklet.
The database will be using MySQL tables with the InnoDB engine to store data. The web server and database will both be hosted in a cloud environment with our team members’ websites. The cloud environment should scale according to traffic, although premium memberships to the cloud host may be required if the project receives a lot of traffic.
Our database schema consists of seven tables total:
The interaction map outlines the relationship between the various elements of our plugin using higher-fidelity wireframes (which you can see in more detail here.) The red lines show how certain actions (pressing a button, selecting a menu item, etc) lead to database events and/or a screen change.