{"id":51371564,"url":"https://github.com/moodyjmz/iss-track-react","last_synced_at":"2026-07-03T07:04:51.328Z","repository":{"id":284735430,"uuid":"955831316","full_name":"moodyjmz/iss-track-react","owner":"moodyjmz","description":"Iss Tracker in React","archived":false,"fork":false,"pushed_at":"2025-09-15T10:33:20.000Z","size":1275,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-15T12:24:28.801Z","etag":null,"topics":["api","experiment","iss","react"],"latest_commit_sha":null,"homepage":"https://moodyjmz.github.io/iss-track-react/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moodyjmz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-27T09:12:34.000Z","updated_at":"2025-09-15T10:33:24.000Z","dependencies_parsed_at":"2025-03-27T12:29:08.798Z","dependency_job_id":"40ce9869-5d85-4db3-bbb2-34313fb57f86","html_url":"https://github.com/moodyjmz/iss-track-react","commit_stats":null,"previous_names":["moodyjmz/iss-track-react"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/moodyjmz/iss-track-react","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moodyjmz%2Fiss-track-react","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moodyjmz%2Fiss-track-react/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moodyjmz%2Fiss-track-react/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moodyjmz%2Fiss-track-react/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moodyjmz","download_url":"https://codeload.github.com/moodyjmz/iss-track-react/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moodyjmz%2Fiss-track-react/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35075828,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-03T02:00:05.635Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","experiment","iss","react"],"created_at":"2026-07-03T07:04:50.504Z","updated_at":"2026-07-03T07:04:51.311Z","avatar_url":"https://github.com/moodyjmz.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ISS Tracker\n\nA real-time International Space Station (ISS) tracking application that visualizes the current position of the ISS on an interactive map, shows telemetry data with smooth animations, and predicts future overhead passes for any location on Earth.\n\n## 🌍 What It Does\n\nThe ISS Tracker provides a comprehensive view of the International Space Station's current status and location:\n\n- **Real-time tracking** of the ISS position with live updates\n- **Interactive world map** showing the ISS location and ground track\n- **Orbital history visualisation** with enhanced tracking lines and historical path display\n- **Telemetry display** with animated values for altitude, velocity, and coordinates\n- **Location intelligence** showing the nearest city to the ISS\n- **Future pass predictions** - select any city and see when the ISS will be overhead in the next 12 hours\n- **Smart resource management** - automatically pauses updates when the browser tab is inactive\n\n## ✨ Key Features\n\n### 🎯 Core Functionality\n- **Live ISS Position**: Real-time tracking with coordinates, altitude, and velocity\n- **Interactive Map**: Leaflet-powered world map with the ISS position marker\n- **Orbital Path Visualisation**: Enhanced historical tracking with thicker orbital lines for better visibility\n- **Nearest City Display**: Shows which city the ISS is currently closest to\n- **Future Pass Calculator**: Predicts when the ISS will be visible from any selected location\n- **Responsive Design**: Works seamlessly on desktop and mobile devices\n\n### 🎨 User Experience\n- **Smooth Animations**: Custom scrambler element with animated number transitions\n- **Internationalised Formatting**: Locale-aware number and unit formatting\n- **Performance Optimised**: Intelligent polling that respects browser focus state\n- **Error Handling**: Robust error boundaries with graceful fallbacks\n- **Loading States**: Clear loading indicators during data fetching\n\n### 🔧 Technical Features\n- **TypeScript**: Fully typed codebase with global type declarations and module path aliases\n- **Modular Architecture**: Clean separation of concerns with feature-based organisation\n- **Custom Web Components**: Animated value display with scrambler effects\n- **Smart API Management**: AbortController-based request handling with retry logic\n- **Performance Optimisations**: React.memo, useCallback, and useMemo for optimal rendering\n- **Performance Hooks**: Custom hooks for page focus detection and async data management\n\n## 🛠 Technical Stack\n\n- **Framework**: React 19 with TypeScript\n- **Build Tool**: Vite for fast development and optimised builds\n- **Testing**: Vitest with React Testing Library for comprehensive test coverage\n- **Mapping**: Leaflet with React-Leaflet for interactive maps\n- **Styling**: CSS with custom properties and modular stylesheets\n- **APIs**:\n  - [wheretheiss.at](https://wheretheiss.at) for current ISS position\n  - [g7vrd.co.uk](https://api.g7vrd.co.uk) for future pass predictions\n- **Deployment**: GitHub Pages with automated deployment\n\n## 🚀 Getting Started\n\n### Prerequisites\n- Node.js (version 16 or higher)\n- npm or yarn\n\n### Installation\n\n1. Clone the repository:\n```bash\ngit clone \u003crepository-url\u003e\ncd my-app\n```\n\n2. Install dependencies:\n```bash\nnpm install\n```\n\n3. Start the development server:\n```bash\nnpm run start\n```\n\n4. Open your browser and navigate to `http://localhost:5173`\n\n### Available Scripts\n\n```bash\n# Development\nnpm run start          # Start development server\nnpm run build          # Build for production\nnpm run serve          # Preview production build\n\n# API Development\nnpm run json           # Start mock JSON server on port 8000\n\n# Testing\nnpm run test           # Run tests in watch mode\nnpm run test:run       # Run tests once\nnpm run test:ui        # Run tests with visual UI\nnpm run test:coverage  # Run tests with coverage report\n\n# Quality Assurance\nnpm run lint           # Run ESLint (when configured)\nnpm run typecheck      # Run TypeScript type checking\nnpm audit              # Check for security vulnerabilities\n```\n\n## 🏗 Architecture\n\nThe application follows a modular architecture with clear separation of concerns:\n\n- **`src/components/`** - Reusable UI components with performance optimisations\n- **`src/features/`** - Feature-specific code (ISS tracker with orbital path visualisation)\n- **`src/services/`** - API service layer with error handling and retry logic\n- **`src/hooks/`** - Custom React hooks for state management and data fetching\n- **`src/types/`** - Global TypeScript type declarations (`.d.ts` files)\n- **`src/utils/`** - Utility functions and helpers\n- **`src/context/`** - React context providers\n- **`src/stores/`** - Zustand state management for orbital data\n\n### 🎨 Recent Improvements\n\n- **TypeScript Module System**: Refactored to use global type declarations, eliminating import conflicts\n- **Module Path Aliases**: Clean imports using `@components/*`, `@services/*`, etc.\n- **Orbital History Enhancement**: Improved visual tracking with thicker historical path lines\n- **Performance Optimisations**: Added React.memo, useCallback, and useMemo across components\n- **Type Safety**: Comprehensive TypeScript coverage with custom web component definitions\n\n## 🌟 Future Enhancements\n\n- [ ] ~~Historical tracking with ISS orbit visualisation~~ ✅ **Completed** - Enhanced orbital path tracking\n- [ ] API call optimisation to reduce duplicate requests\n- [ ] Push notifications for upcoming passes\n- [ ] Multiple satellite tracking\n- [ ] Augmented reality features for mobile\n- [ ] Social sharing of ISS sightings\n- [ ] Advanced filtering and search capabilities\n\n## 🔧 Known Issues\n\n- **Orbital History**: Some edge cases in orbital path display that need investigation\n- **API Optimisation**: Potential duplicate API calls occurring - requires analysis and optimisation\n- **UI Consistency**: Some UI inconsistencies across components that require addressing\n\n## 📱 Live Demo\n\nVisit the live application: [ISS Tracker](https://jamesmanuel.github.io/iss-track-react/)\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 📄 License\n\nThis project is open source and available under the [MIT License](LICENSE).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoodyjmz%2Fiss-track-react","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoodyjmz%2Fiss-track-react","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoodyjmz%2Fiss-track-react/lists"}