You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A full-stack web application that lets authenticated users look up IP geolocation data with a searchable history, built on React, Express.js, and PostgreSQL.
cd backend
# 1. Install dependencies
npm install
# 2. Create .env from example
cp .env.example .env
# Edit .env and fill in your DATABASE_URL and JWT_SECRET# 3. Generate Prisma client
npx prisma generate --schema=src/prisma/schema.prisma
# 4. Run migrations
npx prisma migrate dev --name init --schema=src/prisma/schema.prisma
# 5. Seed the database (creates two demo users)
npm run seed
# 6. Start the server
npm run dev
Server runs on: http://localhost:8000
Frontend Setup
cd frontend
# 1. Install dependencies
npm install
# 2. Create .env from example
cp .env.example .env
# Optionally fill in REACT_APP_IPINFO_TOKEN for higher rate limits# 3. Start the dev server
npm start
JWT-based authentication with persistent sessions (localStorage)
Auto-redirect to login if unauthenticated; to home if already logged in
IP lookup via ipinfo.io displaying city, region, country, org, timezone, etc.
Interactive Leaflet map pinning the location
Search history stored in PostgreSQL per user
Click any history entry to reload its geo data
Multi-select checkboxes to delete history in bulk
Clear search reverts display to your own IP data
Validation for IP format before API call
Responsive layout (desktop-first)
About
GeoTrace is a full-stack IP geolocation tool built with React and Node.js. Enter any IP address to instantly see its location, ISP, timezone, and more — plotted on an interactive map. Includes user authentication and persistent search history.