80 likes | 195 Views
This project aims to develop a robust web application using Django, leveraging lxml for XML and HTML parsing, and SQLite for database management. The application will employ a Model-View-Controller (MVC) design pattern, storing legislative data, user accounts, and discussions in a structured format. A cron job will be implemented to periodically retrieve and process data from sources such as Senate.gov, enabling real-time updates to the database. The project will also integrate user registration, graphical data displays, and security features to ensure a user-friendly experience.
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.