← MSIT 9 Midterm

MSIT 9 Midterm Reviewer

Oct 16, 2026 · Engr. Chad Aga D. Abinguna

Coverage and cheat sheet

The midterm covers report Topics 2 to 5 of the MSIT 9 syllabus (SSU, Prof. Sweet Mercy F. Pacolor). The syllabus weights are 6, 6, 5 and 6 sessions, so budget your review time about equally, with Topic 4 slightly lighter. Topic 3 is drawn from your own report deck; Topics 2, 4 and 5 follow standard references (MDN, web.dev, Kubernetes and platform docs) because the classmates' decks are not in your folder.

Topic Title Weight Core idea in one line
2 Modern Web Frontend Development and Progressive Web Applications 6 The browser renders HTML/CSS/JS; a PWA adds a manifest, a service worker and HTTPS to behave like an installed app.
3 Web Backend Development, APIs, Data Services, and Real-time Applications 6 The backend holds truth and rules; APIs are the contract; real-time escapes request–response.
4 Web Application Deployment, Cloud Services, and Distributed Architectures 5 Package once (containers), ship automatically (CI/CD), scale out behind a load balancer.
5 Mobile Application Development and Cross-Platform Architecture 6 Choose native, cross-platform, hybrid or PWA by performance, device access, team skills and budget.

Decision rules worth memorising

Topic 2 — Modern Web Frontend Development and PWAs

The frontend is everything that runs in the user's browser; a Progressive Web App (PWA) is a website that adds a web app manifest, a service worker and HTTPS so it can be installed, work offline and send notifications.

2.1 The three layers of the web

Layer Job Key ideas
HTML Structure and meaning Semantic elements (header, nav, main, article, button) give meaning to screen readers and search engines.
CSS Presentation Box model, Flexbox (one dimension), Grid (two dimensions), media queries, custom properties (variables).
JavaScript Behaviour DOM manipulation, events, fetch() for API calls, async/await, ES modules.

How a browser renders a page (critical rendering path): parse HTML into the DOM → parse CSS into the CSSOM → combine into the render tree → layout (compute sizes and positions) → paint → composite. CSS is render-blocking; synchronous JavaScript is parser-blocking, which is why scripts get defer or async.

2.2 Frameworks and the component model

2.3 Rendering strategies

Strategy Where HTML is built When Best for Trade-off
CSR — client-side rendering Browser On every visit, after JS loads Dashboards, apps behind a login Slow first paint, weaker SEO
SSR — server-side rendering Server On every request Personalised pages that need SEO (product pages, feeds) Server cost per request
SSG — static site generation Build server Once, at build time Blogs, docs, marketing sites Content stale until rebuilt
ISR — incremental static regeneration Build server, then in the background At build, then re-generated after a set interval Large catalogues that change occasionally Briefly stale pages

Hydration = the browser attaches JavaScript event handlers to HTML that the server already rendered. Meta-frameworks bundle these choices: Next.js (React), Nuxt (Vue), SvelteKit, Astro (islands architecture — ship JS only for interactive parts).

2.4 Responsive and accessible UI

2.5 Performance — Core Web Vitals

Metric Measures Good
LCP — Largest Contentful Paint Loading: when the main content appears ≤ 2.5 s
INP — Interaction to Next Paint Responsiveness to clicks and taps (replaced FID in March 2024) ≤ 200 ms
CLS — Cumulative Layout Shift Visual stability: how much content jumps ≤ 0.1

Techniques: code splitting and lazy loading, image optimisation (WebP/AVIF, srcset, loading="lazy"), minification and compression, caching, a CDN, and reserving space for images to avoid layout shift. Tool: Lighthouse in Chrome DevTools audits Performance, Accessibility, Best Practices, SEO and PWA.

2.6 Progressive Web Apps

