Assignment 4: Publishing Posts
- Set date:
- Monday, 28 March 2011
- Due Date:
- Monday, 16 May 2011, 11:59 PM
- The tutorial chapter(s) relevant for this activity:
- Mode of submission:
-
Electronic submissions only! Please use Submissions link on this web page. E-mailed submissions will not be accepted.
- Your Task:
-
This is the final development stage of the application started in Assignment 2 and extended in Assignment 3.
This time, your goal is to provide registered users of your application with a facility to publish and exchange their posts (reviews, comments, observations, recipes etc) on topics related to the theme of your application. Each post should be a short but multi-line message related to some subject. Examples may include: reviews of books, movies, songs or photos, comments on travel destinations, cooking recipes, advice on various plants, observations of various species of birds, comments on cars or mobile phones models.
This task is open-ended, and it is much up to you how you are going to shape your application. You will find some requirements below, in the marking Scheme section.
- Marking Scheme:
-
To get a minimum pass (at 14 marks) you MUST meet the following requirements:
- Application must work. Limited functionality is better than runtime errors!
- Application must work properly with the lab computers in Sopwith Building, with Rails 2.3.5 or newer, without any additional gems, plugins and other non-standard components.
- Each post must have a subject (book title, species of bird, motif of photography) and content (body).
- Only registered and logged users can publish posts.
- Users can read all posts written by other people.
To get more marks (up to 35), you SHOULD also include:
- Users should be able to modify or delete their posts. They shouldn't change posts written by others unless they are privileged users.
- Posts on a single topic should be grouped and viewed together, for example all reviews of the given book or all recipes for doughnuts.
- Navigation should allow viewing 'all posts by the same author' or 'all posts on the same topic'.
To get maximum marks, or to aim at extra marks for excellence, you COULD even have:
- Posts or subjects may be structured, for example books can have titles, authors, genres and bird observations may be related to the observed species, but also environment, region, observation time etc.
- More interesting navigation options, for example 'all books by Kate Mosse', 'all species observed at the lakeside', 'all 4WD cars'.
- Search based on tags, keywords or text-search.
- Uploading images or other multimedia content.
- Threaded discussions - users can publish a post as a reply to some other person's post.
- Private discussions - users can send private messages to other users.
- Moderated discussions - users can only get their posts published after approval by a privileged user.
You WILL NOT get any marks for:
- Showing posts only on their author's page, even if it is available publically. Therefore implementing hobbies exactly as described in Chapter 9 of the Tutorial will not bring you any marks.
- I am not interested in implementation of the 'friendships' like described in Chapter 10.
LangBook is a sample application that allows users to exchange their opinions about programming languages. Most of the requirements from the first two lists are implemented, but none of the third one. If sent as an assessment, this application could bring its author full 35 marks.
Up to 10 extra points may be awarded on top of the regular marking for excellent quality submissions.
- Remarks
-
Chapter 9: Modelling User Hobbies. The Hobby model and controller may inspire you to implement your posts, which are technically quite similar. Notice that just using Hobby example will not bring you marks!
Chapter 10: Modelling Friendships. Read this chapter and you should be prepared to model more complex relationships between objects.
The best approach is to do some practice, and to build a FakeBook type of application (following all the chapters 7 - 10), and then start again with the exact structure you need for your application.
Copyright (C) 2009-2011 by Jaroslaw Francik

