Web applications

AutoVaultLK

Marketplace for used vehicles with natural-language search and automated bulk inventory ETL.

Project details

Academic year
2025/26
Semester
Semester 5
Module
CS3203 - Software Engineering Project
Team
3
Artefacts
2
Views
115
Downloads
312
Published
16 Aug 2026

Abstract

A web-based marketplace where vehicle dealers upload inventory in bulk (CSV/JSON plus a ZIP of images) and buyers search using either traditional filters or plain English queries like "an automatic SUV under 20 million LKR." Uploads run through an AWS Step Functions ETL pipeline that validates, normalizes, and enriches listings resolving typos and unit conversions deterministically wherever possible, and falling back to an LLM (Groq) only for genuinely ambiguous fields, with every AI-inferred value reviewed by the dealer before it goes live. Search combines exact filters, pgvector semantic similarity, and trigram fuzzy matching in a single ranked query. Built serverless-first on AWS Lambda to stay within free-tier budget as a student project, while targeting patterns asynchronous chunked processing, confidence-gated LLM fallback, human-in-the-loop review that scale to production use.

The problem

Many second hand vehicle dealers still enter listings manually slow, error-prone, and inconsistent across a large inventory. Existing local platforms only support traditional filter-based search, so buyers who don't know exact make/model/trim naming struggle to find what they want, and international platforms built for large businesses are too expensive for small dealerships.

The solution

The system lets dealers bulk upload inventory as CSV/JSON with a ZIP of images; an asynchronous ETL pipeline validates and normalizes the data with deterministic rules first, escalating only ambiguous rows to an LLM, and never publishing an AI inferred value without dealer review. Buyers search the resulting catalogue with structured filters, natural language, or both the query is parsed, embedded, and matched against listings using a combination of exact filters, semantic vector similarity, and fuzzy text matching, all resolved in one ranked SQL query.

In detail

Dealers register, get approved, and upload their inventory in bulk rather than entering vehicles one at a time. Each upload triggers an AWS Step Functions execution: the file is validated structurally, split into 100-row chunks, and each chunk is normalized against dictionaries and regex patterns for makes, models, fuel types, and numeric fields. Rows the rules can't confidently resolve an ambiguous make spelling, a price written as "around 9 mn," a fuel type only mentioned in free-text notes are batched and sent to Groq for LLM-assisted repair, with every returned field validated against a whitelist before it's trusted. Listings land in a PENDING_REVIEW state; dealers see exactly which fields were AI-inferred, with the model's reasoning, before approving them to go LIVE.

Buyer-facing search accepts structured filters, a free-text natural-language query, or both. A deterministic parser extracts hard constraints (seats, price, year) from the query text; anything left over is treated as descriptive "vibe" text and embedded with a MiniLM sentence-transformer for semantic ranking against pgvector. Typos in make/model names are resolved via PostgreSQL trigram matching against a dictionary table during parsing never against the live listings table keeping the ranking logic simple and the indexes usable. Filters gate the result set; only the vector score decides ordering within it.

The backend is five independently deployable services (Auth & User, Marketplace, Ingestion & ETL, Admin, Notification), all running as AWS Lambda functions behind API Gateway, sharing one PostgreSQL (RDS) instance with per-service schema ownership. The ETL pipeline alone spans eleven Lambda functions with deliberately uneven memory allocation 256 MB for lightweight validation steps up to 3 GB for the MiniLM embedding step coordinated declaratively through Step Functions rather than a single monolithic worker, so that an LLM outage degrades an upload to ~95% success instead of failing it outright. Infrastructure is defined in Terraform and deployed via GitHub Actions CI/CD, with local development running the full stack through Docker Compose.

Related projects

Web applications

Adept

Automated Developer Productivity and Code Quality Insights Platform

212 2026
Web applications

Loop

Unify WhatsApp, Telegram and web chat into one AI-routed inbox for small businesses.

211 23