A PWA has three technical requirements:

  1. HTTPS — service workers only run on secure origins (localhost is allowed for development).
  2. Web app manifest (manifest.json) — name, short_name, icons, start_url, display (standalone, fullscreen, minimal-ui, browser), theme_color, background_color. It makes the app installable.
  3. Service worker — a JavaScript file that runs in the background, separate from the page, acting as a programmable network proxy. It has no DOM access.

Service worker lifecycle: register → install (pre-cache the app shell) → activate (clean old caches) → idle / fetch (intercept requests) → terminated when idle. A new version waits until all tabs using the old one close, unless skipWaiting() is called.

App shell model: cache the minimal HTML, CSS and JS for the UI frame so it loads instantly, then fill content from the network.

Caching strategy How it works Use for
Cache first Serve from cache; go to network only on a miss Fonts, icons, app shell, versioned assets
Network first Try network; fall back to cache when offline News, API data that must be fresh
Stale-while-revalidate Serve cache now, update cache from network in background Avatars, feeds, non-critical data
Cache only Never touch the network Pre-cached static assets
Network only Never cache Payments, analytics, login

Other PWA capabilities: Push API + Notifications API (server-sent push even when the tab is closed), Background Sync (retry failed requests when connectivity returns), Cache Storage API and IndexedDB (offline data), Web Share, Badging. Workbox is Google's library for writing service-worker caching rules. Limits: iOS supports installed PWAs and web push (since iOS 16.4) but with fewer APIs than Android, and PWAs cannot reach every native API (e.g., full Bluetooth or background location).

PWA vs native in one line: a PWA is one codebase, no app-store gatekeeping and instant updates, but has weaker device access and discoverability inside app stores.

Topic 3 — Web Backend, APIs, Data Services, and Real-time Applications

The backend is where truth and rules live; an API is the contract the frontend uses to reach it; real-time techniques exist to escape the request–response limit that the server cannot speak first. (Source: your 60-slide report deck and its Word copy.)

3.1 The backend

3.2 Authentication and authorization

3.3 APIs

CRUD HTTP method Example
Create POST POST /students
Read GET GET /students/12
Update PUT (replace whole) / PATCH (change some fields) PATCH /students/12
Delete DELETE DELETE /students/12

GET must never change data (crawlers follow links).

Status family Meaning Common codes
2xx Success 200 OK, 201 Created, 204 No Content
3xx Redirect 301 Moved Permanently, 304 Not Modified
4xx Client error — your fault 400, 401 Unauthorized, 403 Forbidden, 404, 429 Too Many Requests
5xx Server error — my fault 500, 502 Bad Gateway, 503 Service Unavailable

3.4 Data services

3.5 Real-time applications

Technique Direction Protocol Use for
Short polling Client asks every N s HTTP Simple, infrequent updates
Long polling Server holds the request until data arrives HTTP Fallback when WebSockets are blocked
SSE (Server-Sent Events) Server → client HTTP, EventSource, auto-reconnect Notifications, feeds, AI token streaming
WebSocket Both ways, full-duplex HTTP upgrade to ws:// / wss:// Chat, games, collaboration
WebRTC Peer ↔ peer UDP/SRTP, needs signaling + STUN/TURN Video, voice, screen share

3.6 Security checklist (10 items)

HTTPS everywhere · hash passwords (bcrypt/Argon2) · validate input on the server · parameterised queries or ORM · least privilege for DB accounts · secrets in environment variables, not the repo · short-lived tokens + refresh tokens · rate-limit login · log security events but never passwords or tokens · comply with the Data Privacy Act of 2012 (RA 10173).

Topic 4 — Web Application Deployment, Cloud Services, and Distributed Architectures

Deployment is getting code from a developer's machine to users reliably and repeatedly: package it once (containers), ship it automatically (CI/CD), run it on rented infrastructure (cloud), and spread it across many machines so it survives failures and load (distributed architecture).

4.1 Hosting options and cloud service models

