Ski resort information system with real-time weather, avalanche warnings, and intelligent recommendations.
🌐 Deployed on: https://snowsense-j7cw.onrender.com/
- Frontend: Ionic 8.5 + React 19 + TypeScript
- Backend: Spring Boot 3.2.1 + Java 17
- Database: H2 (in-memory)
- Scraping: Playwright
- Deployment: Render (Docker)
cd notification-backend
mvn spring-boot:runRuns on http://localhost:8080
cd app
npm install
npm run devRuns on http://localhost:5173
# Backend tests
cd notification-backend
mvn test
# Frontend tests
cd app
npm test✅ Real-time ski resort data (lifts, slopes, weather) ✅ Location-based resort recommendations ✅ Mobile-responsive UI ✅ SPA routing support
✅ Avalanche warnings with elevation-specific hazards ✅ Hazard aspects (which slopes are affected) ✅ Avalanche problem types (wind slab, persistent layers, etc.) ✅ Safety recommendations and key highlights ✅ Fixed elevation display for "treeline" values
✅ Automated data updates ✅ Optimized for 512MB memory limit on Render ✅ Endpoints for all key data points
✅ Rich display of avalanche and weather data ✅ UI cards for elevation staffing, aspects, problems, and highlights ✅ Better visual hierarchy for critical safety information
The backend automatically scrapes data from various sources at the following intervals:
- Weather Data: Every 30 minutes
- Avalanche Reports: Twice daily (08:30 and 17:30)
- Ski Resort Infrastructure (Lifts & Slopes): Every hour
Manual scraping can also be triggered via API endpoints.
The backend provides a rich set of REST APIs to access the collected data. Here are some of the key endpoints:
GET /api/resorts/with-avalanche- All resorts with avalanche dataGET /api/skiresort/lifts- All lift statusesGET /api/weather- Weather dataPOST /api/recommendation/skiresort- Get recommendationsGET /api/health- Health check
For a full list of endpoints and their usage, please refer to the API Quick Reference.