Night Sky Agenda
Celestial Web Development Project
Night Sky Agenda
Night Sky Agenda helps amateur astronomers, outreach presenters, and astronomy clubs generate a practical observing plan with object tiles, timing guidance, equipment recommendations, Bortle-aware visibility, and a print-friendly checklist.
What it does
Build an observing agenda
Enter a date, time window, location, equipment level, and Bortle scale to generate a cleaner, more useful night sky plan for personal sessions or formal events.
Location autocomplete
The location field supports search-style suggestions and automatically fills latitude and longitude from the selected result.
Dynamic difficulty
Difficulty is no longer a fixed catalog label alone. It adapts to the selected Bortle scale, moon interference, and observing conditions for more realistic planning.
Print-friendly output
Generate a full print view or a checklist-style printout that is much easier to use at the telescope or during public outreach.
Key features
- Location-aware sky planning with autocomplete and geolocation support
- Bortle scale modeling for more realistic visibility expectations
- Dynamic observing difficulty tied to actual sky conditions
- Separate personal and event modes
- Object tiles with timing, direction, difficulty, and equipment guidance
- Optional formal-event presenter notes for outreach use
- Full print and checklist print layouts
Integration guide
Backend
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000
Frontend
cd frontend
python -m http.server 8080
By default, the included config.js uses same-origin API calls. For split hosting, set window.API_BASE_URL to your API host.
Why this project matters
This project turns astronomy planning into a polished, user-friendly workflow. It is practical for backyard observers, club observing nights, and public outreach events, and it showcases a blend of astronomy domain logic, API design, frontend UX, and print-oriented presentation.