Lightweight weather lookup and visualization app with an interactive map preview for each searched location.
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)
-
Geocoding API: https://geocode.maps.co/
(Requires API Key) -
Weather API: https://api.open-meteo.com/
-
Weather Icons CDN: https://cdn.meteocons.com/
-
Interactive map: OpenStreetMap embed
- Frontend: React (Vite)
- Backend: Node.js + Express
- Database: PostgreSQL (optional — persistence used when running with Docker)
- Docker Desktop must be installed
- Git must be installed
- Launch Docker Desktop and wait for it to finish starting
- Open a terminal (PowerShell, Command Prompt, Terminal, etc.)
- Clone the repository
git clone https://github.com/kgulbarg/Sky-Pin.git- Navigate into the project folder.
cd Sky-Pin- Create a local environment configuration file from the example template.
cp .env.example .env- Get your Geocoding API Key from https://geocode.maps.co/
- In the
.envfile, add your Geocoding API Key. - Build and start all application containers.
docker compose up --build- Use the application by opening http://localhost:5173 on your browser.
- Frontend: http://localhost:5173
- Backend API: http://localhost:5000
- Database: Inside Docker network as postgres:5432 - Can be accessed through Docker Desktop: Containers -> weather-postgres -> Exec
- Frontend
cd frontend\skypin-frontend
npm test- Backend
cd backend
npm test- If
docker compose upfails, check that ports5173and5000are free or adjust the compose file. - If the frontend can't reach the backend during dev, ensure
server.jsis running and the API base URL in the frontend matcheshttp://localhost:5000. - To test backend APIs, see
docs/api.md.
- Uses
deploymentbranch - Database - Supabase
- Backend - Render: https://sky-pin.onrender.com/
- Frontend - Vercel: https://sky-pin.vercel.app/
