This web application retrieves real live data from the SpaceX API

Overview

Space Travelers

This web application retrieves real live data from the SpaceX API. It provides commercial and scientific space travel services, by allowing users to book rockets and join selected space missions. The Rockets section displays a list of all available SpaceX rockets. Users can book each rocket by clicking the reservation button or cancel the previously made booking The Missions section displays a list of current missions along with their brief description and participation status. There is also a button next to each mission that allows users to join the selected mission or leave the mission the user joined earlier. The My Profile section displays all reserved rockets and space missions.

screenshot

Live Demo

You can see the app live here

Setup

Clone this repository

$ git clone [email protected]:Sahar-AbdelSamad/space-travelers.git
$ cd space-travelers

Run project

$ npm install
$ npm run start

Run tests

To run the test just use the following command!

$ npm run test

Built With

  • React
  • Redux
  • JavaScript
  • CSS
  • Bootstrap

Authors

πŸ‘€ Sahar Abdel Samad

πŸ‘€ Oyelakin Ridwan Adio

🀝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

Show your support

Give a ⭐️ if you like this project!

Comments
  • Space Travelers' Hub Project

    Space Travelers' Hub Project

    In this Project we:

    • Setup the project with Create React App
    • Installed React Redux Redux Logger and React Router
    • Created directories for all Redux state slice files using ducks pattern
    • Fetched data from SpaceX API Rockets and Missions
    • Rendered lists of rockets and missions in corresponding routes
    • Created a reducer and action dispatcher for the "Reserve Rocket” button in the rockets route
    • Implemented a Reserved badge and "Cancel reservation" button when the button Reserve Rocket is pressed in the rockets route
    • Created a reducer and action dispatcher for the "Cancel Reservation” button in the rockets route
    • Created a reducer and action dispatcher for the "Join Mission" button in the missions route
    • Implemented a badge "Active Member" instead of the default "NOT A MEMBER" and a button "Leave Mission" instead of the "Join Mission" button in the missions route
    • Created a reducer and action dispatcher for the "Leave Mission" button in the missions route
    • Rendered a list of all joined missions on myProfile Route
    • Rendered a list of all reserved rockets on myProfile Route
    • Set up React Testing Library.
    • Created unit tests for all React components using Jest snapshots
    • We made the page responsive
    • Enhanced the My Profile section by adding a placeholder message when the My Missions or My Rockets lists are empty (no missions joined or no rockets reserved).
    • Enhanced the My Profile section by adding the Cancel reservation and "Leave Mission" buttons to the lists here. Clicking them will dispatch the actions used earlier
    • Enhanced the My Profile section by adding the Read more button for each mission and rocket. Upon click, it opens a corresponding Wikipedia page (retrieved from API) in a new tab.
    • Added cards to the Kanban board for the additional tasks we decided to implement
    opened by Sahar-AbdelSamad 1
  • Add mission for api call

    Add mission for api call

    SPACE TRAVELERS: CREATE MISSIONS CALL πŸŽ‰πŸŽ‰πŸŽ‰

    • Added dispatch action reserveMission when user clicks the "Reserve rocket" button and the store is updated
    • Added dispatch action cancelReservation when user clicks the "Reserve rocket" button and the store is updated
    • Added Reserved badge and Cancel reservation button for the reserved rockets
    • Added Reserve rocket button for the canceled reservations
    • Styled the page to match the design
    opened by oyelakinG9 1
  • Enhance the My Profile section-Missions

    Enhance the My Profile section-Missions

    • Add a placeholder message when the "My Missions" lists are empty (no missions joined).
    • Add "Leave Mission" button to the lists. Clicking it should dispatch the actions you have already used in the main Missions sections.
    • Add the "Read more" button for each mission. Upon click, it should open a corresponding Wikipedia page in a new tab. NOTE - you need to get that extra Wikipedia URL from the API's payload.
    opened by Sahar-AbdelSamad 0
  • Enhance the My Profile section-Rockets

    Enhance the My Profile section-Rockets

    • Add a placeholder message when the "My Rockets" lists are empty (no rockets reserved).
    • Add "Cancel reservation" button to the lists. Clicking it should dispatch the actions you have already used in the main Rockets sections.
    • Add the "Read more" button for each rocket. Upon click, it should open a corresponding Wikipedia page in a new tab. NOTE - you need to get that extra Wikipedia URL from the API's payload.
    opened by Sahar-AbdelSamad 0
  • Ft/enhance my profile section

    Ft/enhance my profile section

    In this PR I enhance the My Profile section by:

    • Adding a placeholder message when the "My Rockets" lists are empty (no rockets reserved)
    • Adding the "Cancel reservation" button to the lists
    • Adding the "Read more" button for each rocket. Upon click, it opens a corresponding Wikipedia page (retrieved from API) in a new tab
    opened by Sahar-AbdelSamad 0
  • Enhance my profile

    Enhance my profile

    SPACE TRAVELERS HUN: ENHANCE MY PROFILE πŸš€πŸš€πŸš€

    • Modfy reserve mission list js file
    • Update mission redux store
    • Modify reserve mission js file
    • Modify profile styling πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
    opened by oyelakinG9 0
  • Rendering mission

    Rendering mission

    SPACE TRAVELERS HUB: CREATING MISSION COMPONENTS πŸŽ‰πŸŽ‰

    • Creating mission component
    • Add mission list
    • Use useSelector() Redux Hook to select the state slices and render lists of missions in corresponding routes. i.e.:
      // get rockets data from the store
    const rockets = useSelector(state => state.rockets);
    
    
    opened by oyelakinG9 0
  • Feature/rocket booking

    Feature/rocket booking

    In this branch I:

    • Added dispatch action reserveRocket when user clicks the "Reserve rocket" button and the store is updated
    • Added dispatch action cancelReservation when user clicks the "Reserve rocket" button and the store is updated
    • Added Reserved badge and Cancel reservation button for the reserved rockets
    • Added Reserve rocket button for the canceled reservations
    • Styled the page to match the design
    opened by Sahar-AbdelSamad 0
  • Feature/fetch rockets data

    Feature/fetch rockets data

    In this branch I:

    • Installed redux-devtools-extension, react-router-dom and redux-thunk dependencies
    • Fetched data from the Rockets endpoint
    • Dispatched an action to store: id, rocket_name, description, and flickr_images in Redux store
    opened by Sahar-AbdelSamad 0
  • Setup

    Setup

    In this branch we:

    • Created the react app
    • Installed react-redux,react-router-dom,react-scripts, and redux-logger dependencies
    • Added Linters files
    • Added the app logo
    • Created an empty header
    • Created Routes and view components
    • Created a directory for all Redux state slice files using the 'ducks pattern'
    opened by Sahar-AbdelSamad 0
  • [1pt] Create empty My profile - Setup (group task)

    [1pt] Create empty My profile - Setup (group task)

    • Create a route and a view component. Use <NavLink /> for the page navigation links and style active class to indicate which section/page the user is currently on (underline active navigation link).
    • This view should be empty - you will add content in separate tasks.
    opened by Sahar-AbdelSamad 0
