This is a full-stack MERN (MongoDB, Express, React, Node.js) application that simulates a NASA Mission Control Dashboard. It allows users to schedule launches to habitable exoplanets and view historical launch data.
The project uses:
- Client: React (with Arwes sci-fi UI framework)
- Server: Node.js with Express and Mongoose
- Database: MongoDB
- Frontend: React, Arwes, React Router
- Backend: Node.js, Express, Mongoose, csv-parse
- Database: MongoDB
- Testing: Jest, Supertest
- CI/CD: GitHub Actions
- Node.js (v18 or v20 recommended)
- NPM
- MongoDB (running locally on port 27017, or use the included Docker setup)
-
Clone the repository.
-
Install dependencies for both client and server:
npm install
This command runs
npm installin bothclient/andserver/directories.
To run both client and server in parallel (watch mode):
npm run watch- Client: http://localhost:3000
- Server: http://localhost:8000
To build the client and start the server:
npm run deployThis builds the React app into server/public and starts the Node server.
To run tests for both client and server:
npm testServer tests use an in-memory MongoDB instance.
The server exposes a REST API at http://localhost:8000/v1.
GET /v1/planets: Get all habitable planets.GET /v1/launches: Get all launches.POST /v1/launches: Schedule a new launch.DELETE /v1/launches/:id: Abort a launch.
You can also run the application using Docker.
docker build -t nasa-project .
docker run -p 8000:8000 nasa-project