Skip to content

Repository files navigation

Space Academy

Overview

Space Academy is an immersive educational platform that allows users to simulate the experience of being an astronaut. Built for the NASA Space Apps Challenge 2024, it features interactive modules including real-time Earth observation from the ISS, astronaut training simulations, and mission-based learning experiences integrated with NASA APIs.

Key Features

  • Real-time ISS Tracking: Interactive map with live ISS position and orbital path visualization
  • Cupola Earth View: Experience Earth observation from the astronaut's perspective using NASA imagery
  • NBL Training Simulator: Interactive Neutral Buoyancy Laboratory spacewalk training simulation
  • Mission Dashboard: Live statistics including altitude, velocity, and orbital information
  • Responsive Design: Optimized for desktop, tablet, and mobile devices
  • Real-time Updates: WebSocket connections for live data streaming

Tech Stack

  • Frontend: React 18 with TypeScript
  • Build Tool: Vite 5.4
  • Styling: Tailwind CSS
  • Backend: Supabase (PostgreSQL, Auth, Storage)
  • UI Icons: Lucide React
  • APIs: NASA Open Data integration

Quick Start

Prerequisites

  • Node.js: 18+ and npm
  • Git: For version control

Installation

  1. Clone the repository

    git clone https://github.com/Orbital25/orbital25.git
    cd orbital25
  2. Install dependencies

    npm install
  3. Set up environment variables

    # Create .env.local with your Supabase credentials
    VITE_SUPABASE_URL=your-supabase-project-url
    VITE_SUPABASE_ANON_KEY=your-supabase-anon-key
  4. Run the development server

    npm run dev
  5. Access the application

Using Docker (Alternative)

docker-compose up --build

Project Structure

orbital25/
β”œβ”€β”€ src/                  # Source code
β”‚   β”œβ”€β”€ components/       # React components
β”‚   β”‚   β”œβ”€β”€ Auth.tsx      # Authentication component
β”‚   β”‚   β”œβ”€β”€ CupolaMode.tsx # ISS Cupola view
β”‚   β”‚   β”œβ”€β”€ Dashboard.tsx  # Main dashboard
β”‚   β”‚   β”œβ”€β”€ NBLMode.tsx   # NBL training simulator
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ contexts/         # React contexts
β”‚   β”œβ”€β”€ lib/              # Utility libraries
β”‚   β”‚   β”œβ”€β”€ nasa.ts       # NASA API integration
β”‚   β”‚   └── supabase.ts   # Supabase client
β”‚   └── App.tsx           # Main app component
β”œβ”€β”€ supabase/             # Supabase configuration
β”‚   └── migrations/       # Database migrations
β”œβ”€β”€ index.html            # Entry HTML file
β”œβ”€β”€ package.json          # Dependencies
└── vite.config.ts        # Vite configuration

API Integration

  • ISS Position: Open Notify API for real-time ISS coordinates
  • NASA Imagery: NASA Image and Video Library integration
  • Earth Observation: Client-side data processing and visualization
  • Real-time Updates: Periodic API polling for live data

NASA Data Integration

  • ISS Position API: Real-time coordinates from Open Notify API
  • NASA Earth Imagery: High-resolution astronaut photography
  • Orbital Parameters: Altitude, velocity, and trajectory data
  • Mission Information: Current crew and expedition details

Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Contributors

STEPHEN OGINGA

OUMA OUMA

TOMLEE ABILA

JOSEPH OWINO

TEDDY SIAKA

License

This project is licensed under the MIT License.

About

🌍 Orbitra – Celebrating 25 years of the International Space Station πŸš€ A web app that brings the ISS closer than ever: Live ISS tracking on an interactive map Real-time Cupola-style Earth views with NASA imagery A mini Neutral Buoyancy Lab (NBL) training sim Built for the NASA Space Apps Challenge β€” blending space, data, and interactivity.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages