- Smarty for template system
if PHP uses classes, it would be better.
- English, but the project should be
easily translatable (all strings as one array in a
language file, or a php-readed "po" file)
The application has to manage only two things, games and users
-> Date Sign up
-> Date Last login
-> Date Sign down
-> Number of logins
-> Suspended ( TRUE/FALSE)
-> Admin note (text)
-> Email Notify ( TRUE/FALSE)
- An user could have to roles: Admin or uploader.
- Uploaders CANNOT signup or modify their profile, but can "Sign down"
- Admins could LIST, ADD, EDIT or DELETE any user. When Editing an user, a list with its games has to be shown.
- Admins could search user only by email or login.
- (anonymous users) can request an account by email (a form)
- Suspeded accounts cannot log in. Signed down accounts can not log in.
- Dinamically load the language indicated by the user profile
- SenderID ( FK with users )
- Game Name
- Game Description (Text)
- Game width
- Game Height
- Approved comment
- Admin comment
- Date submited
- Date approved
- Approved could have 3 status: Not tested, unaproved, aproved
- The game will need to upload two files
- SWF: <GameID.swf>
- JPG: <GameID.jpg>
- Visually alert if one of the files is missing
- Uploaders can UPLOAD, LIST, VIEW, EDIT and DELETE only its own games
- Admins can UPLOAD, VIEW, EDIT, DELETE, APPROVE/UNAPROVE any game:
- Admins can view a LIST of "latest pending/approved/rejected games"
- Admins can view a SEARCH by game title.
- Each game will have a "publish" button (Admin Only) that will open a window to an URL (will tell you later) with the game data.
- When a uploader signs in it must see his games list. Ordered by date, and an "upload new game" option.
- when a admin signs it must see the last pending games list
Applicable only if user has "Email Notify" enabled
- Send a mail if a new game is uploaded (to admins)
- Send a mail when an account is created (to uploaders)
- Send a mail when a game is approved/rejected (to uploaders)
- send a mail when an approved game is modified by the user (to admins)