Direct Congress Milestone II Dan Skorupski
Tools Django ("jang oh"): Web application framework lxml: libxml2 bindings for XML/HTML parsing Python: Programming language sqlite ("sequel lite"): Embeddable SQL database nginx ("engine x"): Lightweight web server cron: Service for periodically running tasks on *nix systems Everything swappable except Django/lxml All this running on Debian Prototype/script.aculo.us: Javascript libraries
Frontend design Model-View-Controller (MVC) design pattern Supported by Django The model is the information held by the application (stored in a database as tables of legislation, user accounts, discussion threads, etc). The view is the user interface that presents the information in the model. The controller responds to user interactions with the view and updates the view and model accordingly.
Backend design Will periodically run a Django script with cron that: Grabs web pages from Senate.gov, etc Parses them with lxml Interprets the data and adds new data to the database
Resources There are numerous prebuilt Django applications: django-authopenid django-registration django-voting django-forum django-graphs django-yacaptcha
Timeline & tasks 1.Dan S: Study available info from data sources and work on parsing the data and inserting it into the database in a regular. Dan V: Work on building or integrating existing user registration and profile system. 2.Dan S: Textual and graphical display of data. Dan V: Voting and result analysis. 3.Dan S: Comment system. Dan V: Security (SSL, CAPTCHA) 4.Navigation and pulling everything together, user friendliness. 5.Polish and looks, mobile version.