/NASA-PROJECT-MERN

Used Arwes Futuristic Sci-Fi UI and implemented REST APIs. NASA Exoplanets's data is used to find out the habitable planets and SPACEX-API is used for populating launches data.

Primary LanguageJavaScript

NASA-PROJECT-MERN

Used Arwes Futuristic Sci-Fi UI and implemented REST APIs. NASA Exoplanets's data is used to find out the habitable planets and SPACEX-API is used for populating launches data.

πŸš€ Architecture Diagram

nasa

πŸš€Getting Started

  • In the terminal, run: git clone https://github.com/Syed007Hassan/NASA-PROJECT-MERN.git

  • Create a server/.env file with a MONGOATLASPASWORD property set to your MongoDB connection string and a PORT property set to 5000.

  • In the terminal, run: npm install

  • In the terminal, run: npm run deploy

  • Browse to the mission control frontend at localhost:5000 and schedule an interstellar launch!

πŸš€ Running the test

To run any autamated tests, run npm test. This will

  • Run all the client-side tests: npm test --prefix client

  • Run all the server-side tests: npm test --prefix server

πŸš€ Running the project using Dockers

  • Ensure that you have the latest version of Docker installed and signed in with your account

  • In the terminal, run: docker build -t <username>/nasa-project (image being made)

  • In the terminal, run: docker run -it -p 5000:5000 <username>/nasa-project (application available at localhost:5000)

  • In the terminal, run: docker push <username>/nasa-project (image being pushed to docker hub)

πŸš€ Creating EC2 instance on AWS and deploying container

Screenshot 2023-03-18 122823

  • Now install dockers

sudo yum update

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo yum docker

sudo service docker start

sudo usermod -a -G docker ec2-user

docker run --restart=always -p 5000:5000 <username>/nasa-project

Screenshot 2023-03-18 172631

Screenshot 2023-03-18 173011

πŸš€ Technologies used

  • ReactJS: For client side
  • NodeJs: For creating REST APIS and handling database
  • Jest: For testing APIS and mocking database
  • MongoDB: For performing CRUD operations on launches and planets data
  • Dockers: For containerizing application
  • Github Actions: For creating a CI/CD pipeline

πŸš€ Demo

Nasa.project.mp4