Фронтенд-часть платформы управления проектами для студентов вузов и школьников.
Веб-приложение для создания, управления и модерации проектов в учебных заведениях. Платформа позволяет:
- Студентам/школьникам: создавать и управлять проектами, приглашать участников
- Модераторам: одобрять/отклонять проекты
- Администраторам: управлять проектами и пользователями
Фильтрация происходит автоматически в зависимости от роли пользователя:
- Студент вуза видит только проекты вуза
- Школьник видит только проекты школы
- Администратор/сотрудник вуза видит все проекты
- ✅ Регистрация и авторизация с выбором типа (студент/школьник)
- ✅ Создание проектов с описанием и ссылками
- ✅ Управление участниками через приглашения
- ✅ История изменений проектов
- ✅ Модерация проектов (для администраторов)
- ✅ Профиль пользователя и редактирование данных
- ✅ Фильтрация проектов по типу учебного заведения
- Vue 3 — UI фреймворк
- TypeScript — типизированный JavaScript
- Vite — сборщик проекта
- Pinia — управление состоянием
- Vue Router — маршрутизация
- Axios — HTTP клиент
- Vuetify 3 — компоненты материального дизайна
src/
├── pages/ # Страницы приложения
├── components/ # Переиспользуемые компоненты
├── ui/ # UI-компоненты
├── services/ # API сервисы
├── stores/ # Pinia stores (состояние)
├── router/ # Vue Router конфигурация
├── plugins/ # Плагины (Vuetify)
├── assets/ # Статические файлы (CSS, шрифты, иконки)
└── main.ts # Точка входа
# Установка зависимостей
npm install
# Запуск dev сервера
npm run dev
# Сборка для продакшена
npm run build
# Локальный preview после сборки
npm run previewПодробнее: SETUP.md
- Services — слой API, взаимодействие с бэкендом
- Stores — Pinia хранилище, глобальное состояние
- Components — переиспользуемые UI компоненты
- Pages — полностраничные компоненты (роуты)
Подробнее: ARCHITECTURE.md
- SETUP.md — установка и конфигурация
- ARCHITECTURE.md — архитектура приложения
- COMPONENTS.md — описание компонентов
- SERVICES.md — API сервисы
- STORES.md — Pinia stores
- CONTRIBUTING.md — гайд для разработчиков
Приложение взаимодействует с бэкенд-сервером:
- Base URL:
http://localhost:3000(локально) илиhttps://pd-projects-backend-production.up.railway.app(продакшен) - Порт: 3000 (dev), настраивается через
VITE_API_BASE_URLв.env
Основные эндпоинты:
POST /auth/login— входPOST /auth/registration— регистрацияGET /projects— список проектовPOST /projects— создание проектаGET /users/profile— профиль пользователя
Подробнее: SERVICES.md
Приложение использует JWT токены, передаваемые в заголовке Authorization: Bearer <token>.
Токен сохраняется в localStorage и автоматически добавляется ко всем запросам через axios-интерцептор.
- STUDENT — студент (роль по умолчанию при регистрации)
- ADMIN — администратор платформы
- UNIVERSITY_STAFF — сотрудник вуза (модератор)
- Установи Node.js >= 18
- Клонируй оба репозитория (фронт и бэк)
- Запусти бэкенд:
npm run start:devв папкеpd-projects-backend - Запусти фронт:
npm run devв папкеpd-projects-front - Открой http://localhost:5173
В DevTools (F12) → Console видны логи приложения с префиксом [StoreName]:
[ProjectsStore]— логи загрузки проектов[AuthStore]— логи авторизации
После npm run seed на бэкенде:
- Email:
student@example.com, Пароль:password123(студент) - Email:
staff@example.com, Пароль:password123(сотрудник вуза) - Email:
admin@example.com, Пароль:password123(администратор)
MIT
См. CONTRIBUTING.md