Model You manage Provider manages Examples
IaaS — Infrastructure as a Service OS, runtime, app, data Hardware, network, virtualisation AWS EC2, Google Compute Engine, Azure VMs
PaaS — Platform as a Service App code and data Everything below the app Heroku, Google App Engine, Render, Azure App Service
FaaS — Function as a Service (serverless) Individual functions Servers, scaling, runtime AWS Lambda, Cloud Functions, Vercel Functions
SaaS — Software as a Service Only your settings and data The whole application Gmail, Google Workspace, Microsoft 365

4.2 Containers and orchestration

4.3 CI/CD and DevOps

4.4 Deployment strategies

Strategy How it works Strength Cost
Recreate (big bang) Stop old version, start new Simple Downtime
Rolling Replace instances a few at a time No downtime, no extra fleet Two versions live at once; slower rollback
Blue-green Two identical environments; switch traffic from blue (old) to green (new) Instant switch and instant rollback Double infrastructure
Canary Send a small % of users to the new version, then widen Limits blast radius; real-user testing Needs good monitoring
A/B testing Split users to compare features or designs Business experiment Not a safety mechanism
Feature flags Ship code dark; toggle features at runtime Decouples deploy from release Flag debt

4.5 Scaling and distributed architecture

Topic 5 — Mobile Application Development and Cross-Platform Architecture

Mobile development is a choice among four approaches — native, cross-platform, hybrid and PWA — traded off on performance, device access, development cost and team skills; every approach still talks to the same backend through APIs.

5.1 Platforms

Android iOS / iPadOS
Owner Google (open-source AOSP base) Apple (closed)
Native languages Kotlin (preferred), Java Swift (preferred), Objective-C
Official IDE Android Studio Xcode (macOS only)
Modern UI toolkit Jetpack Compose (declarative) SwiftUI (declarative)
Older UI toolkit XML layouts / Views UIKit (storyboards)
Package format APK, AAB (Android App Bundle, required on Play) IPA
Store Google Play (plus sideloading) Apple App Store (review required; TestFlight for betas)
Market (PH) Large majority of phones Minority, higher-spend users

5.2 The four development approaches

