Skip to content

Repository files navigation

Cornell GeoData

The website for Cornell GeoData, a student project team building low-cost instruments that measure a changing planet: soil and water sensors around Cayuga Lake, atmospheric profiling, and satellite ground-truthing for NASA's NISAR mission.

The site covers our projects and team, a posts and blog section, sponsorship information, and a live feed from the team's Air Quality Eggs.

Built with React 19, TypeScript and Vite.

Running it locally

npm install
npm run dev

That serves the site at localhost:5173 with hot reload. Every page works except the live sensor feed, which needs the API proxy below.

Other commands:

npm run build     # production build into dist/
npm start         # serve the production build
npm run lint      # oxlint
npx tsc --noEmit  # type-check (the build does not do this for you)

Layout

index.html      page shell: meta tags, Open Graph, JSON-LD
server.mjs      production server, plus the sensor API proxy
compress.mjs    build step, writes .br/.gz alongside the bundle
src/
  main.tsx      entry point
  App.tsx       hash router, header and footer
  pages/        one file per route
  components/   shared widgets (the 3D globe, the alumni ball pit)
  data/         all site content, edit here to change copy
  lib/          framework-agnostic code (the three.js globe engine)
  styles/       global CSS and shared type styles
public/         images, fonts, and the 3D model, served at the site root

To change what the site says rather than how it works, everything is in src/data/: posts, privacy and terms text, the member roster, and projects.

dist/ is generated by the build and is not in the repo.

The sensor feed

server.mjs proxies the Air Quality Egg API so the key stays server side. It needs two environment variables:

EGG_SERIAL=<comma-separated egg serial numbers>
EGG_API_KEY=<key>

Without them the endpoint returns a 503 and the sensors page shows an offline message. In development, Vite proxies /api to port 4173, so run node server.mjs alongside npm run dev to see live data.

About

just trying stuff out

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages