A comprehensive space exploration hub for enthusiasts, built with Next.js, TypeScript, and Tailwind CSS.
- Satellite Tracker: Real-time satellite tracking using N2YO.com API
- Celestial Database: Explore planets and exoplanets from NASA Exoplanet Archive
- Research Library: Search and save research papers from NASA ADS
- Event Calendar: Track space events, launches, and space weather
- Community Forum: Connect with fellow space enthusiasts
- User Profiles: Save favorites and manage your space exploration data
- Frontend: Next.js 14, TypeScript, Tailwind CSS
- Backend: Next.js API Routes, Prisma ORM
- Database: PostgreSQL
- Authentication: NextAuth.js
- APIs: N2YO.com, Launch Library, NASA DONKI, NASA Exoplanet Archive, NASA ADS
- Node.js 18+
- PostgreSQL database
- API keys for external services
- Clone the repository:
git clone <repository-url>
cd orbiter- Install dependencies:
npm install- Set up environment variables:
cp .env.local.example .env.local- Configure your
.env.localfile:
# Database
DATABASE_URL="postgresql://username:password@localhost:5432/orbiter"
# NextAuth
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-secret-key-here"
# API Keys
N2YO_API_KEY="your-n2yo-api-key"
NASA_ADS_API_KEY="your-nasa-ads-api-key"
NASA_DONKI_API_KEY="your-nasa-donki-api-key"
# External API URLs
LAUNCH_LIBRARY_API_URL="https://ll.thespacedevs.com/2.2.0"
NASA_DONKI_API_URL="https://api.nasa.gov/DONKI"
NASA_EXOPLANET_API_URL="https://exoplanetarchive.ipac.caltech.edu/TAP"
NASA_ADS_API_URL="https://api.adsabs.harvard.edu/v1"- Set up the database:
npx prisma generate
npx prisma db push- Run the development server:
npm run dev- Visit N2YO.com
- Register for a free account
- Get your API key
- Add it to your
.env.localfile
- Visit NASA ADS
- Create an account
- Generate an API token
- Add it to your
.env.localfile
- Visit NASA API
- Generate a free API key
- Add it to your
.env.localfile
src/
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ ├── auth/ # Authentication pages
│ ├── celestial-database/
│ ├── community/
│ ├── event-calendar/
│ ├── profile/
│ ├── research-library/
│ ├── satellite-tracker/
│ └── page.tsx # Home page
├── components/ # React components
├── lib/ # Utility functions and configurations
│ ├── api-services.ts # External API integrations
│ ├── auth.ts # NextAuth configuration
│ ├── daily-fetch.ts # Daily data fetching scripts
│ └── prisma.ts # Prisma client
└── prisma/
└── schema.prisma # Database schema
The application includes automated scripts to fetch data from external APIs daily:
- Launch Library: Upcoming rocket launches
- NASA DONKI: Solar flares, CMEs, and geomagnetic storms
To set up automated fetching, you can:
- Use a cron job service like Vercel Cron
- Set up a GitHub Action
- Use a service like cron-job.org to hit the
/api/cron/daily-fetchendpoint
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This project is licensed under the MIT License.
For support, please open an issue on GitHub or contact the development team.