Enable researchers and enthusiasts to upload, analyze, and visualize astronomical data, and interact with AI-powered tools for exoplanet discovery.
- src/: Core logic, React components, hooks, services, types
- config/: Environment and configuration files (never commit secrets)
- tests/: Unit and integration tests
- docs/: Architecture, design, and contribution docs
- scripts/: Automation and developer utilities
- React 18, Vite, TypeScript
- Tailwind CSS, shadcn/ui, Recharts
- React Router, React Query
- Clone the repository
- Copy
.env.exampleto.envand fill in values - Run
npm install - Start with
npm run dev
- Modular, scalable, and secure codebase
- Recruiter- and reviewer-friendly structure
- Easy to extend and maintain
- No hardcoded secrets; use environment variables
- Linting: ESLint, Prettier
- Testing: Vitest, React Testing Library
- Pre-commit: Husky, lint-staged
- CI: GitHub Actions (see below)
- See
docs/ARCHITECTURE.mdfor design - See
CONTRIBUTING.mdfor contribution guidelines - See
CHANGELOG.mdfor release notes - See
SECURITY.mdfor security policy
name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- run: npm ci
- run: npm run lint
- run: npm run test -- --coverage
- run: npm run build- ESLint:
npm run lint - Prettier:
npm run format - Husky: Pre-commit hooks for lint/test
- Vitest: Fast unit/integration tests
- React Testing Library: UI tests
- Coverage goal: 80%+
MIT
π« The FastAPI backend is available here:
π Exoscope Backend Repository
The project has been deployed to the following endpoints (for convenience both the Hugging Face Space used for model hosting and the Vercel deployment for the full app are listed):
- Hugging Face Space (model/backend demo): https://giz17-space.hf.space
- Vercel (full frontend + backend proxy): https://nasaexoscope.vercel.app/
src/
βββ components/
β βββ layout/
β β βββ Navbar.tsx # Navigation bar
β β βββ Footer.tsx # Footer with credits
β βββ home/
β β βββ Hero.tsx # Hero section with 3D planet
β β βββ Features.tsx # Feature highlights
β βββ upload/
β β βββ UploadSection.tsx # CSV upload with drag-drop
β β βββ AnalysisResult.tsx # Results display
β β βββ LightCurveChart.tsx # Light curve visualization
β βββ chat/
β βββ ChatInterface.tsx # Chat UI
β βββ MessageBubble.tsx # Message display
β βββ ChatInput.tsx # Message input
βββ pages/
β βββ Home.tsx # Landing page
β βββ UploadPage.tsx # Upload & analysis page
β βββ ChatPage.tsx # AI chatbot page
β βββ NotFound.tsx # 404 page
βββ services/
β βββ api.ts # Backend API integration
βββ hooks/
β βββ useUpload.ts # Upload logic hook
β βββ useChat.ts # Chat logic hook
βββ App.tsx # Main app with routing
- Node.js 18+ and npm
# Clone the repository
git clone https://github.com/JosephJonathanFernandes/Nasa-Space-Hackathon-WizCoders-frontend
cd Nasa-Space-Hackathon-WizCoders-frontend
# Install dependencies
npm install
# Start development server
npm run devVisit http://localhost:8080 to see the application.
The platform is designed to work with ML models trained on:
- NASA Kepler mission data
- TESS mission observations
- Transit detection algorithms
- RAG (Retrieval-Augmented Generation) for chat
- Components: Functional components with TypeScript
- Styling: Design system tokens (no hardcoded colors)
- State: React hooks for local state, React Query for server state
- Documentation: JSDoc comments on all components/functions
- Accessibility: ARIA labels, keyboard navigation
β
Dataset upload with drag-and-drop
β
Light curve visualization
β
Candidate detection display
β
AI chatbot interface
β
Responsive design
β
Space-themed animations
- Advanced filtering and sorting
- Export analysis reports
- User authentication
- Dataset history
- Quick start
- Development
- Repository separation
- Contributing
- Code of Conduct
- Security
- License
- Credits
This repository contains the frontend application for Exoscope. The frontend and backend are maintained as separate repositories β see the "Repository separation" section below for links.
Prerequisites
- Node.js 18+ and npm (or pnpm/yarn)
Local development
-
Clone the frontend repository (or navigate into this folder if already cloned).
git clone https://github.com/JosephJonathanFernandes/Nasa-Space-Hackathon-WizCoders-frontend cd Nasa-Space-Hackathon-WizCoders-frontend
-
Install dependencies
npm ci
-
Start the development server
npm run dev
The Vite dev server will start and print the local URL (commonly http://localhost:5173). If you see a different port in your terminal, open that instead. Note: the instructions earlier in this file still reference http://localhost:8080 β keep whichever address your dev server reports.
Build and preview
npm run build npm run preview
- Use TypeScript and React functional components.
- Follow the existing project structure in
src/for pages, components, hooks and services. - Keep UI tokens in Tailwind and avoid hardcoded colors.
Important: The frontend and backend are separate repositories. This repository contains only the frontend application and documentation. The backend (FastAPI) repository used by this project is available at:
https://github.com/JosephJonathanFernandes/Nasa-Space-Hackathon-WizCoders-backend
If you are running the full stack locally, clone and run the backend repo separately and update the frontend src/services/api.ts (or environment variables) to point to your local backend URL.
Thanks for wanting to contribute! Please read the project's CONTRIBUTING.md for contribution guidelines, testing, and branching rules. A short summary:
- Fork and create feature branches from
main. - Open concise pull requests with a clear description and changelog when appropriate.
- Add or update tests for new behavior.
Please follow the project's CODE_OF_CONDUCT.md. We expect contributors to be respectful, inclusive, and collaborative.
If you discover a security vulnerability, please report it privately to the maintainers via the contact method listed in SECURITY.md rather than opening a public issue.
This frontend repository is distributed under the MIT License β see the LICENSE file for details.
This project was developed for the NASA Space Apps Global Hackathon. Thanks to the participants, mentors, and the open-source ecosystem.
Built with β€οΈ for exploring the cosmos πͺ