80 likes | 189 Views
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
E N D
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 • 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. • Dan S: Textual and graphical display of data. Dan V: Voting and result analysis. • Dan S: Comment system. Dan V: Security (SSL, CAPTCHA) • Navigation and pulling everything together, user friendliness. • Polish and looks, mobile version.