Для демонстрации ваших способностей предлагаем разработать простое CRUD-приложение, которое состоит из GraphQL сервера и клиентского приложения.
Для создания сервера необходимо использовать библиотеки:
- apollo-server
- graphql
- mongoose
- любые другие npm-пакеты, которые вы посчитаете нужным использовать.
Для клиентского приложения необходимо использовать:
- react
- react-dom
- material-ui
- apollo-boost
- react-apollo
- graphql
- любые другие npm-пакеты, которые вы посчитаете нужным использовать.
Сервер должен поддерживать схему:
type Query {
user(id: ID!): User!
users(skip: Int = 0, limit: Int = 10): [User]
}
type Mutation {
createUser(input: CreateUserInput!): User!
updateUser(id: ID!, input: UpdateUserInput!): User!
deleteUser(id: ID!): User!
}
type User {
id: ID!
email: Email!
name: String!
}
input CreateUserInput {
email: Email!
name: String!
}
input UpdateUserInput {
email: Email
name: String
}
Данные пользователей сохранять в MongoDB, в качестве адаптера использовать mongoose.
Клиентское приложение должно использовать библиотеку Material UI.
Необходимо реализовать список пользователей в виде таблицы с возможностью создания/редактирования/удаления/просмотра списка и деталей одного пользователя.