new file: main_dc/yalarba/serv_spa/spa/vue/documentation/docs.md renamed: main_dc/yalarba/serv_spa/spa/vue/advices.txt -> main_dc/yalarba/serv_spa/spa/vue/src/assets/advices.txt add documentation for yalarba.ru
11 KiB
Документация проекта YalArba
Версия документации: 1.0 (Первичная)
Дата составления: 03 декабря 2025 года
Актуальный статус проекта: Разработка в процессе (базовый функционал)
1. Общая информация
1.1. Назначение проекта
YalArba — это веб-приложение, созданное на Vue 3 с использованием современных инструментов разработки. На текущем этапе реализована базовая структура SPA (Single Page Application) с системой авторизации и основными страницами-заглушками для будущего функционала.
1.2. Технологический стек
- Фреймворк: Vue 3 (Composition API,
<script setup>) - Маршрутизация: Vue Router 4
- Состояние приложения: Pinia (стейт-менеджмент)
- Интернационализация: Vue I18n
- Сборка: Vite (предположительно)
- Стилизация: CSS (с использованием модульных компонентов)
1.3. Текущий статус функционала
✅ Реализовано:
- Базовая структура SPA с маршрутизацией
- Система авторизации (логин, регистрация, защищенные маршруты)
- Главная страница с поисковой строкой
- Страницы профиля, настроек, поддержки, обратной связи
- Страница "О нас" с разделами о разработчиках
🔄 В разработке:
- Функционал поиска и отображения результатов
- Детальные страницы объектов (restObject)
- Основная бизнес-логика приложения
2. Архитектура проекта
2.1. Структура каталогов
src/
├── assets/ # Глобальные стили, шрифты, изображения
├── auth/ # Логика авторизации (store)
├── components/ # Vue-компоненты (сгруппированы по функциям)
├── locales/ # Файлы интернационализации (i18n)
├── router/ # Конфигурация маршрутизации
├── views/ # Страницы приложения (роуты)
├── App.vue # Корневой компонент
└── main.js # Точка входа приложения
2.2. Маршрутизация (router/index.js)
Приложение использует Vue Router с защитой маршрутов через мета-поле requiresAuth.
2.2.1. Публичные маршруты (доступны без авторизации):
/- Главная страница (HomeView)/about- О проекте/support- Поддержка/feetback- Обратная связь/results- Результаты поиска/registration- Регистрация/login- Вход в систему
2.2.2. Защищенные маршруты (требуют авторизации):
/profile- Профиль пользователя/settings- Настройки/restObject- Детальная страница объекта
2.2.3. Механизм защиты маршрутов:
router.beforeEach(async (to, from, next) => {
const authStore = useAuthStore();
await authStore.checkAuth();
if (to.meta.requiresAuth && !authStore.isAuthenticated) {
next('/login'); // Перенаправление на страницу входа
} else {
next();
}
});
2.3. Компонентная структура
Каждая страница (view) состоит из:
- FHeader - Полный заголовок (шапка сайта)
- Основной компонент страницы (контент)
- FooterB - Нижний колонтитул
3. Страницы приложения
3.1. Главная страница (/)
Компоненты: FHeader + SearchLine + FooterB
Назначение: Отображает поисковую строку для будущего поискового функционала.
3.2. Страница авторизации (/login)
Компоненты: FHeader + LogIn + FooterB
Компонент: inout.vue (логика входа)
3.3. Страница регистрации (/registration)
Компоненты: FHeader + Registration + FooterB
Компонент: registration.vue
3.4. Профиль пользователя (/profile)
Статус: Требует авторизации
Компоненты: FHeader + Profile + FooterB
Компонент: profile.vue
3.5. Настройки (/settings)
Статус: Требует авторизации
Компоненты: FHeader + Settings + FooterB
Компонент: settings.vue
3.6. Объект (/restObject)
Статус: Требует авторизации, в разработке
Компоненты: FHeader + RestObject + FooterB
Особенность: Использует моковые данные (mockPlace)
3.7. Результаты поиска (/results)
Компоненты: FHeader + SearchLine + Results + FooterB
Компоненты: searchLine.vue, results.vue
3.8. О проекте (/about)
Компоненты: FHeader + About + Developers + Commits + FooterB
Разделы: Информация о проекте, разработчики, коммиты
3.9. Поддержка (/support)
Компоненты: FHeader + Support + FooterB
Компонент: support.vue
3.10. Обратная связь (/feetback)
Примечание: Возможна опечатка в названии (feedback → feetback)
Компоненты: FHeader + Feetback + FooterB
Компонент: feetback.vue
4. Система авторизации
4.1. Хранилище состояния (Pinia Store)
Расположение: /src/auth/stores/auth.store.js (предположительно)
Основные функции:
checkAuth()- проверка статуса авторизацииisAuthenticated- реактивное состояние авторизации
4.2. Процесс авторизации
- Пользователь переходит на защищенный маршрут
router.beforeEachвызываетauthStore.checkAuth()- Если пользователь не авторизован → перенаправление на
/login - После успешной авторизации доступ к защищенным маршрутам разрешен
5. Конфигурация приложения
5.1. Точка входа (main.js)
import { createApp } from 'vue';
import SPA_VUE_App from './App.vue';
import appRouter from './router/index.js';
import i18n from './locales/i18n.js';
import { createPinia } from 'pinia';
const spaAppVue3 = createApp(SPA_VUE_App);
const pinia = createPinia();
spaAppVue3.use(pinia);
spaAppVue3.use(appRouter);
spaAppVue3.use(i18n);
spaAppVue3.mount('#app');
5.2. Глобальные стили и шрифты
/src/assets/main.css- основные стили/src/assets/fonts.css- подключение шрифтов
5.3. Интернационализация (i18n)
Конфигурация находится в /src/locales/i18n.js
(контент файла не предоставлен)
6. Текущие задачи и TODO
6.1. Необходимо исправить:
- Опечатка в маршруте:
feetback→feedback - Импорты в ResultsView.vue:
// Избыточный импорт (дважды) import searchLine from '@/components/searchLine/searchLine.vue'; import SearchLine from '@/components/searchLine/searchLine.vue';
6.2. Планируемый функционал:
- Реализация поиска (компоненты
SearchLine,Results) - Работа с API для получения реальных данных
- Детальная страница объекта (заполнение
RestObject) - Интеграция бэкенда для авторизации
- Заполнение страниц контентом (About, Support, Settings)
6.3. Архитектурные улучшения:
- Добавить Error Boundary для обработки ошибок
- Реализовать ленивую загрузку компонентов для всех маршрутов
- Добавить мета-теги для SEO
- Реализовать систему уведомлений
- Добавить валидацию форм
7. Рекомендации по разработке
7.1. Соглашения по именованию:
- Компоненты: PascalCase (
RestObjectView.vue) - Файлы маршрутов: Папка
views/+ суффиксView - Вложенные компоненты: Группировка по функциональности
7.2. Структура компонентов:
<template>
<!-- 1. Шапка -->
<!-- 2. Основной контент -->
<!-- 3. Подвал -->
</template>
<script setup>
// Импорты в порядке: header → основной компонент → footer
</script>
7.3. Работа с состоянием:
- Использовать Pinia stores для глобального состояния
- Локальное состояние хранить в компонентах через
ref(),reactive() - Авторизацию обрабатывать через
auth.store
8. Развертывание и сборка
8.1. Предполагаемая команда сборки:
npm run build # или yarn build
8.2. Структура сборки:
- Входная точка:
index.html - Основной скрипт:
main.js - Базовая настройка: Мета-теги, фавиконка, подключение стилей
9. Контакты и поддержка
Сайт проекта: yalarba.ru
Дата начала разработки: Не указана (актуально на 03.12.2025)
Статус: Активная разработка
Документация будет обновляться по мере добавления нового функционала. Все изменения в архитектуре и API должны отражаться в соответствующих разделах документации.