Home Page

Car Market-Value Estimator

Value AI

This app (value AI) allows users to upload an image of a vehicle and find out an estimated market value of that car. Value AI turns anyones camera into a car-valuation tool. It is a full-stack web app based on Python and React+Vite using FastAPI and Open AI GPT-4o vision API to identify make, model, and year to return up to the minute USD estimates.

Value AI Full-Stack Setup

*THE FOLLOWING INSTRUCTIONS ARE TEMPORARY AND ARE FOR ANYONE WHO WANTS TO TRY OUT THE SYSTEM BEFORE I HAVE IT HOSTED ONLINE. YOU CAN ALSO WATCH THE DEMO VIDEO ABOVE TO SEE IT IN ACTION. IT WILL BE AVALIABLE ONLINE SOON!*

This document summarizes the minimal configuration and code snippets for the React frontend and FastAPI backend so that the VITE_API_URL env var, fetch call, and JSON keys all align correctly. Feel free to reach out with any questions.

Quick Start: Testing Value AI Locally

Follow these steps to clone the repo, configure your environment, spin up both servers, and try the full upload→estimate flow yourself.

1. Clone & Enter

git clone https://github.com/tylermcclelland/valueai.git
          cd valueai

2. Configure Secrets

Create a file named .env in the project root (next to backend/ and frontend/):

OPENAI_API_KEY=sk-<your-key-here>
          VITE_API_URL=http://localhost:8000

(You would need to sign up at platform.openai.com to generate your own key.)

3. Start the Backend

  1. Create & activate a Python virtual environment:
    python3 -m venv .venv source .venv/bin/activate
  2. Install dependencies:
    pip install fastapi uvicorn python-dotenv openai
  3. Run the FastAPI server on port 8000:
    uvicorn backend.main:app --reload --port 8000

4. Start the Frontend

  1. Install Node.js (if not already installed):
    macOS: brew install node
  2. Enter the frontend folder and install:
    cd frontend npm install
  3. Run the Vite dev server on port 5173:
    npm run dev

5. Test via Browser

6. Test via cURL (optional)

curl -X POST http://localhost:8000/upload \
            -F 'image=@/full/path/to/car.jpg'

A JSON response like {"value":"2019 Toyota Camry — approx. $17,000"} indicates success.


If you run into CORS or missing-key errors, verify: