Яндекс Практикум
News Explorer - одностраничное приложение для поиска новостей по ключевым словам, с возможностью регистрации и сохранения новостей в "избранное". Дипломная работа студента на курсе Яндекс Практикума "Веб-разработчик". Фронтэнд/бэкенд, MERN-функционал.
- Верстка - семантический HTML5, стили - CSS3 (в том числе Flexbox, Grid, transitions). Микроанимации элементов. Модель структуры и именования элементов по методологии БЭМ.
- Логика - JavaScript ES6 (функциональный подход, async/await, fetch API).
- Фронтенд - React, функциональные компоненты.
- Функции Context, Ref, Redirect, Route, Switch.
- Хуки useState, useEffect, useContext, useRef, useCallback, useHistory.
- Авторизация, валидация на фронтенде, защита роутов, использование состояния компонентов.
- Использование LocalStorage для хранения данных между сессиями.
- Сборка с применением Create React App.
- Фронтенд адаптирован под различные устройства - поддерживается разрешение экрана от 320 до 1280 и более пикселей по ширине.
- Бэкенд - Node.js/Express.js. API реализован по принципам REST для работы с базой данных, аутентификации/авторизации.
- Хранение и работа с данными - MongoDB, использование schema, CRUD-операций. Для работы с Node использован Mongoose.
- Применяется валидация поступающих данных (в том числе с помощью node-модулей validator, joi/celebrate).
- Для авторизации используется серверный куки с зашифрованным JWT-токеном.
- Ведутся логи доступа и ошибок при помощи модуля winston.
- Реализована централизованная обработка ошибок с отправкой корректных статусов и сообщений о ошибках на запросы.
- Код стандартизирован при помощи ESLint в конфигурации airbnb-base.