Version 2.1.4 - UI Improvements & Enhanced Readability Release
A full-stack web application that showcases NASA's space data through modern web technologies. This interactive platform provides access to stunning space imagery, Mars rover photos, Near Earth Object tracking, and more.
- Space Mission Control Dashboard - Clean, space-themed interface with real-time data widgets
- Astronomy Picture of the Day (APOD) - Daily featured space images with calendar navigation
- Mars Rover Photo Gallery - Explore photos from Curiosity, Opportunity, Spirit, and Perseverance with advanced filters
- Near Earth Objects (NEO) Tracker - Real-time asteroid tracking with interactive data visualizations
- Infinite Scroll - Seamless browsing experience in Mars Rover gallery
- Favorites System - Save and organize your favorite space discoveries with persistent storage
- Interactive Data Visualizations - Advanced charts for NEO data using Recharts
- Hazard classification pie charts
- Size distribution bar charts
- Velocity distribution line graphs
- Size vs Distance scatter plots
- Smart Navigation - Favorites counter badge and dedicated favorites page
- Comprehensive Logging - Daily rotating log files with configurable levels
- Version Tracking - Automatic version management across frontend and backend
- Horizontal Filter Layouts - Moved all filter components from sidebars to horizontal layouts for better space utilization
- Enhanced Readability - Improved font colors and contrast ratios across all components
- Custom Color System - Professional color palette for risk assessment:
- Low Risk:
#076041(Dark Forest Green) - Medium Risk:
#a6841b(Dark Gold) - High Risk:
#851313(Dark Burgundy Red)
- Low Risk:
- White Background Overlays - Semi-transparent white backgrounds for better content readability
- Responsive Design - Optimized layouts for mobile and desktop viewing
- Accessibility Improvements - Better contrast ratios and ARIA attributes
- Modern React 18+ with TypeScript
- Express.js backend with NASA API integration
- Responsive design with Tailwind CSS and space-themed UI
- Real-time data caching and optimization
- Performance-focused architecture with lazy loading
- Intersection Observer API for infinite scroll
- Local storage for favorites persistence
- React 18+ with TypeScript
- Tailwind CSS for styling
- React Query for data fetching and caching
- Recharts for data visualization
- React Router v6 for navigation
- React Intersection Observer for infinite scroll
- Axios with interceptors for API calls
- Node.js with Express
- TypeScript
- NASA Open APIs integration
- Winston for logging with daily rotation
- Helmet.js for security
- CORS with proper configuration
- Compression and caching strategies
- Environment-based configuration
- Node.js 18+ and npm
- NASA API Key (get one free at https://api.nasa.gov/)
- Clone the repository:
git clone https://github.com/TonyCasey/nasa-explorer.git
cd nasa-explorer- Install all dependencies:
npm run install:all- Set up environment variables:
# Backend (.env in backend folder)
cp backend/.env.example backend/.env
# Edit backend/.env and add your NASA API key
# Frontend (.env in frontend folder)
cp frontend/.env.example frontend/.env
# Edit frontend/.env if needed- Start the development servers:
# Terminal 1 - Start backend
cd backend
npm run dev
# Terminal 2 - Start frontend
cd frontend
npm startThe application will be available at:
- Frontend: http://localhost:3001 (or 3000)
- Backend API: http://localhost:5000
nasa-space-explorer/
βββ frontend/ # React TypeScript application
β βββ src/
β β βββ components/ # Reusable UI components
β β β βββ Navigation.tsx
β β β βββ PhotoGallery.tsx
β β β βββ NEOChart.tsx
β β β βββ FavoriteButton.tsx
β β β βββ ...
β β βββ pages/ # Page components
β β β βββ Dashboard.tsx
β β β βββ APOD.tsx
β β β βββ MarsRovers.tsx
β β β βββ NEOTracker.tsx
β β β βββ Favorites.tsx
β β βββ services/ # API service layer
β β β βββ api.ts
β β β βββ nasa.service.ts
β β β βββ favorites.service.ts
β β βββ hooks/ # Custom React hooks
β β β βββ useFavorites.ts
β β βββ types/ # TypeScript type definitions
β β βββ utils/ # Utility functions
β β βββ logger.ts
β β βββ version.ts
β βββ public/ # Static assets
βββ backend/ # Express API server
β βββ src/
β β βββ routes/ # API route handlers
β β βββ services/ # Business logic and NASA API integration
β β βββ middleware/ # Express middleware
β β βββ utils/ # Helper functions
β β βββ logger.ts
β β βββ version.ts
β βββ dist/ # Compiled JavaScript
βββ shared/ # Shared types and utilities
βββ scripts/ # Build and utility scripts
β βββ version.js # Version management
β βββ update-version.js # Version sync script
βββ logs/ # Application logs (auto-generated)
βββ docs/ # Project documentation
βββ TODO.md # Project roadmap and tasks
βββ CLAUDE.md # AI assistant instructions
http://localhost:5000/api/v1
GET /api/v1/apod
GET /api/v1/apod?date=YYYY-MM-DD
GET /api/v1/mars-rovers/photos
Query params:
- rover: curiosity | opportunity | spirit | perseverance
- sol: Mars day (integer)
- earth_date: YYYY-MM-DD
- camera: FHAZ | RHAZ | MAST | CHEMCAM | etc.
- page: Page number for pagination
GET /api/v1/neo/feed
Query params:
- start_date: YYYY-MM-DD
- end_date: YYYY-MM-DD
GET /api/v1/health
npm run version:sync # Sync version across all packages
npm run version:bump # Bump version number
npm run install:all # Install all dependenciesnpm start # Start development server
npm run build # Build for production
npm test # Run tests
npm run lint # Run ESLint
npm run type-check # TypeScript type checkingnpm run dev # Start development server with hot reload
npm run build # Compile TypeScript
npm start # Start production server
npm run lint # Run ESLint
npm test # Run tests- Lighthouse Score: > 90
- Core Web Vitals:
- LCP: < 2.5s
- FID: < 100ms
- CLS: < 0.1
- Bundle size: < 500KB (gzipped)
- API response time: < 500ms (cached)
-
Week 1 (Days 1-7)
- Project setup and foundation
- NASA API integration
- Core UI components
- Space Mission Control Dashboard
- APOD Gallery with calendar
- Mars Rover photo gallery
- NEO Tracker with basic visualization
- Comprehensive logging system
-
Week 2 (Days 8-10)
- Infinite scroll implementation
- Favorites/bookmark system
- Advanced data visualization charts
- Version management system
- Search and filter capabilities enhancement
- Social media sharing functionality
- Earth imagery (EPIC) feature
- Space Weather dashboard
- Unit tests (>80% coverage)
- E2E tests with Playwright
- PWA configuration
- AI-powered features
- Performance optimizations
- Production deployment
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is built for educational purposes as part of the Bounce Insights coding challenge.
- NASA Open APIs for providing amazing space data
- The open-source community for the amazing tools and libraries
- All contributors and testers
Built with passion for space exploration and modern web technologies π
Latest Build: v2.1.4 - August 17, 2025
- β Layout Optimization - Converted all filter sidebars to horizontal layouts
- β Readability Enhancement - Improved font colors and contrast across NEO cards
- β Custom Color System - Implemented professional risk assessment colors
- β Spacing Improvements - Added proper padding to image cards
- β Version Display Fix - Corrected footer build number display
- β Accessibility - Enhanced contrast ratios and ARIA attributes
- β Production Deployment - All changes live on Vercel and Heroku
Live URLs:
- Frontend: https://nasa.tonycasey.dev/
- Backend: https://nasa-server.tonycasey.dev/