diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..9c2d170 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,8 @@ +# CODEOWNERS defines who automatically reviews changes. +# Format: path @github-user1 @github-team + +# Everything defaults to core maintainers +* @Inika-Goyal @YourOrgOrTeam + +# Frontend specific +/frontend/ @Inika-Goyal diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..524eac1 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,22 @@ +## Summary +Describe the change. + +## Motivation +Why is this change needed? + +## Changes +- + +## Screenshots / Demo (if UI) + +## Checklist +- [ ] Tests (if applicable) added or updated +- [ ] Lint passes (`npm run lint`) +- [ ] Type checks pass (`npx tsc --noEmit`) +- [ ] Docs updated (README / CONTRIBUTING / comments) +- [ ] No unused console.logs + +## Feature Flags +Does this introduce or use a feature flag? If so, describe. + +## Additional Notes diff --git a/.github/workflows/codeowners-enforce.yml b/.github/workflows/codeowners-enforce.yml new file mode 100644 index 0000000..a5ed9b9 --- /dev/null +++ b/.github/workflows/codeowners-enforce.yml @@ -0,0 +1,20 @@ +name: Enforce CODEOWNERS (informational) + +on: + pull_request: + types: [opened, synchronize] + +jobs: + codeowners: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Show codeowners (if exists) + run: | + if [ -f .github/CODEOWNERS ]; then + echo 'CODEOWNERS content:' + cat .github/CODEOWNERS + else + echo 'No CODEOWNERS file found.' + fi diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..40c23e5 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,54 @@ +# Contributing to ExoPlanets + +Thank you for your interest in contributing! This guide will help you get started. + +## 1. Branch Strategy +- `main`: Stable, deployable code. +- Feature branches: `feature/` +- Bug fixes: `fix/` + +## 2. Getting Started +```bash +# Clone and install +git clone +cd ExoPlanets/frontend +npm install +npm run dev +``` + +## 3. Making Changes +1. Create a branch: `git checkout -b feature/add-planet-table` +2. Make changes and run lint & type checks: + - `npm run lint` + - `npm run build` (or `npx tsc --noEmit`) +3. Commit using conventional commits (e.g., `feat: add planet detail panel`). +4. Push and open a Pull Request (PR) into `main`. + +## 4. Pull Request Guidelines +- Keep PRs focused (one logical change set). +- Include a clear description: purpose, approach, screenshots if UI. +- Ensure no ESLint errors. +- Add or update docs if behavior changes. + +## 5. Code Style +- TypeScript + React. +- Prefer explicit types over `any`. +- Use existing utility functions in `src/lib/`. +- Keep components small and composable. + +## 6. Feature Flags +Use `featureFlags.ts` for gated behavior. Add env vars prefixed with `VITE_`. + +## 7. Assets +Place static assets under `frontend/public/`. Refer to them with absolute paths like `/kepler.gif`. + +## 8. Testing (Future) +Add lightweight tests when a testing framework is introduced. + +## 9. Communication +Use PR comments for discussion. For larger changes, open an issue first. + +## 10. License and Attribution +Ensure external assets have proper attribution or licensing. + +Happy contributing! 🌌 diff --git a/frontend/src/components/AboutSection.tsx b/frontend/src/components/AboutSection.tsx index a8e4f9d..f74630b 100644 --- a/frontend/src/components/AboutSection.tsx +++ b/frontend/src/components/AboutSection.tsx @@ -10,8 +10,13 @@ export const AboutSection: React.FC = () => {

About

-

- Modern exoplanet discovery produces terabytes of stellar brightness measurements (light curves) from space telescopes like Kepler and TESS. The transit photometry method detects subtle, periodic dips in a star's flux when an orbiting planet crosses the stellar disk. Turning raw pixels into vetted planet candidates requires: (1) detrending instrumental and stellar variability, (2) searching for repeating transit-like signals, (3) modeling transit parameters (depth, duration, period) to infer planet size and orbital geometry, (4) filtering false positives such as eclipsing binaries, background blends, or systematic artifacts, and (5) aggregating stellar metadata (temperature, radius, contamination) for context. This project organizes, annotates, and links these heterogeneous data layers—raw and processed light curves, transit fits, validation metrics, and catalog cross-matches—so researchers and citizen scientists can efficiently explore, compare, and prioritize exoplanet candidates. +

+ Our Model + Our supervised machine learning model classifies planetary candidates from NASA’s Kepler, K2, and TESS missions as either true exoplanets or false positives. It uses features such as orbital period, stellar radius, and stellar temperature to learn the patterns that distinguish real planets from other astrophysical signals. +

+ By combining multiple supervised learning algorithms into a stacking model and connecting our website to Northwestern’s QUEST Supercomputer, we’ve leveraged machine learning and high-performance computing to achieve highly accurate predictions. +

+ After training and tuning our model, we were able to confidently classify previously unidentified survey candidates as exoplanets, paving the way for future research and helping prioritize which potential worlds deserve the most follow-up and observational resources. Our interactive model editor even allows users to adjust hyperparameters and rerun the model themselves.