====== Fall 2011 Schedule ====== ==== Sept 9-23: CS warmup: HTML, CSS ==== * Read through the slides for [[http://www.cs.wlu.edu/~sprenkle/cs335/schedule.php|Apr 26]] and do Lab 0 * Read through the slides for [[http://www.cs.wlu.edu/~sprenkle/cs335/schedule.php|Apr 27]] and do Lab 1 * Read through the slides for [[http://www.cs.wlu.edu/~sprenkle/cs335/schedule.php|Apr 28]] and do Lab 2 ==== Sept 23-Sept 30: Preliminary Work with Python for XML, HTML, and HTTP ==== * start some preliminary work with extracting the information from one DB * get the data from one HTML document for one inscription * extract the data: parse the HTML to get the field name and the field value * If the HTML is well-formatted, you may be able to use an HTML parser * Create a new Python class that represents one inscription * Can be used by your scripts for each of the DB * Create a method to export the object as XML (basic at first) * [[http://docs.python.org/release/3.1.2/library/urllib.request.html|Using Python to access URLs]] * [[http://docs.python.org/release/3.1.2/library/html.parser.html|Python's Built-in HTML parser]] -- requires well-formatted HTML. Is the HTML for our pages well-formatted? If so, yea! If not, may need to look for help elsewhere * [[http://code.google.com/p/html5lib/|HTML 5 Lib for parsing HTML with Python]] * [[http://www.crummy.com/software/BeautifulSoup/|Beautiful Soup]] - for screen scraping, but only works with Python 2 well. * [[http://lxml.de/lxmlhtml.html|lxmlhtml.html]] - not sure for which Python or how to download/install * [[http://www.postneo.com/projects/pyxml/|Creating XML with Python]] ==== Oct 1 - Oct 14: Create a web interface ==== * Create a "static mock-up" of the web site that will be used for viewing the inscription data * Static mock-up means that it's not dynamic -- you'll create web pages that represent what the user will see when they first go to the web site, how they'll access the inscriptions, what the page will look like when they click on an inscription, if they try to edit the data, etc. * We want to see how people would use the site so that we work out any usage kinks early, to see how we should design the site **NEW** * Create a "summary version" and "detailed version" mock up of an inscription for the web site * Add the Professor Bond-specific information: Type of Association, Deity, Trade * Upload your code to your public_html directory (in an appropriate directory) * Contact Professor Bell and show her the mockup, explaining the current state and goals and requesting feedback * Start learning Django * Django requires Python 2.x; it's not compatible with 3.x yet. Python 2.x is not too different from Python 3.x, but there will be some kinks * For now, try out Django on your machine: [[https://docs.djangoproject.com/en/dev/intro/install/|install]] it and Python 2.x (probably 2.7), if you don't already have it. You'll want to be able to "play" with Django on your machine * Follow the [[https://docs.djangoproject.com/en/dev/intro/tutorial01/|tutorial]] * that you could use to view the data and maybe even edit the data * Start creating Inscription class in Python, which will be used by Django to retrieve info about the Inscription ==== Oct 14 - 21 ==== Complete the HTML parser (see above) ==== Oct 21 - Nov 4: Automation ==== Automating the process of extracting the data from one site, getting ALL data, saving in XML, finding/fixing issues * [[http://www.cs.wlu.edu/~sprenkle/cs111/examples/25-design_classes/#file3|Using Command-Line Arguments in Python]] ==== Nov 4-18: Adapt process for other web sites ==== * modify the process for the other web sites, starting to collect data * as much as possible, reuse your code ==== Nov 18-Dec 9: clean up, refine, test ====