Owner
Sahar Abdel Samad
Full-Stack Web Developer with a love for JavaScript. I read and listen to audiobooks in my spare time. Looking for my next job!
Sahar Abdel Samad
API routes are great for APIs, but for small projects where you have to access server data or hide application logic, you can just call a server function from the client.

API routes are great for APIs, but for small projects where you have to access server data or hide application logic, you can just call a server function from the client.

null 3 Mar 6, 2022
autoNumeric is a standalone library that provides live as-you-type formatting for international numbers and currencies.

What is autoNumeric? autoNumeric is a standalone Javascript library that provides live as-you-type formatting for international numbers and currencies

AutoNumeric 1.7k Dec 16, 2022
Insider Unlocked is an ongoing web application

Insider Unlocked is an ongoing web application we have been co-developing for the past few months which aggregates stock trading data of US senators and presents it in a digestible manner for the average retail investor

null 3 Feb 13, 2022
A simple server application that allows you to perform Wake-on-LAN remotely with a web interface

WoL Helper A simple server application that allows you to perform Wake-on-LAN remotely with a web interface. Usage Install: npm install -g wol-helper

Hongbo 5 Jul 27, 2022
A PHP Laravel web application that uses most of Laravel technologies to build that gym system

A PHP Laravel web application that uses most of Laravel technologies to build that gym system.The System is based on rules. Admin, City Manager, Gym Manager. All Crud operations running using data tables.

