1. art.gnome.org Version 3 (AGO3) - Google Summer of Code
1.1. Initial Note
Since art.gnome.org is my SOC project I'll be using this wiki page as a repository of ideas for the project.
I've set a development log on http://eksperimental.net/blog. I'll try to keep it updated.
If you have any ideas don't hesitate on contacting me or leaving a message in this page.
1.2. Authentication
1.2.1. ACL System
Code a library to implement base methods of an ACL System.
Permissions are associated with an keyword such as 'create_news', 'add_artwork', 'delete_artwork', 'edit_artwork'. In the action's method we call is_user_allowed_to($action) (e.g is_user_allowed_to('delete_artwork') ) to verify if the current user was authorized to run current action.
Users rights are added as a class. Since each user type will have a representative class( unregistered, registered, developers, moderators, admin ), permission keywords must be set on first hand.
Technically it will be implemented using bitwise operations. Each roll can be identified by a power of 2(2n). We should be able to have 31 rules (php max is 232-1 I think...) I should be more than enough.
2. Features
2.1. FAQS
Q&A are submitted under certain category.
Interface where admins can add new questions&answers
- users can submit new questions (need to be logged in)
2.2. Contest
Each contest is relative to an artwork type(splash, background, theme, etc) It should be listed as a new category so developers can submit to it.
When being created , admins have to choose the type of artwork of the contest(splash,etc), the name of the contest (that will be the name of the category), small description, and a link to further information.
Admins interface will give the possibility to end submission phase, start the voting phasing, or stop it. After being submitted to a contest, contest entries will only be available in voting phase.
After contest ends, winning artwork can be flagged to be moved to normal library under some special category like contests winners. The other ones go to its authors draft folder.
2.3. Artwork Contest
Possibility to promote artwork contests. Admins open a new contest, set an ending date until when users can submit artwork artwork. A special category can be created whenever a new contest is open so users can submit artwork under that same category. In the end artwork can be transfered to normal categories, as any other artwork to be judge by users.
2.4. XML+RPC
The possibility to interact with AGO using XML+RPC. 3rd party applications can be created based on a simple API. One example is the using this API build and interface to integrate AGO in a GNOME Desktop; Downloading new backgrounds, icons sets, etc.
3. DB Schema
3.1. Artwork
One table for artwork and one table for downloads. Since certain artworks may have more than one download associated to it(e.g Backgrounds can have more than one resolution)