IDCamp 2023/Fullstack/course

CineBlue

CineBlue is promoted from recovered remote evidence only: the local archive is empty, while the README, package metadata, Webpack configs, and source tree still document the submission clearly.

project links
Domain
Fullstack
Role
Frontend Engineer
Output
Web App
Category
Movie Search Web App
Project Framing

A source-backed case study built for recruiter review

This reading path makes the problem choice, evidence quality, user framing, execution decisions, and proof trail visible without overstating what the sources support.

Project Type
course

Dicoding front-end course submission for a movie search web app with movie listing, title search, genre filtering, responsive UI, and Webpack-based delivery scripts.

Orientation
Tech

Provides a source-backed frontend delivery artefact that demonstrates API-backed UI composition, custom elements, responsive layout work, and reviewer-oriented setup documentation.

Core Stack
JavaScript · Webpack · Babel · Bootstrap

Vanilla JavaScript application initialized from `src/app.js`, composed with custom elements, backed by TMDB fetch calls in `data-source.js`, styled with CSS and Bootstrap, and bundled through Webpack common/dev/prod configs.

Why This Problem Mattered

Problem framing before execution

The case-study layer starts with why this problem was selected and how the context justified investment.

Problem Framing Map

Issue

The course submission required a custom dynamic frontend that combined ES6, custom elements, Webpack, and AJAX data flow in one coherent app.

Context

CineBlue is reconstructed from remote source evidence, so the portfolio framing must stay tightly bound to what the README, source tree, and configs explicitly prove.

Why Selected

It is worth highlighting because it shows disciplined frontend delivery under explicit technical constraints while also demonstrating conservative evidence handling.

Problem statement

The Dicoding fundamental front-end submission required a custom web application that used ES6 JavaScript, custom elements, Webpack, and AJAX-driven dynamic data.

Solution thesis

Built a movie-search web app that renders popular movies, handles title search, supports genre-based discovery, and bundles the app through separate development and production Webpack configs.

Research and Evidence

What supports the narrative

Evidence is surfaced with its source type and credibility note so the recruiter can quickly see what is directly backed versus intentionally constrained.

Submission criteria
public

The project scope was driven by explicit Dicoding requirements around ES6, custom elements, Webpack, and AJAX-driven dynamic data.

Credibility: Supported by the recovered README and source tree references listed in the project sources.
Open supporting public source
Feature evidence
public

Movie listing, title search, genre search, and responsive display are all documented in source-backed materials.

Credibility: Feature scope is preserved in the README and package/build configuration references.
Open supporting public source

Credibility Notes

  • Because the local archive is empty, every public claim stays constrained to recovered remote evidence only.
  • No user adoption, API quota, or production usage claim is made for this project.
Who The User Was

User framing stays explicit

When formal research artefacts are not available, the page still explains who the work served and why that user framing is justified by the existing sources.

Primary user
Movie browsers who want to discover titles through search and genre-based exploration.

The documented feature set centers discovery interactions rather than account or transaction flows.

Reviewer stakeholder
Course reviewers assessing compliance with modern frontend delivery requirements.

The submission criteria are explicit and meaningfully shaped the implementation choices.

Decision Flow

How design thinking translated into decisions

The goal is to show the trace from research and insight to concrete product or system decisions, then to the outcomes those decisions supported.

Design Thinking Flow

Each step keeps the movement from evidence to action explicit before the rationale expands it.

  1. Step 1
    Constraint framing

    Used course requirements as the baseline definition of what the product needed to prove.

    Signal: Technical constraints became part of the product framing.
  2. Step 2
    Interaction design

    Centered the UI around browsing, searching, and filtering so dynamic data handling remained visible to reviewers.

    Signal: Feature scope maps directly to the app's API-backed interactions.
  3. Step 3
    Delivery packaging

    Separated development and production build behavior through dedicated Webpack configs.

    Signal: Implementation quality is visible at both UI and delivery-tooling levels.

Decision Rationale

Each decision keeps the path from insight to execution visible before ending on the outcome signal.

Custom elements
Insight

A componentized structure was needed without moving away from the required vanilla frontend stack.

Decision

Used custom elements for UI composition.

Outcome

The app remains aligned with the submission requirements while keeping the interface modular.

Separate Webpack configs
Insight

Frontend review quality depends on both runtime behavior and build discipline.

Decision

Used common, dev, and prod Webpack configs.

Outcome

The project demonstrates delivery-oriented frontend thinking, not just page rendering.

Solution and System Execution

Execution choices and delivery details

This section preserves the technical and operational substance: architecture, responsibilities, trade-offs, and implementation quality signals.

System Design

Vanilla JavaScript application initialized from `src/app.js`, composed with custom elements, backed by TMDB fetch calls in `data-source.js`, styled with CSS and Bootstrap, and bundled through Webpack common/dev/prod configs.

Source-backed Impact

Provides a source-backed frontend delivery artefact that demonstrates API-backed UI composition, custom elements, responsive layout work, and reviewer-oriented setup documentation.

Responsibilities

  • Implemented the movie list and search interactions
  • Composed UI sections with custom elements
  • Configured Webpack development and production builds
  • Documented setup commands and submission criteria in the README

Stack Decisions

  • Used vanilla custom elements to satisfy the course component requirement without adding a UI framework
  • Used Webpack common/dev/prod configs to separate development serving from production bundling
  • Used package-managed Bootstrap and jQuery rather than CDN-only dependencies
  • Used fetch-based AJAX calls to populate movie data from TMDB endpoints

Trade-offs

  • Kept the portfolio framing limited to source-visible course delivery evidence because the canonical local archive is empty
  • Avoided live deployment and business-impact claims because the available sources only prove repository, submission, and implementation scope

Challenges

  • Connecting dynamic movie data to custom elements while keeping the app understandable for reviewers
  • Maintaining separate Webpack development and production paths in a coursework-sized frontend project
Outcomes and Proof

What was delivered and what can be verified

Outcome claims remain conservative and source-backed, while proof records and recruiter-safe links surface the strongest verification trail available.

Validation Signals

  • Recovered README documents movie list, title search, genre search, and responsive display.
  • Package metadata and Webpack configuration files are preserved in the remote source record.

Source-backed Outcomes

  • README documents movie list, title search, genre search, and responsive display features
  • Submission criteria checklist covers ES6 syntax, custom elements, Webpack, and AJAX dynamic data
  • Package metadata includes Webpack, Babel, Bootstrap, jQuery, ESLint, and regenerator-runtime dependencies
  • README includes rating screenshot and certificate image references for the Dicoding submission context
Retrospective and Limits

What the project proves, and what it does not

Strong case studies show both what was learned and where the current evidence stops.

Retrospective

Next iteration should rebuild a complete local archive, remove exposed API keys from source history if still active, and add neutral architecture diagrams before claiming stronger operational readiness.

Evidence Limits

  • The local archive is empty, so this project depends on remote evidence rather than a complete local source tree.
  • Current sources do not prove production deployment, user testing, or traffic outcomes.

Lessons

  • Reviewer-facing README evidence can make a course artefact portfolio-safe even when local archive recovery is incomplete
  • Frontend submissions are stronger when UI features, build tooling, and source-level implementation are documented together