Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Alexander-Nov/mesto

Repository files navigation

Проект: Mesto Russia


HTML  CSS  JavaScript  JSON  BEM  OOP  Git  GitHub  Webpack 

О проекте

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

Функционал и техническое исполнение проекта

  • реализован класс Api.js с FETCH-запросами (GET, POST, DELETE, PATCH, PUT): загрузка стартовых карточек с сервера, добавление новых фото, простановка like, удаление карточки с фото, замена данных подьователя и аватара;
  • реализованы модальные окна с формой ввода данных пользователем. Для работы попапов создан класс Popup.js, который имеет дочерние классы PopupWithForm.js (окно ввода/редактирования данныз), PopupWithSubmit.js (окно запроса подтверждения), PopupWithImage.js (окно с увеличенным изображением практически на весь экран). При создании дочерних классов используется наследование и полиморфизм;
  • для всех полей ввода всех попапов с формами ввода/редактирования данных организована валидация вводимых данных посредством JS, за валидацию отвечает класс FormValidator.js:

валидация форм

- нажатие на кнопку "Редактировать" в профиле пользователя выводит popup-окно с имеющимися на странице данными, которые можно отредактировать и сохранить. При сохранении новы данных отправляется запрос на сервер и по факту получения ответа об успешной замене, происходит о бновление данных на страниц. При закрытии окна без сохранения данные перезаписаны не будут:

редактирование профиля

- нажатие на кнопку "+" выводит окно с формой ввода названия и ссылки на новое фото:

добавление/удаление/лайк/попап

- нажатие на любое фото открывает окно просмотра фотографии в увеличенном масштабе; - любой попап можно закрыть тремя способами (нажатием на "крестик" закрытия в правом верхнем углу попапа, нажатием на любую часть поля вокруг попапа, нажатием кнопки Esc); - реализовано плавное открытие/закрытие попапов; - улучшен плозовательский интерфейс в части информирования о текущем статусе процесса (в момент отработки запроса к серверу происходит замена надписи на кнопке с начального на "Сохранение". По факту получения успешного ответа от сервера надпись меняется на изначальное значение); - для построения сетки выводимых карточек с фото применена flexbox- и grid-вёрстка; - адаптивная верстка под разные разрешения пользовательских устройств;

🛠 Инструкция по развёртыванию:

В проекте настроен сборщик Webpack, для сборки рабочей версии проекта необходимо:

  • клонировать репозиторий:
    $ git clone <адрес репозитория>
  • установить npm:
    $ npm install
  • если потребуются обновления для пакетов:
    $ npm update
  • собрать проект:
    $ npm run build
  • готовый проект будет находиться в папке /dist, для запуска необходимо открыть в браузере файл index.html.

В сборке используются следущие плагины:

◻️ Babel-core
◻️ Babel-loader
◻️ Babel-preset
◻️ Autoprefixer
◻️ Clean plugin
◻️ Css-loader
◻️ Cssnano
◻️ Gh-pages
◻️ HTML Webpack Plugin
◻️ Mini-css-extract-plugin
◻️ Postcss-loader
◻️ Webpack
◻️ Webpack
◻️ Webpack-dev-server
◻️ Core-js

Демо страницы на GitHub Pages

About

Проект: Место

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published