Skip to content

Tech-at-DU/ACS-1710-Web-Architecture

 
 

Repository files navigation

ACS 1710 Web Architecture

This syllabus is a living document! Hold down the SHIFT key and press Refresh to get the latest version.

Course Description

This course is designed to introduce students to the Flask web framework. Students will learn language independent patterns that are repeated across many common servers. The course will cover topics including the request-response cycle, server-side templating, APIs, databases, & unit testing, to help students to build the skills necessary to create custom web sites.

This course covers language-independent web server frameworks and patterns in full-stack web design. Students will use their prior knowledge in HTML, CSS, and JavaScript to build the front-end of a simple web application, and then will learn new concepts to write a supporting back-end. This course covers the request-response cycle, server-side templating, parsing data from an HTML form, HTTP methods, and using APIs. More advanced concepts include document-based databases and controller testing.

Prerequisites:

  1. ACS 1700 (Web Foundations)

Learning Outcomes

By the end of the course, you will be able to ...

  1. Use Flask routes & route variables to create web pages with dynamic content.
  2. Use forms & Jinja2 templates to take user input and display a result.
  3. Make API calls & use/analyze the JSON data to show a result to the user.
  4. Read and write to the MongoDB database using the PyMongo Object Document Mapper (ODM).
  5. Implement Flask route tests to verify the correctness of routes.
  6. Understand how the “create, read, update, deletion” (C.R.U.D) operations form the basis of user interactions in web architecture.

Schedule

Course Dates: October 21 – December 13, 2024

Class Times: Tuesday, Thursday 1:00 PM – 3:45 PM

Class Date Pacing Recommendations (Complete all lessons up to - )
1 Tue, Oct 22 Module 1
2 Thu, Oct 24 Finished Module 1 Assignment
3 Tue, Oct 29 Module 2
4 Thu, Oct 31 Finished Module 2 Assignment
5 Tue, Nov 5 Finished Quiz 1 (HARD DEADLINE - CLOSES END OF WEEK)
6 Thu, Nov 7 Module 3
7 Tue, Nov 12 Finished Module 3 Assignment
8 Thu, Nov 14 Finished Quiz 2 (HARD DEADLINE - CLOSES END OF WEEK)
9 Tue, Nov 19 Module 4
10 Thu, Nov 21 Finished Module 4 Assignment
11 Tue, Nov 26 Module 5
12 Thu, Nov 28 Thanks Giving Holiday
13 Tue, Nov 3 -
14 Thu, Dec 5 Finished Module 5 Assignment
15 Tue, Dec 10 -
16 Tue, Dec 12 -

Assignments

Students will complete assignments at their own pace.

Assignments must be turned in via Gradescope for credit!

Assignments should be completed by the recommended date in the above schedules section. Students falling behind should connect with the instructor for help staying on pace!

Any assignments not complete by the final day of class (Wed, Mar 3 & Thu, Mar 4) will be given a score of 0.

Quizzes can be found on Gradescope for credit during the week of their listing.

Quizzes have a HARD DEADLINE date and will close on the Friday of its listed week.

Quizzes can be retaken once, with the final grade being the average of the two final scores.

Students that have completed all assignments with a score of 3 or higher and earned an 80% or greater on their quizzes AUTOMATICALLY PASS QUIZ 3 and will not be required to take it! 🤩

Topic Pacing Date Assignment
1 Tue, Oct 25 Module 1 Assignment: Request/Response
2 Tue, Nov 1 Module 2 Assignment: Forms & Templates
3 Thu, Nov 3 Quiz 1
4 Thu, Nov 10 Module 3 Assignment: More Forms
5 Tue, Nov 15 Quiz 2
6 Thu, Dec 1 Module 4 Assignment: APIs
7 Thu, Dec 7 Module 5: Databases
  1. Pymongo Todo List

Learning Modules

This course has been broken down into 5 modules for students to approach at their own pace. See the schedule below for recommendations on where you should be at in terms of content completion to help assess your pace.

Although this course has self-pacing elements--attendance is still a requirement! We will be doing activites, checking-in, and learning as a class!

  1. Introduction to the Request/Response Cycle
  2. Setting up and Using Flask Servers
  3. Introduction to C.R.U.D
  4. GET vs POST
  5. Working with Route Variables and Forms
  6. Interacting with Form Data in Flask
  7. Understanding **args and **kwargs
  1. Templating
  2. Named Parameters
  3. Conditional Rendering with Templates
  4. Loops in Templates
  5. Creating Reusable Components via Template Inheritance
  1. Introduction to APIs
  2. C.R.U.D in API's
  3. Working with JSON Objects
  4. Testing API Routes with Postman
  5. Using the Requests Library to Generate User Requests - Note! When following the example here you will need to run your server (main.py) in one terminal window and run the firstrequest.py example in a second terminal!
  1. Working with Virtual Environments and the requirements.txt File
  2. Creating and Managing Environment Variables with dotenv
  3. Leveraging the Datetime Library
  1. Introduction to Databases
  2. SQL vs NoSQL and Introduction to MongoDB
  3. Connecting a Flask Server to MongoDB Cluster
  4. Performing C.R.U.D Operations with PyMongo
  5. Pymongo Todo List

Evaluation

To pass this course, you must:

  • Earn an average score of 2 on each of the assignment rubrics. Each section's score will be determined by your performance on that week's assignment. The last section's score will be determined by your adherence to deadlines, class participation, & completion of the readings.
  • Pass the 3 quizzes by earning an average score of >70%.
  • Abide by the Attendance Policy.

Attendance Policy

Each student will be allowed 2 (two) unexcused absences and 2 (two) excused absences per course per term. An absence is excused if you reach out to your instructor prior to class to explain why you can't make it. If you exceed the total number of allowed absences, you will be withdrawn from the course.

Late Assignment Policy

Since this class uses a self-pacing model, there will be no late assignments. However, assignments must be turned in by the end of the term or else they will be scored as a 0!

Exceptions will only be made to this rule for extenuating circumstances such as prolonged illness. Please reach out to the instructor if something like this happens to you.

Academic Honesty Policy

At Make School, we highly encourage collaboration between students on assignments. Working with other people is the best way to learn!

However, there's a big difference between collaboration (writing code together with another person) and plagiarism (copying code from a classmate or outside source without providing proper attribution).

Here are some guidelines to follow in order to avoid plagiarism:

  1. If you are looking at an outside source for help, close the window containing the code before writing your own solution.
  2. Do not write down a line of code unless you completely understand how it works. (This is true even if the source you're referencing is the lesson slides/examples/etc!)
  3. If your code is still similar to an outside source or another student's, provide attribution by adding a comment to your code explaining where it was taken from.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 43.7%
  • CSS 31.9%
  • SCSS 13.4%
  • HTML 11.0%