Skip to content

Repository files navigation

Lightweight weather lookup and visualization app with an interactive map preview for each searched location.

Overview

Sky Pin lets users search places (geocoding), view current weather and multi-day forecasts, save and revisit past searches, and open an interactive map centered on the selected location.

Key features:

  • View current weather at searched location
  • 5-day forecast and date-range forecasting
  • Past searches list with update and delete actions
  • Interactive map for location (drag & zoom)

External Services

  1. Geocoding API: https://geocode.maps.co/
    (Requires API Key)

  2. Weather API: https://api.open-meteo.com/

  3. Weather Icons CDN: https://cdn.meteocons.com/

  4. Interactive map: OpenStreetMap embed

Tech Stack

  • Frontend: React (Vite)
  • Backend: Node.js + Express
  • Database: PostgreSQL (optional — persistence used when running with Docker)

Quick Start

Prerequisites

  1. Docker Desktop must be installed
  2. Git must be installed

Steps

  1. Launch Docker Desktop and wait for it to finish starting
  2. Open a terminal (PowerShell, Command Prompt, Terminal, etc.)
  3. Clone the repository
git clone https://github.com/kgulbarg/Sky-Pin.git
  1. Navigate into the project folder.
cd Sky-Pin
  1. Create a local environment configuration file from the example template.
cp .env.example .env
  1. Get your Geocoding API Key from https://geocode.maps.co/
  2. In the .env file, add your Geocoding API Key.
  3. Build and start all application containers.
docker compose up --build
  1. Use the application by opening http://localhost:5173 on your browser.

Application Components:

Running Unit Tests

  1. Frontend
cd frontend\skypin-frontend
npm test
  1. Backend
cd backend
npm test

Troubleshooting

  • If docker compose up fails, check that ports 5173 and 5000 are free or adjust the compose file.
  • If the frontend can't reach the backend during dev, ensure server.js is running and the API base URL in the frontend matches http://localhost:5000.
  • To test backend APIs, see docs/api.md.

Hosting

About

Lightweight weather lookup and visualization app with an interactive map preview for each searched location.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages