Practice: Web Applications
💡 This is your chance to put what you’ve learned into action.
Try solving these practice challenges to check that you understand the concepts.
Submission
To log your practice for credit:
- Practice exercises will be graded for completion not correctness. You have to document that you did the work, but we won't be checking if you got it right.
- You are encouraged to engage with all the exercises listed on the practice page.
- You are expected to submit only the details requested on the Gradescope submission.
Exercise 1
Objective: Discover the underlying architecture of web applications through firsthand experience.
Steps:
-
Pick Your App: Select a web application you often use. It can be anything from Gmail, Facebook, to Dropbox, or any other platform you're fond of.
-
Use and Observe:
- Spend about 10-15 minutes interacting with your chosen app. It could also be reflecting on your past experiences with it.
- Jot down all the different functionalities and features you notice (e.g., logging in, searching, retrieving data, submitting data).
-
Break It Down:
- For each feature you've noted, try to guess what's happening behind the scenes. What operations might be taking place on the server versus on your device (client-side)?
- For instance, when you search for a friend on Facebook, ponder over the mechanisms working in the background to fetch that information for you.
-
Data's Journey:
- Think about the origins of the data for each function. Is it being pulled from a database? Sourced from elsewhere? Maybe it's cached?
- Sketch a basic flow diagram, showing how you believe data moves through the app, from the point of a user's request to its display on screen.
-
Experience Matters:
- Reflect on how the data is presented to you. Do you think there's any behind-the-scenes data tweaking to enhance the user experience?
- Identify features that seem to prioritize performance (e.g., content that loads progressively, potential data compression).
-
Outside Help:
- Do you notice any elements that hint at third-party integrations? For instance, some apps let you sign in using Google or Facebook. How do you think this integrates into the app's architecture?
-
Show and Tell:
- Compile your insights into a brief presentation format. Your showcase should include:
- A quick intro to your chosen web application.
- An outline of its main features.
- Your own architectural diagram, hypothesizing client-side, server-side, data movements, and possible third-party interactions.
- Observations about design choices focused on user experience and performance.
- Compile your insights into a brief presentation format. Your showcase should include:
Exercise 2
Create and deploy a Flask app that shows a text: Hello world
when you visit the /
route.
Use the render
deploy provider. Paste the link of your deployed app into the Gradescope submission.