Archived: This is using Prisma 1 which has been discontinued.
Attempt to create a great reference project with an amazing developer experience wherein a lot of common React/Prisma/GraphQL challenges are addressed.
- TypeScript (we have
*.jsin.gitignore!) - Monorepo setup with a few different projects
/api- GraphQL API Gateway in front of Prisma/web- Next.js React App with Apollo Client/e2e- Nightwatch.js E2E testing
- Travis CI with Sauce Labs for cross-browser testing
- Server-side rendered React app.
- GraphQL using Apollo with optmistic updates.
- Pessimisticβ’ updates - app works completely without JS enabled in the browser (and there's E2E tests for it).
- Creates a shopping cart (
Order) before page load, reference id saved to cookies - Add/edit products to/in cart
- Product list from GraphQL
- Open checkout route in modal
- Discount code support (try code "
first")
- Install node 9
- Install Homebrew
- Install Docker -
brew cask install docker - Install yarn -
npm install -g yarn - Start Docker
yarn install- Installs deps for
//api/web/e2e
- Installs deps for
- Start Prisma + seed DB
yarn setup:prisma
yarn devStarts the /api Gateway, the Next.js /web, and a TypeScript watcher for /e2e in parallell.
If you prefer separate output, navigate to /api, etc in separate shells and run yarn dev
If everything goes smoothly you should be able to access the below:
- API Gateway: http://localhost:4000
- Web App: http://localhost:5000
Uses Jest.
yarn test:api/web has no tests (yet).
brew install selenium-server-standalone
brew install chromedriver
brew install geckodriver
brew cask install java- Run selenium:
yarn selenium - Setup + start apps:
yarn setup && yarn build && yarn dev - Run tests:
yarn start:e2e- Will run E2E in Chrome with JS enabled
- To run without js:
yarn start:e2e -- --env chrome:nojs - See nightwatch.ts for all envs
/mutationsand/queriesexposes render prop components for easy handling of data loading / rendering- .. TBC
This is a bit of a playground for web tech for me. I'm still developing it & I gather a list of things I'd like to do in issues.
If you have problems running it, ideas of things to add, things you want me to explain / elaborate on, or need help to build a product - open an issue or reach out to me on Twitter.
Feel free to fork it and make a pull request of something cool!
/ )
/ )__/ )___/ /
( @ . @ ) )
( )
//"//""//"//
KATTCORP LTD.
by kattcorp.com