Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007
Spring 2000 Project Assignment Description
For Spring 2000, your project is to create a personalized newspaper that users can print.
There are two major parts to the project: Specification of news sources, and generation of the newspaper.
Specification of News Sources
Users are to be given the option of several Web-based news sources. These must include:
- http://www.slashdot.org for Technology news.
- http://espn.go.com for Sports Headlines and TV Listings (SEPARATE options – a user could ask for just Sports Headlines, or TV Listings, or neither).
- http://www.cnn.com for World, US, Business, Space, Health, Entertainment, Books, Travel, and Food news. (All of these SEPARATE options must be offered.)
- http://www.bbc.co.uk/home/today/ for World Service, News, Education, Entertainment, Health, and Science news. (Again, each are separate options.)
- http://www.accessatlanta.com/ for Local, Weather, or Traffic news. (Each separate.)
- http://www.georgia-navigator.com for Traffic news.
You may include other options if you would like. The user must be allowed to choose any combination of the above. The user must be able to save the choices so that a new personal newspaper can be generated daily without re-specifying the news sources.
The user must also be allowed to choose the primary news category for them:
- National or World News
- Local News
If a user selects NO news sources, at least two general news sources must be included in the paper.
Generation of Personal Newspaper
To generate the paper, you will visit the selected news sources, gather headlines, text, and graphics from those sites, and compose a personal newspaper. You will generate the newspaper as Postscript, named newspaper.ps so that the user can simply print it after generation. After a request for generation, the postscript must be generated within five minutes on a Pentium-100 class or better machine.
Each story that you include from the news sources must come with a title that you will include above the story and in a larger font size and boldfaced. If at least three headline stories are available for any news source, all three must be included in the paper (up to the newspaper size limit), but you need not gather news from more than three. You must also include the source URL for each story as a byline. You must attempt to access every requested news source, and your code must work for most days and for most cases for every available news source. Your newspaper must not be larger than 20 pages. You can cut-off stories, but only at a paragraph break (not mid-sentence or mid-word).
You must have at least three columns on the front page!. You may have more than three, and you may decide to group columns for a wider story on the front page. But at some point on the front page, a user should be able to identify three separate columns. You will probably find that you cannot fit most stories onto the first page (as real newspapers find). You should flow stories from the front page onto subsequent pages, with a continuation remark at the end of the page on the front page (e.g., "Story continued on page 3"). You may have any number of columns on subsequent pages. Not all pages need to start on the front page, or even be referenced from the front page. The headline stories from primary news category sources (e.g., if Sports is selected as the primary news category, CNN Sports and ESPN Sports are the primary news sources) MUST be on the front page.
You must include at least one graphic (e.g., photograph) on the front page, and it must come from one of the selected news sources. You can define your own rules for how you pick which graphic and how and where you place it on your page. There must be at least one other graphic on subsequent pages
You can pick whatever fonts you want for generating your newspaper, but they must be readable by the user.
Hints and Warnings
- Designing a multi-column newspaper is an NP-complete problem. You cannot build a perfect solution that always works and completes in reasonable time. However, you can build a reasonable solution that always works. That's your goal.
- Web pages change! If something dramatic happens, CNN, ESPN, and others modify their format. Sometimes servers go down. You must still generate a newspaper! Fill from other sources or categories. Create flexible parsing and formatting techniques.
- Flowing text and postscript generation are built-in to Squeak, as is Web access to text and graphics and HTML parsing. See Chapter 7 of the Guzdial text for details.
- We reserve the right to change the assignment definition at any point during the quarter! We will be more reasonable than a real client, in that we will make changes in time that they can be reflected in your project before the due date, but you can be sure that we will make changes. You should design flexibly so that you can cope with these changes. The changes won't come out of the blue: They will be related to CS2340 (See Lecture Schedule) and CS2341 topics.
- Deal with the unusual cases. What happens if the user selects Sports as primary, but you can't reach any Sports news services? What if there's not enough content on a given day?
The whole project is due April 20 in class. Specifics on other milestones and turn-ins is on Spring 2000 Project Milestones.
Sometimes the user is away from their office computer, and still wants their newspaper. But they may not want all of the same news sources. You are to provide them with a web-based interface served from their office computer which will enable them to (a) remove some of their regular news sources from newspaper generation (no saving to the news sources file) and (b) generate a Web-based version of their newspaper.
When the user executes Newspaper webstart, the Web access should be enabled. Newspaper webstop should stop Web access. When the user visits http://mycomputers.ip.edu:8080/newspaper she should be served a page from which she can unselect news sources and generate a newspaper, or simply generate a newspaper given the standard news sources and primary news category. You must use a Squeak-based webserver. You're encouraged to use PWS, since that's what I'm lecturing on, but Comanche (http://comanche.swiki.net and http://seaweed.cc.gatech.edu/docs/) is okay, too.
The Web-generated newspaper does not have to have multiple columns. All the same stories must be presented, but they can be linear. At least one graphic must be included. Primary news category sources must be presented first.
Links to this Page