Оглавление
Изначально приложение было написано на нативных технологиях: JavaScript, CSS3 и HTML5. Затем проект был перенесен на "React" с добавлением функционала регистрации и авторизации пользователей, отдельно написана логика серверной части с фреймворком "Express" и в завершение обе части объединены и сохранены на виртуальной машине, размещенной на Яндекс Облаке.
Адрес репозитория: https://github.com/elrouss/react-mesto-api-full-gha
Ссылки на проект:
IP 158.160.52.24
Frontend https://elrouss.mesto.nomoredomains.work
Backend https://api.elrouss.mesto.nomoredomains.work
Ссылки на макет:
https://www.figma.com/file/2cn9N9jSkmxD84oJik7xL7/JavaScript.-Sprint-4?node-id=0%3A1
https://www.figma.com/file/bjyvbKKJN2naO0ucURl2Z0/JavaScript.-Sprint-5?node-id=0%3A1
https://www.figma.com/file/kRVLKwYG3d1HGLvh7JFWRT/JavaScript.-Sprint-6?node-id=0%3A1
https://www.figma.com/file/PSdQFRHoxXJFs2FH8IXViF/JavaScript-9-sprint?node-id=0%3A1
https://www.figma.com/file/5H3gsn5lIGPwzBPby9jAOo/Sprint-14-RU?node-id=0%3A1
Ссылка на чек-лист
https://code.s3.yandex.net/web-developer/checklists-pdf/new-program/checklist_15.pdf
* - проект прошел код-ревью
git clone https://github.com/elrouss/react-mesto-api-full-gha.git
- клонировать репозиторий (HTTPS) на свое устройствоnpm i
- установить зависимости (отдельно - в папкеfrontend
иbackend
)npm run dev
- запустить приложение в режиме разработчика в папкеbackend
(можно предварительно настроитьпорт 3001
)npm run start
- запустить приложение в режиме разработчика в папкеfrontend
NB! На данном этапе не настроена отрисовка ошибок при попытке регистрации пользователя с ранее зарегистрированным электронным адресом, неправильном вводе электронного адреса и/или пароля и т.п. Эти ошибки можно проверить самостоятельно в консоли разработчика во вкладке «Network» (ответ с сервера будет выделен красным цветом)
Работа выполнена в 1 этап:- Реализовано логирование запросов и ошибок
- Объединены frontend и backend части приложения
- Создан облачный сервер и развернут API
- Создан .env-файл
- Создан домен и прикреплен к серверу
- Выпущены и подключены SSL-сертификаты
- Кросс-доменные запросы и механизм CORS
Решение: скачан и подключен пакет CORS
- Связывание frontend и backend
Решение: в связи с тем, что backend был написан несколько иначе, чем учебная серверная часть в процессе подготовки frontend, в процессе тестирования возникали многочисленные ошибки (регистрация/авторизация, не приходили данные, выход из личного кабинета одним пользоваталем и вход другим приводили к сохранению данных первого пользователя и их изменению только после перезагрузки страницы). Связывание проходило локально, были внесены изменения как на backend, так и на frontend
* - жирным курсивом выделен дополнительный функционал, не входящий в обязательный перечень требований для получения зачета по проектной работе
- Оптимизация лишних ререндеров
- Вывод в модальном окне после неудачной попытки регистрации/авторизации текста ошибок ("Пользователь с таким электронным адресом уже зарегистрирован", "Неправильный электронный адрес/пароль" и проч.)
- Исправление зависания анимации при открытии/закрытии бургерного меню на iPhone
- Оптимизация приложения для людей с ограниченными возможностями (напр., label для инпутов форм)
- Добавление автоматического обновления галереи карточек
- Добавление функции сабмита форм нажатием на клавишу "Enter" (в настоящий момент работает только в случае клика пользоватем по полю формы)