This challenge was provided by FotonTech, as a part of its recruitment process.
- Typescript
- GraphQL
- Apollo Server
- TypeGraphQL
- Express
- MongoDB
- Mongoose
- Jest
- Apollo Server Testing
- MongoDB Memory Server
- Typescript
- Next.JS
- React Hooks
- React Context API
- Next Apollo
- Apollo Client
- GraphQL
- Styled Components
- React Spring
- Formik
- Yup
- Storybook
Before starting, you need to install the packages and configuring server and web client by running:
yarn startup
You need to make sure MongoDB is installed, before starting the server.
You can check if there is a version installed by running:
mongod -version
Finally, you can start the server by running:
yarn dev:server
You can start the web client by running:
yarn dev:client
The server must be running in order for the data to be fetched and for the web becoming fully functional.
You can run tests by running:
yarn test
You can interact with isolated components with Storybook. To start, run:
yarn dev:storybook
For the challenge to be fulfilled, I had to comply with the following requirements:
https://www.figma.com/file/KFElqzD983WNyvMY1SaF0c/book-app?node-id=0%3A1
- a user should be able to add a book
- a user should not be able to add a book, if it is missing its title, author or description
- a user should be able to list books
- a user should be able to load more books
- a user should be able to query books by their titles
- a user should be able to view a book details