360 likes | 486 Views
MATHCOUNTS Web Application. Faculty Advisor - Dr. William Acosta Course Instructor - Dr. Gursel Serpen. Andrew Ameling Helen Vasconcelos Christopher Volny. Automated Registration Concurrent Grading Intuitive User Application. MATHCOUNTS - Background.
E N D
MATHCOUNTS Web Application Faculty Advisor - Dr. William Acosta Course Instructor - Dr. Gursel Serpen Andrew Ameling Helen Vasconcelos Christopher Volny • Automated Registration • Concurrent Grading • Intuitive User Application
MATHCOUNTS - Background • Mathcounts gets kids excited about math • Promotes STEM careers • Contests are important • Volunteers' time is valuable
Agenda • Problem • Formulation • Solution • Discussion • Conclusion
Agenda • Problem • Formulation • Solution • Discussion • Conclusion
Problem - Assessment • Registration • Emails and phone exchange • Decentralized • Varies by site and coordinator • Grading • Local application • Single user • Not stable
Problems - Identification • Lacks automation • Time consuming • Does not scale • Error prone • Learning curve
Agenda • Problem • Formulation • Solution • Discussion • Conclusion
Formulation - Requirements • Scalable • Automated • Efficient • Consistent • Easy • Manageable
Formulation - Constraints • Ease of use • Fault tolerance • Burst load • Privacy • Development time • Cost • Consistent, quality product
Agenda • Problem • Formulation • Solution • Discussion • Conclusion
Solution - Scalable Web Application • Centralized and consistent • Multi-user operations • Simplified and powerful • Managed • Familiar
Agenda • Problem • Formulation • Solution • Discussion • Conclusion
Agenda Discussion • "Batteries included" development • Process driving success • Data structures defining efficiency
Discussion - "Batteries Included" • Developed fast • Good engineering practice • Quality outcome (maintainable)
"Batteries Included" Tools • Django Web Framework • Apache Httpd Web Server • MySQL Database • Memcached
"Batteries Included" - Django • Loose coupling, tight cohesion • Quick development (batteries) • Consistent • Scalable • Free • Powerful
"Batteries Included" - Apache Httpd • Industry standard • Scalable • Free • Stable
"Batteries Included" - MySQL DB • Industry backed • Common • Scalable • Free • Stable
"Batteries Included" - Memcached • High performance • Simple • Scalable • Free
Agenda Discussion • "Batteries included" development • Process driving success • Data structures defining efficiency
Process Driving - Registration • User Registration Module • School Registration • Testing Site Administrator Registration
Process Driving - Admin Interface • Coach's Dashboard
Process Driving - Admin Interface • Testing Site Administrator's Dashboard
Process Driving - Admin Interface • Mathcounts Administrator's Dashboard
Process Driving - Grade Entry • One Global Database
Agenda Discussion • "Batteries included" development • Process driving success • Data structures defining efficiency
Data Structures - Framework • MVC type framework (called MVT in Django) • M = Models • V = Views • T = Templates
Data Structures - Models • Admin Interface is automatically generated • Automatically creates database using ORM • In general change the models not the code
Data Structures - Views • Interacts with the models • Application code for web app • Tie the Models & Templates together
Data Structures - Templates • Display for the application • Simple template language • Can be used with advanced front end tools • Generate output code effortlessly
Data Structures - Forms • Auto generated from models • Easy to use and customizable
Data Structures - End Product • URLs • Validation • LOC
Agenda • Problem • Formulation • Solution • Discussion • Conclusion
Conclusion • Identified problem • Formulated requirements • Postulated solutions • Identified tools • Defined process • Modelled efficiency • Implemented solution
Questions Thank you!