Recent Question/Assignment

Generated Sustainability Web Site for the Sunshine Coast
Your task in this assignment is to write a Python program that generates a small web site to inform Sunshine Coast people about some aspect of the local environment or a local sustainability issue.
Your program will read some input data from a text file (e.g., a spreadsheet in comma-separated-values, or CSV, format) and automatically generate several web pages with links going between the pages. The idea is that each time the data is updated, or more data becomes available (for example, each week or each month), your program will be run on the updated input data to automatically generate an updated web site that shows the latest information.
Each web page should show a different aspect of the information. For example, you might have a web page for several different beaches in the Sunshine Coast, with each page displaying surf information or pollution data for that beach. Or you might have a different page for each environment aspect that you are interested in, showing all the information for that aspect.
There must be one top-level page, called index.html, that is the entry point for the web site. This must give an overview of your whole web site, and should have links to all the other pages.
Input Data
You first task is to choose an environmental or sustainability issue that interests you, and get some suitable input data. You might like talk to friends and relatives and see if they have any environmental issues that they would like to have a prototype web site generated to display information about that issue.
A good source of lots of data sets is: https://data.qld.gov.au. Check out the categories, or click on Data then Categories, and explore categories like:
• Environment
• Construction and Housing
• Mining
• People and Society
• Transport
Learning Objectives
In this assignment you will learn how to:
1. use top-down design to divide a larger data processing task into parts;
2. use Python to read and write text files;
3. use functions to raise the abstraction level of your program;
4. use string and list methods to generate HTML.
Marking Criteria
This assignment is due at the end of Week 13 (Saturday 4 June). You must submit your design report, your Python program, your input data file(s), and the generated output web pages, via Blackboard.
It will be marked out of 30. Marks will be allocated as follows:
• Design Report [7 marks]. This should be a short (1-2 pages) report giving a brief introduction to the environmental/sustainability issue you have chosen; describing the format of the input data file(s); giving a summary of the format of the output web site including one of two screenshots / images; brief user documentation of how to run your program.
• Web Design and Functionality [7 marks]. To achieve maximum marks, the generated web site should contain several (5-10) web pages, with an entry page (index.html) that links to all the other pages, and the other pages linking back to the entry page; the layout and organisation of the pages should be elegant and readable, with appropriate choices of colours; good use of HTML tables for layout; the generated pages should conform to HTML standards; a simple CSS file should be used to specify the look of the web pages (this does not have to be generated by your program); some use of images; and several pages should display summary statistics that have been calculated from the input data (e.g. averages or totals).
• Python Documentation and Coding Standards [8 marks]. To achieve maximum marks, each function should include appropriate function docs; your program should start with a detailed documentation comment that describes the purpose and usage of the program; correct naming conventions should be followed for variable and function names; and the Python code should conform to standard layout and formatting conventions.
• Program Structure and Algorithms [8 marks]. To achieve maximum marks, your program should be elegantly designed; concise; structured to use functions for each major functionality of the program; use appropriate data structures (e.g. strings, lists, tuples, dictionaries, or objects) to store the data; make good use of Python libraries and methods (e.g. for strings and lists); and be reasonably efficient during execution (e.g. reading the input files just once, rather than many times). The key criterion is the use of functions to raise the abstraction level of the code, and make your program more concise and readable.
Note: the generated web pages should NOT contain any Javascript, as the goal of this assignment is to generate simple static web pages using Python.