This is an interactive full-stack, GraphQL-powered app with the Apollo platform, for reserving a seat on an upcoming SpaceX launch. 🚀
Think of it as an Airbnb for space travel! All of the data is real, thanks to the SpaceX-API.
The app includes the following views:
- A login page
- A list of upcoming launches
- A detail view for an individual launch
- A user profile page
- A cart
To populate these views, the app's data graph will connect to two data sources: a REST API (from SpaceX) and a SQLite database (this is because the SpaceX API is a read-only data source for fetching launch data, so we also need a writable data source that allows us to store application data, such as user identities and seat reservations).
Here's what the finished app will look like:
Although it isn't required, it's also recommend using VS Code as your editor so you can use Apollo's helpful VS Code extension.
The app is split out into two parts:
server
: The application backend, which uses Apollo Server to build a GraphQL serverclient
: The application frontend, which uses Apollo Client to communicate with the backend
To run the app, run these commands in two separate terminal windows from the root:
cd server && npm i && npm start
and
cd client && npm i && npm start
Server will be available on http://localhost:4000 and client on http://localhost:3000.