MATHCOUNTS Web Application Andrew Ameling Helen Vasconcelos Christopher Volny Faculty Advisor - Dr. William Acosta Course Instructor - Dr. Gursel Serpen 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 Grading 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
"Batteries Included" - Deployment
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!