A flexible homework submission and automatic grader web application