Sale!
Placeholder

A web based news reader for the School of Computing

10,000 3,000

78 Pages | chapter 1-5 | PDF and Microsoft Format

Topic Description

A web based news reader for the School of Computing

Summary/abstract
Usenet is used by many people, for many different purposes. The rise of the home network has made the job of keeping up with news groups incredibly difficult as articles read on one computer are not automatically marked as read on other machines. This project attempts to address these issues by producing a system which is both easy to use and which incorporates similar features to be found in
the more popular news readers. Also, the software can be configured to provide a remotely accessible,
centralised system where a user may read news articles.

Contents
1 Introduction 1
1.1 Aim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Minimum requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.4 Project schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4.1 Original project schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4.2 Revised project schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Background 5
2.1 Usenet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 What is Usenet? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.2 A brief history of Usenet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.3 Uses of Usenet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Existing news readers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.1 slrn: s-lang read news . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.2 Pan — A news reader for GNOME . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.3 Outlook Express . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.4 Summary of available news readers . . . . . . . . . . . . . . . . . . . . . . . 8
3 Methodology 9
3.1 Prototyping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.1 Inception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.2 Elaboration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.3 Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Waterfall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3 Iterative or Incremental development . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4 Analysis 12
4.1 User needs and requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1.1 Read articles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
iii
4.1.2 Post articles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1.3 Follow-up to articles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1.4 Browse news groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 Further requirement suggestions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2.1 Catch up with groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2.2 Show only subscribed groups . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2.3 Subscribe to groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2.4 Unsubscribe from groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2.5 Identify unread articles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2.6 Threaded article view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2.7 User preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2.8 Group ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2.9 Multiple style sheets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2.10 Toggle display of read/unread articles . . . . . . . . . . . . . . . . . . . . . . 14
4.3 Web accessibility & UK law . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.3.1 Steps taken to accommodate disabilities . . . . . . . . . . . . . . . . . . . . . 16
4.3.1.1 Blind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.3.1.2 Visually impaired . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.3.1.3 Colour blind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5 Design 17
5.1 Choice of development tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.1.1 Development language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.1.2 Required or ideal language features . . . . . . . . . . . . . . . . . . . . . . . 17
5.1.2.1 Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.1.2.2 PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.1.2.3 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.1.2.4 C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.1.3 Language summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.1.4 Data storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.1.5 Choices, choices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.1.5.1 Flat file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.1.5.2 XML database server . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.1.5.3 SQL database server . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.1.5.4 MySQL vs. PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . 24
5.2 System design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2.1 Pages of the system & User interface . . . . . . . . . . . . . . . . . . . . . . 25
5.2.2 Database design — KISS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
iv
6 Implementation 28
6.1 Minimum requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.1.1 Meeting user requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.2 Further enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2.1 Implemented . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2.1.1 HTML escaping . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2.1.2 Threaded article view . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.2.1.3 Threaded article navigation . . . . . . . . . . . . . . . . . . . . . . 30
6.2.1.4 Individual user preferences . . . . . . . . . . . . . . . . . . . . . . 30
6.2.1.5 Import & export newsrc . . . . . . . . . . . . . . . . . . . . . . . . 30
6.2.1.6 Multiple style sheet support . . . . . . . . . . . . . . . . . . . . . . 30
6.2.2 For future implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.2.2.1 Postscript or PDF output of articles . . . . . . . . . . . . . . . . . . 31
6.2.2.2 RDF/RSS (XML) feeds . . . . . . . . . . . . . . . . . . . . . . . . 31
6.2.2.3 Interface templating . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.3 Security considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.3.1 HTML escaping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.3.1.1 An example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.3.2 SQL injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.3.2.1 An example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.3.2.2 Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.3.2.3 Escaping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7 Evaluation 35
7.1 Evaluation via functional criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.1.1 Supported functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.1.1.1 Reading articles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.1.1.2 Individual user preferences . . . . . . . . . . . . . . . . . . . . . . 35
7.1.1.3 Composing articles . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.1.1.4 Posting articles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.1.1.5 Browsing news groups . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.1.1.6 Threaded article view . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.1.1.7 News group subscription . . . . . . . . . . . . . . . . . . . . . . . 37
7.1.1.8 News group ordering . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.1.1.9 Multiple style sheets . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.1.2 Usability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.1.2.1 User friendliness . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.1.2.2 Reading articles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.1.2.3 Composing articles . . . . . . . . . . . . . . . . . . . . . . . . . . 38
v
7.1.2.4 Browsing news groups . . . . . . . . . . . . . . . . . . . . . . . . . 39
7.1.2.5 Speed of system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.1.2.6 Binary posts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.1.3 Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.1.3.1 System colour scheme . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.1.3.2 Design changes via style sheets . . . . . . . . . . . . . . . . . . . . 41
7.1.4 Web browser compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.1.4.1 Lynx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.1.4.2 Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.1.4.3 Internet Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.1.4.4 Opera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.1.4.5 Gecko based Web browsers . . . . . . . . . . . . . . . . . . . . . . 42
7.1.4.6 Konqueror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7.1.5 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7.1.5.1 Installation instructions . . . . . . . . . . . . . . . . . . . . . . . . 43
7.1.5.2 User manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
7.1.5.3 User friendly interface . . . . . . . . . . . . . . . . . . . . . . . . . 44
7.1.5.4 On-line help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
7.1.6 Customising the interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
7.1.6.1 Cascading style sheets . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.1.6.2 Page functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.2 Comparison to alternative systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.2.1 What are the alternatives? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.2.2 OLRN: Ol’s Newsreader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.2.2.1 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.2.2.2 Disadvantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.2.3 WebNews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.2.3.1 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.2.3.2 Disadvantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
7.2.4 I-Forum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.2.4.1 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.2.4.2 Disadvantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.2.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.3 Further development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.3.1 Suggested improvements, fixes and enhancements . . . . . . . . . . . . . . . 49
7.3.1.1 Word wrap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.3.1.2 Reply via e-mail & carbon-copy . . . . . . . . . . . . . . . . . . . 49
7.3.1.3 Article sorting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
vi
7.3.1.4 Local article cache . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.3.1.5 Support for multiple languages . . . . . . . . . . . . . . . . . . . . 50
7.3.1.6 Multiple NNTP servers & per-server configuration . . . . . . . . . . 50
Bibliography

PROJECT SAMPLE/DEPARTMENTS

REVIEW OUR SERVICES

SEE FAQ