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
Feb 23, 2016
MATHCOUNTS Web Application
Andrew AmelingHelen VasconcelosChristopher Volny
Faculty Advisor - Dr. William AcostaCourse 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
1. Problem
2. Formulation
3. Solution
4. Discussion
5. Conclusion
Agenda
1. Problem
2. Formulation
3. Solution
4. Discussion
5. Conclusion
Problem - Assessment
• Registrationo Emails and phone exchangeo Decentralizedo Varies by site and coordinator
• Gradingo Local applicationo Single usero Not stable
Problems - Identification
• Lacks automation
• Time consuming
• Does not scale
• Error prone
• Learning curve
Agenda
1. Problem
2. Formulation
3. Solution
4. Discussion
5. 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
1. Problem
2. Formulation
3. Solution
4. Discussion
5. Conclusion
Solution - Scalable Web Application
• Centralized and consistent
• Multi-user operations
• Simplified and powerful
• Managed
• Familiar
Agenda
1. Problem
2. Formulation
3. Solution
4. Discussion
5. Conclusion
Agenda
Discussion
1. "Batteries included" development
2. Process driving success
3. 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
1. "Batteries included" development
2. Process driving success
3. 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
1. "Batteries included" development
2. Process driving success
3. 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
1. Problem
2. Formulation
3. Solution
4. Discussion
5. Conclusion
Conclusion
• Identified problem
• Formulated requirements
• Postulated solutions
• Identified tools
• Defined process
• Modelled efficiency
• Implemented solution
Questions
Thank you!