Description of a task
This is a research task. It may or may not be deployed in production systems. No effort has been made to coordinate this task with the FreeBSD Core Team.
For this task you assume users are collected in simple: ID, NAME, SURNAME SQL table. Your task is to implement 'groups' SQL table, where users can get grouped.
Next, you must write simple PHP script which assumes, that variable $user_id holds user ID. For now make it static and equal to 123:
$user_id = 123;
Script must show available groups in three rows: 'Group name', 'Subscribe', 'Unsubscribe'. Group name is always displayed. 'Subscribe' column has buttons with 'Subscribe' label only when user can subscribe. 'Unsubscribe' columnt has buttons with 'Unsubscribe' label only when user can unsubscribe. If the user isn't yet in a group, he can subscribe. User can unsubscribe only when he's already in that group. We keep such a layout for usability reasons. Example:
(please visit http://wiki.freebsd.org/GoogleCodeIn/2011#Implement_FreeBSD_community_portal_.28FCP4.29_-_groups_functionality for sample SQL table)
Please follow Steve's Krug "Don't make me think" principles as well as Jacob Nielsen's useability rules when designing the WWW form. In other words: make it as minimalistic and simple as possible.
Technology choice is up to you, but PHP is preferred (Facebook API is in PHP at least). No framework is required to accomplish the task; however, frameworks aren't prohibited. In case of not using any framework, please follow the MVC design principles.
| File name/URL | File size | Date submitted | |
|---|---|---|---|
| groups.sql | 371 bytes | December 06 2011 02:27 UTC | |
| 12052011groups.php | 1.7 KB | December 06 2011 03:14 UTC | |
| 12062011groups.zip | 1.7 KB | December 07 2011 05:01 UTC |
I would like to work on this task.
This task has been assigned to Violet Lin. You have 240 hours to complete this task, good luck!
The work on this task is ready to be reviewed.
One of the mentors has sent this task back for more work. Talk to the mentor(s) assigned to this task to satisfy the requirements needed to complete this task, submit your work again and mark the task as complete once you re-submit your work.
Looks excellent!
In terms of useability, it's exactly what I wanted to see!
Please bring MVC ideas to the source code.
We'd like to have logic be separate from the database. We'd like to more easily
be able to switch databases and not make our prototype depend on XYZSql.
Thank you!
Wojciech
The work on this task is ready to be reviewed.
Congratulations, this task has been completed successfully.