A Star Wars Character Catalog Using a GraphQL wrapper of the Star Wars API
Uses https://api.graphcms.com/relay/v1/swapi
- Clone the project.
git clone https://github.com/sarah-vanderlaan/star-wars-catalog.git
- Navigate into
star-wars-catalog
folder - Install dependencies
npm install
- Run app with
npm start
. This command watches all files - everytime that code is rebuilt, linting runs and tests run. - Find app at localhost:3000.
- React for UI components
- Redux for application state
- Apollo-Client and React-Apollo for fetching and binding graphQL data
- Babel to compile ES6
- Webpack to bundle files and leverage hot reloading during development
- Express server
- ESLint to report style/syntax issues
- SCSS for improved css syntax
- React-Router for routing
- Expect/Sinon for testing
- Halogen for loading dots animation
- FlexboxGrid for component layout on screen
Renders nicely in both desktop and mobile view:
Displays loading dots when loading any data from graphQL:
- Also shows smaller loading dots on profile page when loading
Handles graphQL errors:
Also handles data-specific edge cases:
- Handles null values for character properties (eg unknown height, planet, weight, etc) display as Unknown. Also shows user a message when character has no planet or no "friends" on planet.
- Shows user a message when no data returned that matches search:
- Ability to show/hide filter panel
- Navigate to characters from same planet via character profile page by clicking names of friends
- Search for a character (searches based on if search term is contained in any part of the character name)
- Sort character list in four different ways (Name asc/desc, Age asc/desc)