Skip to content

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.

Notifications You must be signed in to change notification settings

KingPraise/Node-JS-Mission-Control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NASA Mission Control

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.

Table of Contents


Features

  • 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.

Project Structure

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

Tech Stack

  • Frontend: React, Arwes UI, React Router
  • Backend: Node.js, Express, Mongoose, MongoDB
  • Testing: Jest, Supertest
  • Other: CSV parsing, REST API, modern JavaScript (ES6+)

Setup Instructions

  1. Clone the repository:

    git clone https://github.com/KingPraise/NASA-Mission-Control.git
    cd NASA-Mission-Control
  2. Install dependencies for both client and server:

    npm install

    This will run the install scripts for both the client and server directories.

  3. Set up environment variables:

    • Create a .env file in the server directory if needed (for MongoDB URI, etc.).

Running the Application

  • 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.

Testing

  • Run backend tests:

    npm test --prefix server
  • Run frontend tests:

    npm test --prefix client
  • Run all tests:

    npm test

Deployment

  1. Build the frontend:

    npm run build --prefix client
  2. Start the backend server (serves the built frontend):

    npm start --prefix server

Contributing

Contributions are welcome! Please open issues or submit pull requests for improvements and bug fixes.

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/your-feature).
  3. Commit your changes (git commit -am 'Add new feature').
  4. Push to your branch (git push origin feature/your-feature).
  5. Open a Pull Request.

License

This project is licensed under the ISC License.

Uploading to GitHub

  1. Initialize git (if not already):

    git init
  2. Add all files:

    git add .
  3. Commit your changes:

    git commit -m "Initial commit"
  4. Add your remote repository:

    git remote add origin https://github.com/your-username/your-repo-name.git
  5. Push to GitHub:

    git push -u origin main

**Built with ❤️ by

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published