Веб-приложение для школьной газеты "Импульс", агрегирующее и публикующее новости из различных сообществ ВКонтакте, а также предоставляющее собственные материалы редакции. Проект реализован на стеке Vue 3 (Vite) для фронтенда и Node.js (Express) для бэкенда.
"Импульс" — это современная платформа для школьной газеты, которая позволяет ученикам, учителям и родителям быть в курсе последних новостей школы, олимпиад, мероприятий и других событий. Система автоматически собирает новости из выбранных сообществ ВКонтакте и предоставляет удобный интерфейс для чтения, фильтрации и управления новостями.
- Просмотр новостей из разных источников (сообществ ВКонтакте и редакции)
- Фильтрация и сортировка новостей по дате, популярности, источнику и тематике
- Авторизация пользователей (через токен)
- Адаптивный интерфейс для ПК и мобильных устройств
- Панель администратора для управления новостями (добавление, редактирование, удаление)
- Интеграция с ВКонтакте для автоматического импорта новостей
- Собственные материалы редакции
- Поиск по новостям
- Возможность комментирования (в планах)
- Раздел с олимпиадами (в планах)
ImpulsNewspaper/
├── site/ # Фронтенд (Vue 3 + Vite)
│ ├── src/
│ ├── public/
│ ├── package.json
│ └── ...
├── server/ # Бэкенд (Node.js + Express)
│ ├── src/
│ ├── package.json
│ └── ...
├── vk-scanner/ # Сервис для сбора новостей из ВК
│ ├── src/
│ └── ...
├── nginx/ # Конфигурация nginx
├── data/ # Данные PostgreSQL
├── ssl/ # SSL-сертификаты
├── docker-compose.yml # Docker Compose для запуска всех сервисов
├── README.md # Документация проекта
└── ...
git clone https://github.com/MaxMaximov123/ImpulsNewspaper.git
cd ImpulsNewspaperdocker-compose up --buildЭто поднимет все необходимые сервисы: фронтенд, бэкенд, базу данных, nginx.
cd site
npm install
npm run devcd server
npm install
npm startcd vk-scanner
npm install
npm startИспользуется PostgreSQL. Конфигурация находится в папке data/ и файле docker-compose.yml.
- Все переменные окружения для бэкенда и VK-сканера задаются через
.envфайлы или напрямую вdocker-compose.yml. - Для интеграции с ВКонтакте необходим сервисный токен VK API.
- Для работы авторизации требуется настроить cookie с токеном пользователя.
- Фронтенд: Vue 3, Vuetify, Vue Router, взаимодействие с API через axios.
- Бэкенд: Node.js, Express, взаимодействие с PostgreSQL через knex.
- VK-сканер: Сервис для сбора новостей из заданных сообществ ВКонтакте.
- Nginx: Для проксирования запросов и обслуживания статики.
- PostgreSQL: Хранение новостей, пользователей и другой информации.
- Добавьте сообщество ВКонтакте в конфиг VK-сканера.
- Пропишите соответствие в объекте
sourceKeysвserver/src/server.js. - Перезапустите VK-сканер и сервер.
- Авторизуйтесь как администратор.
- Перейдите в панель администратора.
- Используйте форму добавления новости.
- Все административные действия защищены авторизацией.
- Для пользователей используются токены и cookies.
- Добавление новых способов авторизации (например, через VK ID)
- Увеличение количества источников новостей
- Реализация раздела с олимпиадами и мероприятиями
- Возможность комментирования новостей
- Улучшение мобильной версии
- ВКонтакте проекта
- Разработчик: Смирнов Максим Сергеевич
Проект распространяется под MIT License.