I've chosen a simple forum application that I believe will use what I've learned and introduce me to a few other things like user authentication and ajax interactions.
Here are the starting requirements I've outlined for my app:
- Users will exist with three different permission levels: guests, users, and admins
- Guests can browse forum threads
- Users can browse and post to forum threads
- Admins can browse, post, and create forum threads
- Admins can change user permission levels
- Threads will be listed ordered with the most recently updated first
- Posts will be listed ordered with the most recent first
- Threads should have a name, a creator, and should know when they were created
- Posts should have an author, content, and should know when they were created
- Threads and Posts can only be deleted by an administrator
- When a user logs in, note their last access date
With these requirements in mind, I see the need for the following views:
- Thread list page - the list of all threads
- Thread view page - the list of all posts in a thread
- The post view - for viewing a single post
- The user page - for viewing users of the forum (and editing if an admin)
Here are my mockups: