Учебный фронтенд-проект, выполненный в рамках курса «Фронтенд-разработчик» от Яндекс Практикума.
Smart Table — это интерактивное веб-приложение для работы с табличными данными о продажах. Проект решает типичную задачу административных интерфейсов: удобную навигацию и обработку больших объемов данных без использования UI-фреймворков (на чистом JavaScript).
Приложение отображает информацию о дате операции, покупателе, продавце и сумме заказа. Пользователь может находить записи, фильтровать таблицу по продавцам, сортировать колонки и управлять пагинацией. Все изменения параметров приводят к формированию динамического API-запроса и перерисовке таблицы без перезагрузки страницы.
- Разработка модульного веб-приложения на нативном JavaScript (ES Modules) без фреймворков.
- Реализация динамического взаимодействия с внешним API с передачей query-параметров.
- Построение масштабируемой системы поиска, фильтрации, сортировки и пагинации.
- Использование HTML-шаблонов (
<template>) и DOM API для эффективной перерисовки табличных данных. - Настройка сборки проекта с помощью Vite.
- JavaScript (ES Modules / ES6+) — модульная архитектура логики
- Vite — бандлер, dev-сервер и production-сборка
- HTML5 & CSS3 — структура, шаблоны
<template>и стилизация элементов - Fetch API & URLSearchParams — получение данных и формирование динамических query-запросов
- DOM API — работы с деревом элементов и событиями формы
- GitHub Actions & Vercel — автоматическая проверка кода и деплой приложения
src/
├── assets/ # Статические ресурсы
├── components/ # Модули интерфейса
│ ├── filtering.js # Фильтрация данных
│ ├── pagination.js # Пагинация таблицы
│ ├── searching.js # Поиск по данным
│ ├── sorting.js # Сортировка таблицы
│ └── table.js # Рендеринг таблицы
├── data/ # Данные и вспомогательные файлы
├── fonts/ # Шрифты проекта
├── lib/ # Утилиты и общая логика
│ ├── sort.js # Компараторы и карта сортировки
│ └── utils.js # Вспомогательные функции (DOM, шаблоны)
├── data.js # Работа с API и подготовка данных
├── main.js # Точка входа приложения
└── style.css # Основные стили
- Модульная архитектура: Научилась проектировать сложные интерфейсы на чистом JavaScript без UI-фреймворков, разделяя логику на независимые и переиспользуемые модули.
- Сетевые запросы и API: Освоила работу с Fetch API, кеширование ответов для оптимизации сетевого трафика и динамическое формирование параметров запроса с помощью URLSearchParams.
- Динамический DOM: Отработала клонирование HTML-шаблонов (), точечные манипуляции с DOM API и работу с объектами FormData.
- Сортировка и пагинация: Реализовала алгоритмы переключения направлений сортировки с автоматическим сбросом сторонних колонок, а также кастомную пагинацию с расчетом диапазонов.
- Инструменты разработки: Получила практический опыт работы с бандлером Vite, автоматическим деплоем на Vercel.
- Установленный
Node.js(версии 18.x или выше) - Менеджер пакетов
npm - Клонируйте репозиторий на свой ПК:
- Перейдите в директорию проекта:
- Установите зависимости:
- Запустите проект в режиме разработки:
git clone git@github.com:afanassk/smart-table.gitcd smart-tablenpm installnpm run dev| Команда | Назначение |
|---|---|
npm run dev |
Запускает локальный сервер разработки (Vite) |
npm run build |
Собирает оптимизированную production-версию проекта в папку dist |
npm run preview |
Запускает локальный предпросмотр готовой production-сборки |