Building Secure Web Applications with Python and Flask

Card image cap

This course is an introduction to building secure, full-stack web applications with Python and Flask. We'll start with Python and Flask, and then subsequent weeks will cover how to add Flask extensions to your applications to implement common web app functionalities, how to protect your website from bad actors, and more! At the end of the course, you'll be able to deploy your own web app for the world to see.

Lectures: Online via zoom (see link in ELMS), Fridays 1:00pm
Instructors: Dhanvee Ivaturi, Nikolay Pomytkin
View the Syllabus here for more details

Schedule


This is the current schedule for the class. More details can be found on the syllabus. Of course, the schedule is subject to change as the semester goes on.

Week # Date Topic Assignment Links
1 01/29 Course Details, Intro to Python P1 assigned (Python practice), Q1 assigned
2 02/05 Flask Intro P1 due, P2 assigned (First Flask App). Q1 due, Q2 assigned
3 02/12 Forms, CSRF Q2 due, Q3 assigned
4 02/19 Databases & Injection Attacks P2 due, P3 assigned. Q3 due, Q4 assigned
5 02/26 User Management Q4 due, Q5 assigned
6 03/05 Bootstrap & more P3 due, P4 assigned, Q5 due, Q6 assigned
7 03/12 CSS/React/API Design Q6 due, Q7 assigned
8 03/19 Spring Break P4 due, Q7 due
(more weeks available on syllabus)

Projects


Projects will be posted here as the semester goes on. More details can be found on the syllabus. Projects will be distributed via github, and will be submitted via ELMS. We recomment checking out the whole "cmsc388j-spring21" repository so that you can run `git pull` to get new projects.

# Topic Due Late Deadline Link
1 Python practice 02/04 11:59 PM ET 02/08 11:59 PM ET github
2 First Flask app - Poke-Info 02/18 11:59 PM ET 02/22 11:59 PM ET github
3 Movie Ratings Database 03/7 11:59 PM ET 03/7 11:59 PM ET github
4 Movie Ratings Database Pro 03/22 11:59 PM ET 03/25 11:59 PM ET github

Course Details


ELMS will be used for project submissions.
Piazza will be used for course communication.

Please use Piazza as your primary communication with the course staff, we'll get back to you the quickest on Piazza. If you absolutely cannot use Piazza, then email us; if you are emailing Nikolay or Dhanvee, make sure to CC the other. Additionally, please include [CMSC 388J] at the start of your subject line so we don't accidentally ignore your email.

Course Instructors:
Nikolay Pomytkin: pomytkin [AT] cs.umd.edu
Dhanvee Ivaturi: dhanvee [AT] cs.umd.edu

Faculty Sponsor:
Micheal Marsh: mmarsh [AT] umd.edu

More Info


Course Evaluations

If you have a suggestion for improving this class, don't hesitate to tell the instructor or TAs during the semester. At the end of the semester, please don't forget to provide your feedback using the campus-wide CourseEvalUM system. Your comments will help make this class better.

Excused Absence and Academic Accommodations

See the section titled "Attendance, Absences, or Missed Assignments" available at Course Related Policies.

Disability Support Accommodations

See the section titled "Accessibility" available at Course Related Policies.

Academic Integrity

Note that academic dishonesty includes not only cheating, fabrication, and plagiarism, but also includes helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work. In short, all submitted work must be your own. Cases of academic dishonesty will be pursued to the fullest extent possible as stipulated by the Office of Student Conduct.
It is very important for you to be aware of the consequences of cheating, fabrication, facilitation, and plagiarism. For more information on the Code of Academic Integrity or the Student Honor Council, please visit http://www.shc.umd.edu.