How anoop-tech-ai/northstar works
Northstar Weather serves a browser dashboard and an Express API: users search for places or select map coordinates, then view weather and air-quality forecasts, with guest features available locally and account features synced through the API. The API also supports profiles, preferences, favorites, alert rules, and search history. The graph preserves those documented product branches; some route and controller wiring is based on the documented API and tree, since their source was not sampled.
Main entry points: server.js Express API and static serving · app.js Dashboard and interactions · routes Other API routes · controllers Profile and preferences
Components 27
Browser experience
- Dashboard and interactions
app.js - Page shell
index.html
API and services
- Express API and static serving
server/server.js - Authentication routes
server/routes/auth.routes.js - Favorite routes
server/routes/favorite.routes.js - Alert routes
server/routes/alert.routes.js - Other API routes
server/routes
Accounts and saved data
- Authentication
server/controllers/auth.controller.js - Favorite management
server/controllers/favorite.controller.js - Alert rules
server/controllers/alert.controller.js - Search history
server/controllers/searchHistory.controller.js - Profile and preferences
server/controllers - User records
server/models/User.js - Favorite records
server/models/Favorite.js - Alert records
server/models/Alert.js - History records
server/models/SearchHistory.js - Preference records
server/models/Preference.js
Weather data
- Weather endpoint
server/routes/weather.routes.js - Weather query handling
server/controllers/weather.controller.js - Forecast and AQI proxy
server/services/weather.service.js
Other components
- Weather user
- Browser
- Open-Meteo geocoding
- Leaflet and OSM maps
- MongoDB
- Open-Meteo forecast and AQI
- BigDataCloud reverse geocoding
Connections 36
- Weather user → Browser: uses
- Browser → Dashboard and interactions: interacts
- Page shell → Browser: renders
- Dashboard and interactions → Express API and static serving: requests API
- Dashboard and interactions → Open-Meteo geocoding: searches places
- Dashboard and interactions → Leaflet and OSM maps: shows map
- Express API and static serving → Authentication routes: mounts
- Express API and static serving → Favorite routes: mounts
- Express API and static serving → Alert routes: mounts
- Express API and static serving → Other API routes: mounts
- Express API and static serving → Weather endpoint: mounts
- Authentication routes → Authentication: dispatches
- Favorite routes → Favorite management: dispatches
- Alert routes → Alert rules: dispatches
- Other API routes → Search history: dispatches
- Authentication routes → Profile and preferences: dispatches
- Other API routes → Profile and preferences: dispatches
- Other API routes → Favorite management: dispatches
- Other API routes → Alert rules: dispatches
- Weather endpoint → Weather query handling: dispatches
- Weather query handling → Forecast and AQI proxy: fetches forecast
- Forecast and AQI proxy → Open-Meteo forecast and AQI: requests weather and AQI
- Forecast and AQI proxy → MongoDB: caches in memory
- Authentication → User records: reads and writes
- Authentication → Preference records: creates preferences
- Favorite management → Favorite records: reads and writes
- Alert rules → Alert records: reads and writes
- Search history → History records: reads and writes
- Profile and preferences → User records: accesses
- Profile and preferences → Preference records: accesses
- User records → MongoDB: persists
- Favorite records → MongoDB: persists
- Alert records → MongoDB: persists
- History records → MongoDB: persists
- Preference records → MongoDB: persists
- Dashboard and interactions → BigDataCloud reverse geocoding: reverse geocodes