tech-internship

0

Описание

Языки

  • TypeScript81%
  • SCSS17%
  • JavaScript1,2%
  • HTML0,6%
  • Dockerfile0,2%
README.md

Tech internship

Quick start (Docker)

Quick start (without Docker)

Задачи проекта

Страница всех объявлений

  • Отображается список всех объявлений продавца
  • Реализована пагинация показа объявлений
  • Реализован выбор количества объявлений для показа на странице (по умолчанию должно быть 10)
  • Реализован поиск по названию объявления
  • Можно перейти на страницу объявления (по клику на карточку)
  • В карточке объявления есть следующая информация о нем:
    • Картинка
    • Название
    • Стоимость
    • Количество просмотров
    • Количество лайков
  • Есть возможность создавать новые объявления (Модальное окно с input):
    • Картинка (текстовое поле для ввода URL)
    • Название (текстовое поле)
    • Описание (текстовое поле)
    • Стоимость (числовое поле)

Страница объявления

  • Есть возможность просмотра объявления
  • В редактировании объявления есть возможность:
    • Менять картинку
    • Менять название
    • Менять цену
    • Менять описание

Дополнительно

  • Есть возможность удалить объявление
  • Объявление так же удалится из связанных заказов

Страница заказов

  • Отображается список заказов с сортировкой по статусу
  • Возможно сделать сортировку по сумме заказа
  • На карточке заказа изображена следующая информация:
    • Количество товаров
    • Возможность завершения заказа
    • Стоимость заказа
    • Дата создания заказа
    • Статус (текстом)
    • Номер заказа
    • Кнопка “Показать все товары”, показывающая все товары в данном заказе (можно отображать их в этой же карточке или сделать модальное окно)
  • При клике на товар в заказе есть возможность перейти в объявление продавца по этому товару

Панель навигации

  • Вкладка “Объявления” - реализован переход на страницу объявлений
  • Вкладка “Заказы” - реализован переход на страницу заказов

Дополнительное задание

  • На странице всех объявлений реализована фильтрация выдачи по:
    • цене
    • просмотрам
    • лайкам
  • На странице объявлений при клике на кнопку “Заказы” на карточке товара происходит переход в раздел Заказы, где показаны заказы, которые содержат это объявление в товарах
  • На странице заказов реализована пагинация показа заказов

Нефункциональные требования

  • Стек технологий:
    • Frontend фреймворк: React, версия 18
    • Библиотека компонент: material UI
    • Сборщик: Vite
    • Node.js: 20
    • Пакетный менеджер: npm
    • Роутинг: React Router v6
    • TypeScript
    • Проверки кода с помощью ESLint
    • Docker-файл для запуска

PS

Архитектура: впервые пыталась использовать FSD (ошибка). Распределила файлы так, как поняла по статьям, но в итоге стало понятно то, что ничего непонятно)) Нужно было сначала на пет проекте потренироваться, так что буду закрывать пробел

Дизайн: в основном старалась придерживаться дизайна сайта авито, удаляла / добавляла объявление, чтобы посмотреть результат, скопировала небольшую часть цветовой палитры с девтулзов и использовала ее. В общем, старалась подмечать