Back to all projects

Community / App case study

HalalScan

A prototype label-screening tool that combines OCR, ingredient classification, and rule-based checks to explain its findings.

Label-screening prototype

HalalScan knowledge interface with demo content
HalalScan knowledge interface with demo content

01 / Overview

What it’s built for.

Combine extracted label text, ingredient classification, and knowledge-base checks so a screening result can be understood and reviewed.

Who it serves

People checking food labels and reviewing ingredient-level evidence.

02 / Features

Inside the app.

Label input

Accept barcode, text, or OCR-based analysis, including image and bounded PDF processing.

Ingredient evidence

Combine classification results with structured rules, retaining unresolved and doubtful ingredient warnings.

Explanations and history

Explain rules through a retrieval assistant and keep scan history on the device in deployed builds.

03 / Workflow

From task to outcome.

  1. Provide a barcode, ingredient text, or label image.

  2. Extract and analyze the ingredients through the available OCR and classification paths.

  3. Review the screening result alongside ingredient warnings and rule references.

  4. Use the explanation assistant or review device-local scan history.

04 / Technical layers

How the pieces work.

Interface

React · TypeScript · Zustand

The Vite interface handles input, scanning, result presentation, and local scan records.

Application and API

Flask · Vercel TypeScript functions

Local Flask endpoints and deployed serverless adapters implement the screening workflow.

Storage

SQLite locally · Browser storage on Vercel

The local backend documents SQLite caching/history; deployed history is device-local rather than a persistent shared serverless database.

External services

Google Vision · RapidAPI · Rule retrieval

Configured services provide OCR and classification; documented fallback paths retain unresolved evidence when credentials are absent.

05 / Limitations

What to keep in mind.

  • Screening does not replace an authorized halal certifying body.
  • A product result must be read with its ingredient-level unknown or doubtful warnings.
  • Live external-service behavior depends on configured credentials; device-local history is not cross-device synchronization.

06 / Evidence

Follow the source.

These descriptions were reviewed against the linked source snapshot on October 12, 2026. Repository code and documentation may evolve after this review.