Skip to content

vanessabuilds/SkyNarrata

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 

Repository files navigation

🌀️ SkyNarrata πŸŒ™ Built with Ohara

DEMO ▢️

The sky narrated... your daily story of weather and wonder.

SkyNarrata is a beautiful, responsive weather application that blends real-time meteorological data with astronomical insights, including moon phase calendars and NASA’s Astronomy Picture of the Day.

✨ Features 🌍 Smart Weather Search Coordinate-based accuracy – get precise weather for any location

Disambiguate city names – e.g., Nassau, Bahamas vs. Nassau, Minnesota

Country codes & state info – for clear identification

Real-time autocomplete – search as you type

Smart filtering – dropdown with 15+ accurate city variations

πŸŒ™ Astronomical Moon Phase Calendar 8-day lunar calendar with phase calculations

Moonrise/set times based on your coordinates

Educational phase descriptions and percentages

Timezone-aware calculations

Emoji visuals for each moon phase

πŸš€ NASA Astronomy Picture of the Day Archive dating back to 1995

High-res images and videos with expert explanations

Custom date picker

Direct NASA links for further learning

🎨 Beautiful User Experience Cosmic themes with glassmorphism

Adaptive weather backgrounds

Fully responsive and WCAG accessible

Smooth animations and a dark theme for evening viewing

πŸ” Production-Ready Security API keys handled server-side

Environment variables for local and production use

Secure proxy routes

HTTPS ready

πŸ› οΈ Technology Stack Core Framework Next.js 14 – App Router architecture

TypeScript – strict typing for safer code

Tailwind CSS – utility-first styling

UI Components Custom glassmorphism components (Card, Button, Input, Select)

Responsive design from mobile to desktop

Accessible components (WCAG-compliant)

Subtle transitions and animations

APIs & Data Sources OpenWeatherMap – weather + geolocation

NASA APOD – public astronomy education API

Custom astronomical engine – moon phase calculations done locally

Hosting & Tools Replit – lightweight cloud deployment

Ohara – agent-based automation and UI/UX builder

Environment-based routing – secure .env setup for keys

🧱 Project Structure lua Copy code skynarrata/ β”œβ”€β”€ public/ β”‚ β”œβ”€β”€ icon-192.png β”‚ β”œβ”€β”€ icon-512.png β”‚ └── favicon.ico β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ app/ β”‚ β”‚ β”œβ”€β”€ api/ β”‚ β”‚ β”‚ β”œβ”€β”€ nasa-apod/route.ts β”‚ β”‚ β”‚ └── proxy/route.ts β”‚ β”‚ β”œβ”€β”€ moon-phases/page.tsx β”‚ β”‚ β”œβ”€β”€ apod/page.tsx β”‚ β”‚ β”œβ”€β”€ globals.css β”‚ β”‚ β”œβ”€β”€ layout.tsx β”‚ β”‚ └── page.tsx β”‚ β”œβ”€β”€ components/ui/ β”‚ β”‚ β”œβ”€β”€ button.tsx β”‚ β”‚ β”œβ”€β”€ card.tsx β”‚ β”‚ β”œβ”€β”€ input.tsx β”‚ β”‚ └── select.tsx β”‚ └── lib/ β”‚ β”œβ”€β”€ weatherApi.ts β”‚ β”œβ”€β”€ nasaApi.ts β”‚ └── utils.ts β”œβ”€β”€ .env.example β”œβ”€β”€ .env.local β”œβ”€β”€ .gitignore β”œβ”€β”€ package.json β”œβ”€β”€ tailwind.config.js β”œβ”€β”€ tsconfig.json β”œβ”€β”€ next.config.js └── README.md πŸš€ Quick Start Prerequisites Node.js 18 or higher

npm / yarn / pnpm

NASA API key

OpenWeatherMap API key (provided for dev)

🌟 Unique Features Location Accuracy No more weather mismatches: Get local data based on exact coordinates

Supports ambiguous cities like Paris, Texas or St. Petersburg, Florida

Enhanced Search Fuzzy matching: handles "St Petersburg" and "Saint Petersburg"

Smart deduplication, shows unique results only

Clean dropdown UI with up to 8 results

Astronomical Education Phase explanations & moonrise/set

NASA media with scientific descriptions

Archive with 29+ years of photos

Emoji moon phases for every day

πŸ“± Mobile Optimization Mobile-optimized interactions, buttons, and pickers

Lazy loading and debounced API calls

Swipe gesture support

Fast initial load for slower connections

πŸ”§ Configuration Environment Variables ini Copy code

Required

WEATHER_API_KEY=your-openweathermap-api-key NASA_API_KEY=your-nasa-api-key

Optional

NODE_ENV=development Customization Options Change background logic in getWeatherBackground()

Replace emojis in MOON_PHASE_EMOJIS

Adjust search limits and theme colors via config files

βœ… Testing Checklist Test weather accuracy (e.g., Saint Petersburg, FL vs. RU)

Check moon phase calculations across timezones

Verify NASA APOD images on different dates

Test responsiveness on mobile devices

Confirm dropdown filtering and search behavior

πŸ“„ License Licensed under the MIT License. See LICENSE for full details.

πŸ™ Acknowledgments NASA

OpenWeatherMap

Next.js

Tailwind CSS

Ohara – AI-assisted front-end builder

The astronomy and open source communities 🌌

About

SkyNarrata | Weather, Moon & Stars

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published