Approach How it works Examples Strengths Weaknesses
Native Separate app per platform in the platform language Kotlin/Compose, Swift/SwiftUI Best performance, full device APIs, platform look Two codebases, two teams, higher cost
Cross-platform (native-compiled or native-rendered) One codebase compiled or bridged to native Flutter (Dart), React Native (JS/TS), .NET MAUI (C#), Kotlin Multiplatform About 1 codebase, near-native performance Framework lag on new OS features; larger app size
Hybrid (WebView) Web app (HTML/CSS/JS) wrapped in a native shell; plugins reach device APIs Ionic + Capacitor, Apache Cordova Reuses web skills and code Slower, less native feel
PWA Website installed from the browser Any web stack + manifest + service worker No store, instant updates, one codebase Limited device APIs, weaker on iOS

How the cross-platform frameworks differ

5.3 App architecture inside a mobile app

5.4 App lifecycle and device features

5.5 Building, testing and distributing

5.6 Choosing an approach — decision factors

Performance needs (games, AR, heavy graphics → native) · device API depth · time to market and budget (one codebase → cross-platform) · team skills (web team → React Native, Ionic or PWA; Dart learners → Flutter) · UI consistency vs platform look · offline needs · store presence · long-term maintenance. For a school system with a web admin panel and a student-facing app, one shared REST API with a Flutter or React Native client (or a PWA) is the usual defensible choice.

Commonly confused pairs

Pair The difference
SSR vs SSG SSR builds HTML on every request; SSG builds it once at build time.
CSR vs hydration CSR builds the whole page in the browser; hydration attaches JS to HTML the server already sent.
Service worker vs web worker Both run off the main thread; only the service worker intercepts network requests and survives the page closing.
Manifest vs service worker Manifest makes the app installable (looks); service worker makes it work offline (behaviour).
LCP vs INP vs CLS Loading vs responsiveness vs visual stability.
Authentication vs authorization Who you are vs what you may do.
401 vs 403 Not identified vs identified but forbidden.
PUT vs PATCH Replace the whole record vs change only the sent fields.
REST vs GraphQL Server decides the shape, many endpoints vs client decides the shape, one endpoint.
API call vs webhook You ask them vs they call you when an event happens.
SSE vs WebSocket One-way server → client over HTTP with auto-reconnect vs two-way over an upgraded connection.
ACID vs BASE Strict transactional correctness vs availability with eventual consistency.
Vertical vs horizontal scaling Bigger machine vs more machines.
Continuous delivery vs continuous deployment Human approves the release vs every green build ships automatically.
Blue-green vs canary Switch all traffic between two environments vs send a small slice of users first.
Image vs container Read-only template vs running instance of it.
VM vs container Own guest OS on a hypervisor vs shares the host kernel.
PaaS vs FaaS You deploy an app that runs continuously vs a function that runs per event.
Hybrid vs cross-platform WebView wrapping web code vs native-compiled or native-rendered UI from one codebase.
Flutter vs React Native Draws its own widgets (Dart) vs renders real native components (JavaScript).
MVVM vs MVC View binds to observable ViewModel state vs controller pushes updates to the view.
FCM vs APNs Google's push service (Android and cross-platform) vs Apple's push service (iOS).

Practice set (answers below)

  1. Which rendering strategy builds HTML once at build time? (a) CSR (b) SSR (c) SSG (d) Hydration
  2. Which file makes a PWA installable? (a) service worker (b) web app manifest (c) robots.txt (d) package.json
  3. A news API should stay fresh but still work offline. Best caching strategy? (a) cache first (b) network first (c) cache only (d) network only
  4. Which Core Web Vital replaced FID in 2024? (a) LCP (b) CLS (c) TTFB (d) INP
  5. WCAG's four principles spell: (a) CRUD (b) POUR (c) ACID (d) SOLID
  6. A logged-in student opens the payroll page. Correct status code? (a) 400 (b) 401 (c) 403 (d) 404
  7. Which API style lets the client request exactly the fields it needs? (a) REST (b) GraphQL (c) SOAP (d) webhook
  8. A projector shows a live attendance count and never sends data back. Best choice? (a) WebRTC (b) WebSocket (c) SSE (d) gRPC
  9. Fetching 100 students fires 101 queries. This is the: (a) cold start (b) N+1 problem (c) race condition (d) cache stampede
  10. Which ACID property means a transaction completes fully or not at all? (a) Atomicity (b) Consistency (c) Isolation (d) Durability
  11. You manage only your app code and data; the provider runs OS and runtime. This is: (a) IaaS (b) PaaS (c) SaaS (d) on-premises
  12. Two identical environments, traffic switched at once, instant rollback: (a) rolling (b) canary (c) blue-green (d) recreate
  13. The smallest deployable unit in Kubernetes: (a) node (b) pod (c) service (d) cluster
  14. Under a network partition, CAP says you must choose between: (a) cost and speed (b) consistency and availability (c) SQL and NoSQL (d) latency and throughput
  15. Adding more servers behind a load balancer is: (a) vertical scaling (b) horizontal scaling (c) sharding (d) caching
  16. Which framework draws its own UI with its own rendering engine? (a) React Native (b) Ionic (c) Flutter (d) Cordova
  17. An Ionic + Capacitor app is an example of: (a) native (b) hybrid (c) PWA only (d) Kotlin Multiplatform
  18. Google's recommended Android architecture pattern: (a) MVC (b) MVVM (c) MVP (d) VIPER
  19. Apple's push notification service: (a) FCM (b) APNs (c) SSE (d) MQTT
  20. Android's preferred native language today: (a) Java (b) Dart (c) Kotlin (d) Swift

Answer key: 1 c · 2 b · 3 b · 4 d · 5 b · 6 c · 7 b · 8 c · 9 b · 10 a · 11 b · 12 c · 13 b · 14 b · 15 b · 16 c · 17 b · 18 b · 19 b · 20 c

Sources