Giter VIP home page Giter VIP logo

nextjs-dashboard's Introduction

Tестовое задание Modsen Doggy Spa

Содержание

Техническое задание

Необходимо реализовать React приложение "Modsen Doggy Spa" по предоставленному дизайну из Figma с использование server-side rendering(NextJS) и GraphQl.

API

Список API для использования(если представленные API не удовлетворяют каким-либо условиям задания, можно использовать любые другие открытые API для поиска информации о собаках):

  • API DOGS - данные о собаках.

Используемые технологии

  • yarn - менеджер пакетов.
  • TS - инструмент строгой типизации
  • react-router-dom - инструмент управления состоянием.
  • email-js - библиотека позволяющая отправлять электронные письма на почту
  • styled-components - система стилизации react компонентов.
  • cypress — e2e тестирование для web-приложений
  • jest — unit-тестирование
  • yup - библиотека для валидации форм
  • nextJS - фреймворк на JavaScript, использующий React для построения server-side render
  • GraphQL - язык запросов для взаимодействия клиента и сервера, а также среда исполнения этих запросов.
  • Apollo - открытый соответствующий спецификации GraphQL-сервер.
  • paypal-js - библиотека для подключения PayPal

Необходимый функционал:

Приложение должно предоставлять возможность:

  • отправки писем на электронную почту
  • просмотр интерактивной карты
  • смены языка (продумать самостоятельно)
  • поиск информации о собаке с реализацией elastic search

Дополнительный функционал

  • Настроить CI/CD, используя GitHub Actions.
  • Собрать проект с нуля(с настройками всех конфигов: webpack, eslint, prettier, husky и тд.)

Пример графического представления:

Ссылка на макет: Макет "Modsen Doggy Spa".

Также проект предполагает:

  • Организацию файловой структуры описанной в structure.
  • Создание своего сервера на GraphQL.
  • Обработку ошибок через паттерн "Error Boundaries".
  • Использование TypeScript для типизирования и уменьшения количества потенциальных багов.
  • Использование алиасов для импортирования файлов.
  • Реализация должна быть выполнена без использования UI библиотек.
  • Обязательная валидация всех текстовых полей с использованием yup.
  • Оптимизацию дизайна под мобильные устройства.
  • Покрытие тестами всего приложения (cypress, jest, ...).
  • Создание UI библиотеки компонентов, используя storybook.
  • Обязательную анимацию при наведения, нажатии на кнопки, прокрутки карусели и слайдеров, появлении элементов на странице при рендере и скролле.
  • Творчество в контексте анимации, помимо обязательной выше, приветствуется.

Описание экранов

Каждая страница содержит в шапке профиля навигацию по страницам сайта, а также в подвале сайта должна быть реализована форма отправки сообщения на электронную почту выполняющего.

  1. Главная Home. В блоке "Your dog running amok in the dirt?" при нажатии на кнопку "Book Appointment" происходит переход на страницу Book Appointment. В блоке "Sign Up to Bark Newsletter" должна бытьреализована форма отправки сообщения на выбранную почту.

  2. Главная Shop Products. На странице должна быть возможность поиска информации о собаке, которую ввел пользователь. Поиск должен быт реализован с помощью elastic search. При некорректном поиске должна отображаться ошибка или запасной UI.

  3. Главная Spa Packages. На данной странице должна отображаться информация об услугах салона.

  4. Главная Book Appt Page. На данной странице должна отображаться интерактивная карта, она является интерактивной, на которой отображаются точки (минимум 3) удаленные друг от друга (точки определяет выполняющий). В блоке "Enter your information here" должна быть реализована отправка формы со своим шаблоном. В блоке "Choose a timeslot on Dec." можно выбрать удобное время для услуг и добавить календарь для отображения и выбора даты. В блоке "Enter your payment information" должно открываться модальное окно с введенными пользователям данными о банковской карте с возможность оплаты с помощью PayPal. При нажатии на кнопку "Book Appointment", которая отвечает за букинг, должно открывать модальное окно, где будет отображаться вся выбранная пользователем информация о времени, дате, комментарии и после успешного подтверждения данные сохраняется в LocalStorage.

  5. Главная Spa Packages.

  6. Главная About As

  7. Главная Contact Us На данной странице должна быть возможность реализации отправки письма с введенными данными на выбранную почту.

Тестирование

Реализовать e2e тестирование c полным покрытием функционала приложения:

  • Модуль навигации
  • Модуль поиска
  • Моуль оплаты
  • Модуль введенных данных для букинга

Полезные ссылки

React

React hooks

React router dom

GraphQL

Styled-components

React redux

NextJS

Тестирование Cypress

Тестирование Jest

Email-js

Yup

Storybook

i18next

GitHub Actions

Heroku

nextjs-dashboard's People

Contributors

matushini97 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.