Back to buildsBUILD RECORD

elevenFiftyNine / Product-catalog administration study / 2025

Managing product galleries one image at a time.

elevenFiftyNine uses separate gallery records and validated uploads to let a product carry several images without fixed image columns.

THE WORK

The project.

This Laravel coursework gives each product a gallery whose images can be added and removed individually. The upload controller validates each file's type and size, passes accepted files to the upload helper and stores each returned path in a row linked to the product. Keeping images separate from the product record makes gallery editing explicit, including the file operations that accompany a database change.

IMPLEMENTATION

Design choices.

  1. One row per image supports multiple gallery entries and individual removal without expanding the product table with numbered image columns.
  2. Validation runs before the upload helper, so rejected types and oversized files don't enter that processing path.
  3. Files and rows don't share a transaction. If an upload succeeds but its row can't be saved, or a deletion stops halfway through, the flow needs an explicit cleanup or recovery rule.

HOW IT FITS TOGETHER

Architecture.

  • Resource routes separate product editing from taxonomy and gallery administration. The gallery page resolves its product and uses Blade and DataTables to display the associated image records.
  • The gallery controller validates uploaded images before calling the multi-image helper. It then creates one gallery row for each returned path, linking every row to the selected product.
  • Removing a gallery item calls the file deletion helper before deleting its database row. Those are two distinct effects, even though the interface presents them as one action.

MADE WITH

PHP · Laravel 10 · Blade · Eloquent · DataTables · Intervention Image

ACCESS & INPUT

Security controls.

  • The upload path checks individual image types and limits their size before the helper processes them. Product and image access checks still need a separate review.

CHECKS & RESULTS

What was checked.

A source review shows what the code does. It is not a fresh test of the running app.

  1. Code and development records reviewedReviewed

    The code, tests and available development records were checked. Reported test results keep their original scope. No fresh app or live deployment check was run for this write-up.

    Scope of this check
    Code review, not a fresh run of the app

NEXT

Still to work through.

The study covers catalogue administration, not a verified purchasing flow. File and database failure recovery is the main unfinished part of this gallery path, alongside object access checks. Source inspection wasn't followed by an application or test run.