Implement FreeBSD community portal (FCP4) - groups functionality FreeBSD
Status: Closed Time to complete: 240 hrs Mentors: Wojciech A. Koszek, Jakub Klama Tags: WWW, Python, community, portal, FreeBSD, PHP, Ruby

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 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.

Uploaded Work
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 1.7 KB December 07 2011 05:01 UTC
n00l3 on December 5 2011 22:18 UTC Task Claimed

I would like to work on this task.

Wojciech A. Koszek on December 5 2011 22:20 UTC Task Assigned

This task has been assigned to Violet Lin. You have 240 hours to complete this task, good luck!

n00l3 on December 6 2011 03:14 UTC Ready for review

The work on this task is ready to be reviewed.

Wojciech A. Koszek on December 6 2011 21:24 UTC Task Needs More Work

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.

Wojciech A. Koszek on December 6 2011 21:26 UTC MVC

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! 


n00l3 on December 7 2011 05:01 UTC Ready for review

The work on this task is ready to be reviewed.

Jakub Klama on December 7 2011 21:54 UTC Task Closed

Congratulations, this task has been completed successfully.