Ashraf Eldawody 9 Dec 29, 2022
A user script for the web that allows you to view and edit files in the Godot Web Editor

Godot-Web-File-Manager This is a user script for the web that allows you to view and edit files in the Godot Web Editor. You can even use this to enab

Roujel Williams 4 Jan 31, 2022
Lazy-loading images with data-* attributes

Echo.js Echo is a standalone JavaScript lazy-loading image micro-library. Echo is fast, 2KB, and uses HTML5 data-* attributes for simple. Check out a

Todd Motto 3.7k Dec 30, 2022
πŸ“ Algorithms and data structures implemented in JavaScript with explanations and links to further readings

JavaScript Algorithms and Data Structures This repository contains JavaScript based examples of many popular algorithms and data structures. Each algo

Oleksii Trekhleb 158k Dec 31, 2022
Gmail-like client-side drafts and bit more. Plugin developed to save html forms data to LocalStorage to restore them after browser crashes, tabs closings and other disasters.

Sisyphus Plugin developed to save html forms data to LocalStorage to restore them after browser crashes, tabs closings and other disasters. Descriptio

Alexander Kaupanin 2k Dec 8, 2022
Free, open-source crypto trading bot, automated bitcoin / cryptocurrency trading software, algorithmic trading bots. Visually design your crypto trading bot, leveraging an integrated charting system, data-mining, backtesting, paper trading, and multi-server crypto bot deployments.

Free, open-source crypto trading bot, automated bitcoin / cryptocurrency trading software, algorithmic trading bots. Visually design your crypto trading bot, leveraging an integrated charting system, data-mining, backtesting, paper trading, and multi-server crypto bot deployments.

Superalgos 3.1k Jan 1, 2023
TrackIt - Single Page Application that helps the user track their habits.

TrackIt - Single Page Application that helps the user track their habits. Implemented with JavaScript/React and an API server which enables the user to sign-in or sign-up in the app.

Lucas Azzolini Vieira 7 Apr 13, 2022
NodeJS application to upload an image to a S3 Bucket on AWS.

node-upload-image-to-s3-bucket NodeJS application to upload an image to a S3 Bucket on AWS. How it works: You must make a POST request to /upload-imag

Rafael Silva de Lima 6 Sep 28, 2022
RANDM - a dating application that helps users find matches through randomization

RANDM - The Random Dating App RANDM is a dating application that helps users find matches through randomization. While other dating apps on the market

Jennifer Cole 9 Oct 31, 2022
Travel Lovers - an application that allows a travel enthusiast to create an account to log past, upcoming, and bucket-list trips

Travel Lovers Table of Contents Description Tools Used Installation Instructions Usage License Tests Questions Description Travel Lovers is an applica

Nicholas Nolen 5 Aug 31, 2022
NestJS module for adding translations to the application, with a pipe for translating validation errors

nestjs-translates NestJS module for adding translations to the application, with a pipe for translating validation errors Installation npm i --save ne

ILshat Khamitov 6 Jul 26, 2022
A simple implementation of a task list application that can be used to add, remove, edit and check users tasks

"To-do list" is a tool that helps to organize daily activites. It simply lists the things which are needed to be done and allows user to mark them as complete. In this step of project, the CRUD (create, update, delete) methods are implemented. This simple web page is built using webpack and served by a webpack dev server.

Zahra Arshia 5 Mar 28, 2022
:heavy_dollar_sign: Vibration API Wrappers

This library was to be published hand-to-hand with my article on the Vibration API. You can also view the documentation. Does my Device Support the AP

illyism 144 Nov 23, 2022
🌳 Tiny & elegant JavaScript HTTP client based on the browser Fetch API

Huge thanks to for sponsoring me! Ky is a tiny and elegant HTTP client based on the browser Fetch API Ky targets modern browsers and Deno. For older b

Sindre Sorhus 8.5k Jan 2, 2023
A prebuilt Express JS Authentication & Authorization Project based on a REST API interface.

A prebuilt Express JS Authentication & Authorization Project based on a REST API interface. It has the basic authentication and Authorization routes with the latest security measures implemented so that your application is much more secure from day 1. You are welcome to build upon and extend this project as and when required.

Soumalya Bhattacharya 2 Oct 7, 2022