Skip to content

MoaKK/What-Car-Is-It

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What Car Is It?

A React Native app that identifies cars from photos. Take a picture or upload one from your library, and it tells you the make, model, year, fuel type, body type, and detailed specs like engine size, transmission, and fuel economy.

How it works

Quick Demo
Screen recording showing the GeoField Collector workflow
  1. You pick or take a photo
  2. The server sends it to Claude Vision, which identifies the car
  3. The server then hits the API Ninjas cars database for detailed specs
  4. Results come back to the app

Previous scans are saved locally so you can browse through them.

Stack

App

  • Expo (React Native, TypeScript)
  • React Navigation
  • AsyncStorage for scan history

Server

  • Node.js / Express
  • Claude Vision API (car identification)
  • API Ninjas Cars API (specs lookup)

Project structure

WhatCarIsIt/
  src/
    constants/    API base URL and image quality setting
    screens/      HomeScreen, ResultScreen, HistoryScreen
    services/     Claude and API Ninjas fetch wrappers
    styles/       StyleSheet files per screen
    types/        car.ts (interfaces), navigation.ts (route types)
    utils/        mpg conversion, history read/write
  server/
    src/
      routes/     /api/identify and /api/specs
      index.ts    Express app entry point
  assets/         App icons and splash screen
  App.tsx         Navigation stack

Setup

Prerequisites

1. Install app dependencies

npm install

2. Install server dependencies

cd server && npm install

3. Configure environment variables

Create server/.env:

ANTHROPIC_API_KEY=your_key_here
API_NINJAS_KEY=your_key_here

Create .env in the project root:

EXPO_PUBLIC_API_BASE_URL=http://YOUR_LOCAL_IP:3000

Replace YOUR_LOCAL_IP with your machine's local IP (e.g. 192.168.1.10). Your phone and computer need to be on the same Wi-Fi network.

4. Run

Start the server:

cd server && npm start

Start the app in a separate terminal:

npx expo start --clear

Scan the QR code with Expo Go.

Deploying the server

The server is set up to deploy to Railway. Point it at the server/ folder as the root directory and add ANTHROPIC_API_KEY and API_NINJAS_KEY as environment variables in the Railway dashboard.

Once deployed, update .env in the app:

EXPO_PUBLIC_API_BASE_URL=https://your-app.railway.app

Notes

  • Year identification is intentionally conservative. If Claude is not confident about the year from the photo alone, it returns "Unknown" rather than guessing.
  • Tyre/tread specs are not included. These depend on what the owner fitted, not the factory spec, so they would require a separate close-up photo of the tyre sidewall.
  • API keys in .env files are git-ignored. Do not commit them.

About

A mobile app that identifies cars from photos. Take a picture or upload one from your library, and it tells you the make, model, year, fuel type, body type, and detailed specs like engine size, transmission, and fuel economy.

Topics

Resources

Stars

Watchers

Forks

Contributors