Professional Digital Skills — Batch 15
Google Apps Script · AI Creator Studio · WhatsApp Business · Paid Ads · Flutter · Firebase Functions · Website Security
7 courses · 84 distinct practical checkpoints · Theory → Action → Evidence → Troubleshooting
These are guided educational exercises. External accounts, paid campaigns, and cloud deployment require separate authorization and testing.
01. Google Apps Script — Professional Workflow
Intermediate → Expert
Learning outcome: Create an auditable office approval tracker with a Sheet, Form, and Apps Script.
Point 01 — Map the workflow
Theory / why: Define requester, reviewer, approver, status, and handover.
Practical step: Draw a request lifecycle: Submitted → Under Review → Approved/Rejected → Closed.
Expected output / verification: A decision map with named owners.
Common error / caution: Do not let the requester approve their own request.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 02 — Create the data model
Theory / why: A stable ID prevents accidental cross-record updates.
Practical step: Add columns RequestID, CreatedAt, Type, Requester, Amount, Status, Approver, DecisionAt, Notes.
Expected output / verification: A header row with nine fields.
Common error / caution: Avoid using row numbers as permanent IDs.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 03 — Configure form inputs
Theory / why: Form validation reduces malformed submissions.
Practical step: Create Google Form fields for type, requester email, description, amount; connect responses to a Sheet.
Expected output / verification: A test response appears in the response sheet.
Common error / caution: Keep sensitive data out of public forms.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 04 — Create a script project
Theory / why: Bound Apps Script runs with the connected spreadsheet.
Practical step: In Sheets open Extensions → Apps Script; create a function called onFormSubmit(e).
Expected output / verification: Script editor opens and saves.
Common error / caution: An installable trigger is needed for authorized services.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 05 — Generate stable request IDs
Theory / why: Time plus random data reduces collision risk.
Practical step: Use Utilities.getUuid() to generate a new RequestID and write it to the matching response row.
Expected output / verification: A unique UUID appears for each submission.
Common error / caution: Do not generate a new ID on every edit.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 06 — Use an installable trigger
Theory / why: Triggers run automatically after form submissions.
Practical step: In Apps Script Triggers add On form submit for the spreadsheet and authorize required scopes.
Expected output / verification: A new submission creates a request ID.
Common error / caution: Test under the intended owner account.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 07 — Add status validation
Theory / why: Controlled statuses make reporting consistent.
Practical step: Apply data validation to Status: Submitted, Under Review, Approved, Rejected, Closed.
Expected output / verification: Invalid status values are rejected or flagged.
Common error / caution: Avoid arbitrary status spellings.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 08 — Enforce approval rules
Theory / why: Business rules must be checked before changing records.
Practical step: Build an approveRequest(id,actor) function that verifies approver identity and current status.
Expected output / verification: Only authorized transitions are accepted.
Common error / caution: Sheet UI hiding is not access control.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 09 — Write an audit trail
Theory / why: Audit entries explain who changed what and when.
Practical step: Append RequestID, actor, old status, new status, timestamp to a separate Audit sheet.
Expected output / verification: Each decision creates a traceable entry.
Common error / caution: Never silently overwrite audit history.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 10 — Handle concurrent edits
Theory / why: Two approvers may act at the same time.
Practical step: Use LockService.getDocumentLock() before validating and writing a decision.
Expected output / verification: Simultaneous test requests do not overwrite each other.
Common error / caution: Always release locks in finally.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 11 — Build a review dashboard
Theory / why: A dashboard makes pending work visible.
Practical step: Use QUERY or pivot tables for pending counts by type and approver.
Expected output / verification: Dashboard totals match underlying records.
Common error / caution: Do not include private applicant details in shared charts.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 12 — Test and hand over
Theory / why: A workflow is complete only when failures are exercised.
Practical step: Test duplicate submit, invalid email, unauthorized approval, two simultaneous updates, and a rejected request.
Expected output / verification: Test log records pass/fail and next action.
Common error / caution: Do not enable notifications without consent.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Capstone assignment
Combine all 12 points into one reviewable sample project. Capture a requirements note, screenshots or safe test output, errors encountered, and a short handover document. Verify each checkpoint before declaring completion.
Knowledge check
- Which step is the primary security or quality gate, and why?
- What evidence proves the workflow actually worked?
- What should you test before a real user or client can use it?
02. AI-Assisted Creator Studio — Production Pipeline
Starting → Outstanding
Learning outcome: Create consistent logos, thumbnails, posters and reviewable assets.
Point 01 — Define audience and purpose
Theory / why: A visual is useful only if it communicates a clear message.
Practical step: Write a one-sentence audience, platform, and call to action for a sample tutorial.
Expected output / verification: A concise creative brief.
Common error / caution: Do not design before identifying the audience.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 02 — Set brand constraints
Theory / why: Brand systems prevent inconsistent outputs.
Practical step: Choose two brand colors, heading/body fonts, logo clearance, and minimum contrast.
Expected output / verification: A one-page mini style guide.
Common error / caution: Do not use tiny low-contrast captions.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 03 — Create an original concept
Theory / why: Avoid copying recognizable copyrighted artwork.
Practical step: Sketch three logo directions using simple shapes and original wordmarks.
Expected output / verification: Three distinct concept thumbnails.
Common error / caution: Avoid claiming ownership of copied marks.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 04 — Write a visual prompt
Theory / why: Specific prompts improve consistency.
Practical step: Specify subject, composition, typography, palette, aspect ratio, and exclusions.
Expected output / verification: A reusable prompt document.
Common error / caution: Generated text may need manual correction.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 05 — Generate a thumbnail draft
Theory / why: A thumbnail must read on a small phone.
Practical step: Create a 16:9 draft with one focal subject and a short headline.
Expected output / verification: A readable thumbnail draft.
Common error / caution: Avoid too many small elements.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 06 — Create a poster variant
Theory / why: Poster layout differs from video thumbnails.
Practical step: Rebuild the composition for a vertical social poster; preserve margins and hierarchy.
Expected output / verification: A vertical poster variant.
Common error / caution: Do not simply stretch the 16:9 image.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 07 — Refine typography
Theory / why: Typography affects comprehension and accessibility.
Practical step: Correct text manually; test title size at phone preview scale.
Expected output / verification: Error-free readable title.
Common error / caution: AI image tools can misspell words.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 08 — Prepare image assets
Theory / why: Transparency and export settings affect reuse.
Practical step: Export logo as SVG or high-resolution transparent PNG; export thumbnail as PNG/JPEG.
Expected output / verification: Reusable master and delivery files.
Common error / caution: Keep editable source separately.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 09 — Add human quality review
Theory / why: Automated generation needs editorial oversight.
Practical step: Check text, visual artifacts, copyright risk, brand consistency, and platform policies.
Expected output / verification: Completed review checklist.
Common error / caution: Never publish unreviewed claims.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 10 — Build asset naming rules
Theory / why: Consistent names speed production.
Practical step: Name assets course-topic-language-format-version, e.g. github-intro-en-16x9-v01.png.
Expected output / verification: Predictable asset folder.
Common error / caution: Avoid spaces and duplicate ambiguous names.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 11 — Create an A/B comparison
Theory / why: Testing should compare one meaningful change.
Practical step: Make two thumbnails with only the headline changed; document hypothesis.
Expected output / verification: Two controlled variants.
Common error / caution: Do not infer a winner from tiny sample sizes.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 12 — Package client deliverables
Theory / why: Clients need both publishable and editable assets.
Practical step: Deliver exports, editable source, font/license notes, size guide and revision log.
Expected output / verification: A complete handover ZIP.
Common error / caution: Do not bundle fonts without distribution rights.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Capstone assignment
Combine all 12 points into one reviewable sample project. Capture a requirements note, screenshots or safe test output, errors encountered, and a short handover document. Verify each checkpoint before declaring completion.
Knowledge check
- Which step is the primary security or quality gate, and why?
- What evidence proves the workflow actually worked?
- What should you test before a real user or client can use it?
03. WhatsApp Business — Compliant Service Workflow
Intermediate → Advanced
Learning outcome: Organize opt-in customer inquiries and human-assisted follow-up.
Point 01 — Define the service case
Theory / why: Start with a legitimate user-initiated conversation.
Practical step: Choose appointment inquiries and map inquiry → qualification → response → close.
Expected output / verification: A service flow chart.
Common error / caution: Do not send unsolicited bulk messages.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 02 — Set up the business profile
Theory / why: Clear business identity improves trust.
Practical step: Complete profile, hours, description, and official website in WhatsApp Business.
Expected output / verification: Accurate profile preview.
Common error / caution: Do not impersonate another business.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 03 — Create consent language
Theory / why: Users should understand what they agree to.
Practical step: Write an explicit opt-in sentence describing message type and opt-out method.
Expected output / verification: Saved consent template.
Common error / caution: Do not treat purchased phone lists as consent.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 04 — Use labels
Theory / why: Labels keep requests organized.
Practical step: Create New, Awaiting Details, In Progress, Resolved labels.
Expected output / verification: A sample inquiry moves through labels.
Common error / caution: Labels are not a secure customer database.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 05 — Write quick replies
Theory / why: Reusable replies reduce typing without sounding robotic.
Practical step: Create replies for pricing, operating hours, document requirements and human handoff.
Expected output / verification: Four editable quick replies.
Common error / caution: Avoid promising unverified delivery times.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 06 — Set a response policy
Theory / why: A clear service-level target improves reliability.
Practical step: Document response hours, escalation owners, and what happens outside business hours.
Expected output / verification: An internal response policy.
Common error / caution: Do not imply 24/7 human availability.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 07 — Create a catalog entry
Theory / why: Catalog items should describe genuine offerings.
Practical step: Add a real service with description, price or quote policy, and a relevant image.
Expected output / verification: One accurate service listing.
Common error / caution: Avoid unsupported guarantees.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 08 — Prepare a lead intake sheet
Theory / why: Minimize data collection to necessary fields.
Practical step: Track InquiryID, consent, request type, owner, status, last reply, next action.
Expected output / verification: A sample tracker with fictional entries.
Common error / caution: Do not store passwords or sensitive documents in Sheets.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 09 — Understand API prerequisites
Theory / why: Cloud API automation is not the same as the mobile app.
Practical step: Document Meta business setup, approved sender, template requirements and webhook endpoint needs.
Expected output / verification: An architecture checklist.
Common error / caution: Do not assume unofficial browser automation is supported.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 10 — Design webhook verification
Theory / why: Webhook endpoints must verify legitimate requests.
Practical step: Plan signature verification, idempotency keys, retries, and secret storage.
Expected output / verification: A secure webhook sequence diagram.
Common error / caution: Never hardcode access tokens in client-side JavaScript.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 11 — Test opt-out handling
Theory / why: A user must be able to stop nonessential messaging.
Practical step: Simulate STOP or unsubscribe request and mark the contact as opted out.
Expected output / verification: A recorded suppression test.
Common error / caution: Do not send follow-ups after opt-out.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 12 — Measure quality
Theory / why: Operational metrics should improve support, not spam.
Practical step: Review first-response time, resolution rate, and opt-out rate on fictional data.
Expected output / verification: A small monthly service dashboard.
Common error / caution: Do not optimize only for message volume.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Capstone assignment
Combine all 12 points into one reviewable sample project. Capture a requirements note, screenshots or safe test output, errors encountered, and a short handover document. Verify each checkpoint before declaring completion.
Knowledge check
- Which step is the primary security or quality gate, and why?
- What evidence proves the workflow actually worked?
- What should you test before a real user or client can use it?
04. Google Ads & Meta Ads — Measurement Lab
Advanced → Expert
Learning outcome: Design and evaluate a paid campaign before spending real money.
Point 01 — Define the business outcome
Theory / why: Clicks are not the same as customers.
Practical step: Write one measurable lead goal and a realistic cost-per-lead ceiling.
Expected output / verification: A campaign objective sheet.
Common error / caution: Do not promise guaranteed earnings.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 02 — Choose the audience
Theory / why: Audience selection should reflect genuine product fit.
Practical step: List target location, language, intent, exclusions and customer problem.
Expected output / verification: An audience brief.
Common error / caution: Avoid sensitive-attribute targeting.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 03 — Plan the landing page
Theory / why: Ad claims must match the destination.
Practical step: Sketch a landing page with offer, proof, privacy link and one clear form.
Expected output / verification: A landing-page wireframe.
Common error / caution: Avoid misleading scarcity or fake reviews.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 04 — Set UTM conventions
Theory / why: UTM tags help attribute visits.
Practical step: Create utm_source, utm_medium, utm_campaign and utm_content naming rules.
Expected output / verification: A sample tagged URL.
Common error / caution: Never place personal data in URLs.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 05 — Define conversion events
Theory / why: Measure actions that reflect business value.
Practical step: Specify form_submit or qualified_lead events and test with a staging page.
Expected output / verification: A conversion event specification.
Common error / caution: Do not count page views as qualified leads.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 06 — Build a Google Ads plan
Theory / why: Search ads respond to explicit user intent.
Practical step: Group keywords by intent; write relevant headlines and negatives.
Expected output / verification: A draft search campaign.
Common error / caution: Review policy and billing before activation.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 07 — Build a Meta Ads plan
Theory / why: Creative and audience context differ from search.
Practical step: Draft two creative concepts and a lead-form question set.
Expected output / verification: A Meta campaign draft.
Common error / caution: Avoid collecting unnecessary personal information.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 08 — Create a test budget
Theory / why: Controlled experiments limit financial risk.
Practical step: Use a hypothetical ₹3,000 test budget with a daily cap and stop rule.
Expected output / verification: A budget and stop-rule table.
Common error / caution: Do not launch without account owner approval.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 09 — Calculate funnel metrics
Theory / why: Metrics must use consistent denominators.
Practical step: For 1,000 impressions, 40 clicks, 4 leads, calculate CTR 4% and click-to-lead 10%.
Expected output / verification: A checked metrics worksheet.
Common error / caution: Do not confuse CTR with conversion rate.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 10 — Review attribution limitations
Theory / why: Browser privacy and consent affect reporting.
Practical step: Compare platform conversions with consented analytics and CRM lead counts.
Expected output / verification: A reconciliation table.
Common error / caution: Do not assume exact one-to-one matching.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 11 — Optimize one variable
Theory / why: Controlled changes are easier to interpret.
Practical step: Test one headline or creative while holding budget and audience constant.
Expected output / verification: A documented experiment plan.
Common error / caution: Avoid editing every setting simultaneously.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 12 — Prepare client reporting
Theory / why: Reports should state results and uncertainty.
Practical step: Create a report with spend, leads, cost/lead, limitations, and next actions.
Expected output / verification: A client-ready monthly report.
Common error / caution: Separate observed outcomes from projections.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Capstone assignment
Combine all 12 points into one reviewable sample project. Capture a requirements note, screenshots or safe test output, errors encountered, and a short handover document. Verify each checkpoint before declaring completion.
Knowledge check
- Which step is the primary security or quality gate, and why?
- What evidence proves the workflow actually worked?
- What should you test before a real user or client can use it?
05. Advanced Flutter — Offline-First App
Advanced → Outstanding
Learning outcome: Build a mobile task app with resilient local storage and sync planning.
Point 01 — Define offline-first requirements
Theory / why: Core actions should work without a network.
Practical step: Specify add, edit, complete and search tasks while offline.
Expected output / verification: A testable requirements list.
Common error / caution: Do not make network availability a hidden prerequisite.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 02 — Create project structure
Theory / why: Separation of concerns reduces maintenance cost.
Practical step: Organize lib/features/tasks, data, domain and presentation folders.
Expected output / verification: A clear Flutter folder tree.
Common error / caution: Avoid putting all logic in main.dart.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 03 — Model task entities
Theory / why: Stable IDs enable safe edits and future sync.
Practical step: Define Task(id,title,completed,updatedAt,version).
Expected output / verification: A serializable model.
Common error / caution: Do not use list index as permanent task ID.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 04 — Build accessible UI
Theory / why: Controls must be usable on small phones.
Practical step: Create task list, add form, edit dialog and visible empty state.
Expected output / verification: A responsive screen.
Common error / caution: Avoid tiny tap targets.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 05 — Validate inputs
Theory / why: Validation prevents empty or invalid records.
Practical step: Reject blank titles; trim whitespace; show inline errors.
Expected output / verification: A failed and successful validation test.
Common error / caution: Do not rely only on server validation.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 06 — Choose local persistence
Theory / why: Local databases preserve data between launches.
Practical step: Compare SQLite/Drift and shared_preferences; select a database for structured tasks.
Expected output / verification: A storage decision note.
Common error / caution: Do not store large relational records in preferences.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 07 — Implement repository pattern
Theory / why: A repository abstracts persistence from widgets.
Practical step: Define createTask, listTasks, updateTask, deleteTask operations.
Expected output / verification: Testable repository interface.
Common error / caution: Avoid database calls directly in every widget.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 08 — Add state management
Theory / why: Predictable state updates simplify UI.
Practical step: Choose Provider or Riverpod and bind loading/error/success states.
Expected output / verification: UI updates after a task edit.
Common error / caution: Do not silently swallow exceptions.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 09 — Design optional sync
Theory / why: Offline writes require conflict handling.
Practical step: Draft an outbox queue and last-write conflict policy with version checks.
Expected output / verification: A sync flow diagram.
Common error / caution: Do not overwrite remote changes without a policy.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 10 — Test lifecycle behavior
Theory / why: Mobile apps may be paused or killed.
Practical step: Test background/foreground, process restart, rotation and no-network state.
Expected output / verification: A lifecycle test log.
Common error / caution: Do not assume memory state survives process death.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 11 — Add automated tests
Theory / why: Tests protect behavior during future changes.
Practical step: Write unit tests for validation and repository plus widget test for add task.
Expected output / verification: Passing test report.
Common error / caution: Do not equate a successful build with functional correctness.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 12 — Prepare release build
Theory / why: Production builds require signing and checks.
Practical step: Review app ID, version, permissions, privacy policy, signing and AAB build.
Expected output / verification: A release checklist.
Common error / caution: Never commit signing secrets to Git.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Capstone assignment
Combine all 12 points into one reviewable sample project. Capture a requirements note, screenshots or safe test output, errors encountered, and a short handover document. Verify each checkpoint before declaring completion.
Knowledge check
- Which step is the primary security or quality gate, and why?
- What evidence proves the workflow actually worked?
- What should you test before a real user or client can use it?
06. Firebase Cloud Functions — Secure Backend
Advanced → Expert
Learning outcome: Design a server-side approval event with rules, validation and idempotency.
Point 01 — Define trusted boundaries
Theory / why: Client input must never be treated as authorization.
Practical step: Draw client → Auth → callable function → Firestore.
Expected output / verification: A trust-boundary diagram.
Common error / caution: Never grant admin rights based on client-supplied role.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 02 — Plan Firestore schema
Theory / why: A predictable schema simplifies security rules.
Practical step: Define requests/{id} with ownerId, status, createdAt, updatedAt.
Expected output / verification: A documented schema.
Common error / caution: Avoid exposing private fields in public collections.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 03 — Configure local tools
Theory / why: Use supported runtime and CLI versions.
Practical step: Create a Firebase project, install Firebase CLI, and initialize Functions and emulators.
Expected output / verification: A working local project.
Common error / caution: Check runtime support before selecting Node version.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 04 — Validate authentication
Theory / why: A callable function should reject unauthenticated requests.
Practical step: Read verified request.auth and return unauthenticated when absent.
Expected output / verification: Unauthorized test fails as expected.
Common error / caution: Never trust a UID supplied in request.data.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 05 — Validate payloads
Theory / why: Schema validation protects backend logic.
Practical step: Check allowed status values and maximum note length before any write.
Expected output / verification: Malformed payloads are rejected.
Common error / caution: Do not pass arbitrary objects directly to Firestore.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 06 — Check permissions
Theory / why: Role checks belong on the server.
Practical step: Look up approver role from trusted claims or server-managed documents.
Expected output / verification: Unauthorized role test fails.
Common error / caution: Do not accept an isAdmin boolean from the app.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 07 — Use transactions
Theory / why: Transactions prevent stale state changes.
Practical step: Read current status and update it inside a Firestore transaction.
Expected output / verification: Concurrent decisions yield one valid transition.
Common error / caution: Avoid read-then-write outside a transaction.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 08 — Implement idempotency
Theory / why: Retries must not duplicate actions.
Practical step: Store operationId and reject or replay duplicate operation IDs.
Expected output / verification: Repeated call produces one decision.
Common error / caution: Do not assume functions run exactly once.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 09 — Write audit entries
Theory / why: Audit trails support accountability.
Practical step: Write actor, requestId, oldStatus, newStatus and timestamp in the same transaction.
Expected output / verification: One audit record per accepted decision.
Common error / caution: Do not permit clients to edit audit entries.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 10 — Add App Check thoughtfully
Theory / why: App Check helps reduce abuse but is not authorization.
Practical step: Plan App Check enforcement after validating supported clients and debug setup.
Expected output / verification: A staged enforcement checklist.
Common error / caution: Do not treat App Check as a replacement for Auth.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 11 — Test with emulators
Theory / why: Local tests catch rules and function regressions.
Practical step: Test owner, approver, stranger, malformed data and retry in emulator suite.
Expected output / verification: A pass/fail test report.
Common error / caution: Do not test destructive operations on production data.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 12 — Deploy with rollback plan
Theory / why: Release safety requires monitoring and recovery.
Practical step: Deploy to staging, check logs, define rollback and verify production rules.
Expected output / verification: A signed-off deployment checklist.
Common error / caution: Never expose secrets in logs.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Capstone assignment
Combine all 12 points into one reviewable sample project. Capture a requirements note, screenshots or safe test output, errors encountered, and a short handover document. Verify each checkpoint before declaring completion.
Knowledge check
- Which step is the primary security or quality gate, and why?
- What evidence proves the workflow actually worked?
- What should you test before a real user or client can use it?
07. Website Security & Performance — Production Audit
Advanced → Outstanding
Learning outcome: Audit a real website responsibly and improve speed without breaking features.
Point 01 — Set authorized scope
Theory / why: Security tests must be performed only on owned or authorized systems.
Practical step: Document domain, allowed endpoints, test window and backup plan.
Expected output / verification: A written scope.
Common error / caution: Do not scan unrelated third-party sites.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 02 — Inventory dependencies
Theory / why: Old packages may contain known vulnerabilities.
Practical step: List frontend/backend dependencies and update policy.
Expected output / verification: A dependency inventory.
Common error / caution: Do not upgrade production without a staging test.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 03 — Review HTTPS and headers
Theory / why: Transport security and browser headers reduce risk.
Practical step: Check TLS, redirects, HSTS and content security policy on staging.
Expected output / verification: A header review checklist.
Common error / caution: Do not copy an overly restrictive CSP without testing.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 04 — Inspect authentication flows
Theory / why: Login must protect session and account recovery.
Practical step: Review rate limiting, reset links, session expiry and MFA availability.
Expected output / verification: An authentication test matrix.
Common error / caution: Never log passwords or tokens.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 05 — Review authorization
Theory / why: Users must not access others’ records.
Practical step: Test fictional user A cannot read or edit user B records in staging.
Expected output / verification: A pass/fail access-control test.
Common error / caution: Hidden buttons are not authorization.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 06 — Validate input handling
Theory / why: Server-side validation reduces injection and logic flaws.
Practical step: Test safe malformed values and confirm output encoding on staging.
Expected output / verification: A validation report.
Common error / caution: Avoid destructive payloads against live systems.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 07 — Optimize images
Theory / why: Oversized media slows mobile loading.
Practical step: Convert suitable images to WebP/AVIF and add responsive sizes.
Expected output / verification: Before/after transfer size comparison.
Common error / caution: Keep accessible alt text.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 08 — Measure Core Web Vitals
Theory / why: Field and lab data reveal different bottlenecks.
Practical step: Run Lighthouse and inspect LCP, INP, CLS plus waterfall.
Expected output / verification: A baseline performance report.
Common error / caution: Do not claim field scores from lab-only runs.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 09 — Reduce JavaScript cost
Theory / why: Excessive JS delays interaction.
Practical step: Defer noncritical scripts and remove unused bundles after testing.
Expected output / verification: Lower main-thread work in a rerun.
Common error / caution: Avoid breaking event handlers.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 10 — Configure caching
Theory / why: Cache strategy depends on asset mutability.
Practical step: Set versioned immutable assets and shorter HTML cache policy.
Expected output / verification: Correct response headers.
Common error / caution: Do not cache authenticated private responses publicly.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 11 — Test on mobile
Theory / why: Desktop-only QA misses real user failures.
Practical step: Test 360px viewport, slow network, keyboard navigation, and offline error state.
Expected output / verification: A mobile QA checklist.
Common error / caution: Avoid fixed-width overflow.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Point 12 — Prepare release report
Theory / why: Improvements must be measurable and reversible.
Practical step: Document baseline, changes, regression tests, and rollback steps.
Expected output / verification: A client-ready audit report.
Common error / caution: Never promise a perfect security score.
Your exercise: Repeat this step with a second fictional example; record your result and explain what changed.
Capstone assignment
Combine all 12 points into one reviewable sample project. Capture a requirements note, screenshots or safe test output, errors encountered, and a short handover document. Verify each checkpoint before declaring completion.
Knowledge check
- Which step is the primary security or quality gate, and why?
- What evidence proves the workflow actually worked?
- What should you test before a real user or client can use it?