A full-stack web application for managing and visualizing NASA mission launches. This project features a React-based frontend and a Node.js/Express backend with MongoDB for persistent data storage. It allows users to view, schedule, and manage space mission launches, providing a modern and interactive dashboard experience.
- Features
- Project Structure
- Tech Stack
- Setup Instructions
- Running the Application
- Testing
- Deployment
- Contributing
- License
- Uploading to GitHub
- View all scheduled and historical NASA launches.
- Schedule new launches with mission details.
- Validate launch data and handle errors gracefully.
- Responsive and modern UI with real-time updates.
- RESTful API with robust validation and error handling.
- Persistent storage using MongoDB.
- Comprehensive test coverage for backend endpoints.
nasa-project/
├── client/ # React frontend
│ ├── public/
│ └── src/
├── server/ # Node.js/Express backend
│ ├── data/
│ ├── public/
│ └── src/
└── package.json # Root scripts for managing both client and server
- Frontend: React, Arwes UI, React Router
- Backend: Node.js, Express, Mongoose, MongoDB
- Testing: Jest, Supertest
- Other: CSV parsing, REST API, modern JavaScript (ES6+)
-
Clone the repository:
git clone https://github.com/KingPraise/NASA-Mission-Control.git cd NASA-Mission-Control
-
Install dependencies for both client and server:
npm install
This will run the install scripts for both the
client
andserver
directories. -
Set up environment variables:
- Create a
.env
file in theserver
directory if needed (for MongoDB URI, etc.).
- Create a
-
Development mode (concurrently runs client and server):
npm run watch
-
Start only the backend:
npm run server
-
Start only the frontend:
npm run client
-
Production build and deploy:
npm run deploy
This builds the React app and serves it from the Express backend.
-
Run backend tests:
npm test --prefix server
-
Run frontend tests:
npm test --prefix client
-
Run all tests:
npm test
-
Build the frontend:
npm run build --prefix client
-
Start the backend server (serves the built frontend):
npm start --prefix server
Contributions are welcome! Please open issues or submit pull requests for improvements and bug fixes.
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature
). - Commit your changes (
git commit -am 'Add new feature'
). - Push to your branch (
git push origin feature/your-feature
). - Open a Pull Request.
This project is licensed under the ISC License.
-
Initialize git (if not already):
git init
-
Add all files:
git add .
-
Commit your changes:
git commit -m "Initial commit"
-
Add your remote repository:
git remote add origin https://github.com/your-username/your-repo-name.git
-
Push to GitHub:
git push -u origin main
**Built with ❤️ by