Case 3b: Your turn

Exercise: Oakland Zoomers
The Oakland Zoomers is a unicycle polo team. Make a Web site for them, like this one. Use a new subdomain. Build the site so that players can change their own data themselves. For example, they can change their photos, but not change other players’ photos.

Make one new content type, called Game. Add fields, and make a view that replicates the games view on the sample site, though with whatever content you like. The Against field can be a taxonomy, to keep things easy. Note that the view is a table with click sorting.

Create two new roles: player, and manager. Only managers can add, change, and delete games. Players cannot change game data.

Each player has a user account. Their user names are their real names, like Larry Lyons. Create a players view like the one on the sample site. Clicking on a player in the view takes you to a page for that player. Add whatever fields you need to the user entity. The view is a three-column grid. Make sure that anonymous users can see user data.

Create a block with a hint for players, telling them how to change their data:


Clicking on the link jumps to the user account page. Put the hint block in a sidebar:

Hint position

It shows on every page, but only for people with the player or manager role.

Move the login link to somewhere out of the way, like the lower right of the page.

Make sure that only administrators can create new accounts, not visitors.

Add a site contact form with an image CAPTCHA.

Create one manager account, and four player accounts. Create them manually, not using Devel generate. Create four games.

Remember to test your site thoroughly. For example, log in as a player, and make sure that they site acts as it should.

Submit the URL of your site, the username and password for user 1, the username and password for a manager, and the username and password for a player. If you have a partner, type in both your names when you submit your solution.

(If you were logged in as a student, you could submit an exercise solution, and get some feedback.)