Dimensional Impression, форум по анимационному общению, созданный SpringCloud.
Предисловие
Говорят, что половина китайских программистов на Github двумерны, поэтому Чтобы привлечь больше звезд Я разработал этот форум по обмену анимацией, изучая технологию SpringCloud.
Введение в проект
Acimage — это форум по обмену анимацией, построенный на Spring Cloud, которыйразделяетпереднюю и внутреннюю части . Бэкенд использует SpringCloud + Mybatis-Plus + Reids + Rabbitmq + Elasticsearch . Фронтенд использует Vue + ElementUi + Vite . Проект запущен. Дорогие 2D-пользователи Github, почему бы не поставить мне звездочку (๑•̀ㅂ•́)و✧.
URL-адрес
* Dimensional Impressiono( ≧▽≦)ツ~Форум обмена анимацией www.acimage.top (Применимо только к веб-странице. Если экран слишком мал, вы можете соответствующим образом увеличить браузер для улучшения визуальных эффектов).
первая страница
Страница форума
Архитектура системы
Функция проекта
Стойка регистрации пользователей
Используйте картинки для идентификации картинок , то есть загружайте картинки для определения похожих картинок на форуме и тем, к которым они относятся.
Диверсифицированный поиск : вы можете одновременно выполнять поиск по ключевым словам, категориям, тегам и полям сортировки, а также выделять соответствующий текст на основе ключевых слов.
Рекомендации по теме , случайные рекомендации .
Рейтинг тем (ранжирование по звездам, количеству просмотров, количеству комментариев и т. д., активному времени).
Рейтинги пользователей (ранжируются по количеству тем, звезд и т. д.).
Категории, теги и нажмите, чтобы отфильтровать темы, соответствующие соответствующим категориям или тегам.
Отображение последних активных тем в режиме реального времени .
Чувствительная фильтрация слов , сжатие изображений .
Уведомление о сообщении
Просматривайте личные обновления и изменяйте личную информацию.
Войдите в систему, зарегистрируйтесь, выйдите из системы, код подтверждения для предотвращения считывания и проверку электронной почты .
Публикуйте темы, комментарии, звезды и т. д.
Серверное управление
Относительно полный контроль разрешений RBAC позволяет динамически настраивать роли пользователей, разрешения ролей, разрешения интерфейса и т. д.
Отображение основных данных сайта, количества посетителей, количества обращений к интерфейсу и т. д.
Управление изображениями карусели на главной странице.
Темы, комментарии, управление пользователями.
Особенности проекта
JWT реализует единый вход, унифицированную идентификацию личности и аутентификацию на шлюзе, а также полный контроль разрешений RBAC .
Используйте скрипты Redis+Lua+запланированные задачи , чтобы регулярно сохранять часто меняющиеся данные (представления и т. д.).
Используя Redis + сценарий Lua + пользовательские аннотации , можно использовать только одну аннотацию для ограничения потока IP, пользователей и общего объема запросов.
Алгоритм Dhash используется для реализации функции распознавания изображений по картинкам, и эффект неплох.
Все загружаемые изображения сжимаются с помощью WebP, что значительно снижает нагрузку на полосу пропускания.
Каталог проекта
Серверные службы
acimage_gateway : шлюз, унифицированная аутентификация личности, аутентификация, ограничение тока для пользователей и общий объем запросов соответственно.
acimage_user : Центр пользователя, регистрация пользователя, вход в систему, служба электронной почты и т. д.
acimage_community : общественная служба, отвечающая за основные функции, связанные с темами форума.
acimage_image : сервис изображений, отвечающий за загрузку тематических изображений, загрузку аватаров, идентификацию изображений с изображениями и т. д.
acimage_admin : служба управления
серверный модуль
acimage_common : общедоступный модуль, в котором хранятся классы сущностей, общедоступные перехватчики, общедоступные конфигурации, общедоступные классы инструментов и т. д.
acimage_feign : поместите ложный клиент каждого модуля.
внешний интерфейс
vue_manage_system : страница фонового управления
vue_acimage_web : страница портала
другой
doc : некоторые документы, изображения и файлы базы данных.
Запуск и развертывание
Проект все еще совершенствуется, а процесс эксплуатации и развертывания будет обновлен позже .
Импортируйте три базы данных из каталога doc/sql в mysql соответственно. Эти четыре базы данных соответствуют четырем внешним службам.
Настройте соответствующий адрес или пароль учетной записи mysql, redis, Rabbitmq и nacos в файле application-dev.yml каждой службы.
Заполните информацию об учетной записи Qiniu Cloud в application-qiniu-template.yml в acimage_common , включая access-key , secret-key , domian , Bucket , или присвойте любое значение этим четырем атрибутам (не может быть пустым, иначе NPE ), но вы не могу загружать изображения таким способом. И переименуйте application-qiniu-template.yml в application-qiniu.yml.
Настройте адрес nacos и адрес дозорного в application.yml в модуле acimage_common (если дозорный не настроен, это не повлияет на работу)
Запустите nacos, redis, RabbitMQ, MySQL.
Запустите acimage_user , acimage_community , acimage_image , acimage_gateway последовательно. В противном случае может быть сообщено об ошибке из-за проблем создания очереди RabbitMQ и проблем с последовательностью привязки. Если они возникнут, все службы будут перезапущены снова.
После запуска внешнего интерфейса (подробности см. в READMEvue_acimage_web ) щелкните всплывающую ссылку по умолчанию, чтобы перейти на домашнюю страницу.
Вход на стойку регистрации**: пользователь: wk, пароль: wk123456 (есть несколько других пользователей, которых можно увидеть из файла sql базы данных, и все пароли — имя пользователя 123456)
Vue2 , Vue Router (маршрутизация), ElementUi (библиотека базовых компонентов Vue), axios (http-клиент), jsencrypt (библиотека js, основанная на шифровании и дешифровании RSA), vue-dompurify-html (анти-XSS-атака), tinymce-vue ( редактор расширенного текста)
Внешний интерфейс управления серверной частью
Вите , TypeSript
Тодо
Категории, теги
Темы, рейтинги пользователей
Случайная рекомендация
Рекомендуем похожие темы
Чувствительная фильтрация слов
Идемпотент интерфейса
Усовершенствованное ограничение тока
Улучшите контроль полномочий RABC, унифицированную аутентификацию личности и аутентификацию на шлюзе.
Добавьте службы электронной почты, проверку электронной почты, коды подтверждения и т. д.
Храните изображения в minio (первоначально они хранились в облаке Qiniu)
elasticsearch диверсифицированный поиск, подсветка ключевых слов
Добавить функцию уведомления о сообщениях пользователя
Используйте redis+lua для пакетного извлечения тем и просмотров страниц из кеша, чтобы уменьшить количество сообщений и отображать данные в реальном времени.
Добавить смайлик для комментариев
Добавить функцию подписки
Улучшите настройку и использование Sentinel и Nacos.
Изначально проект создавался для изучения технологий. Из-за ограниченных возможностей все еще есть много неточностей. Пожалуйста, поправьте меня. Если кому-то интересно (я очень надеюсь, что кому-то интересно) или если у вас возникнут какие-либо проблемы с проектом или у вас есть какие-либо предложения по поднятию проблемы, вы можете связаться с адресом электронной почты [email protected] или присоединиться к группе 692992463 для общения. Если вам это нравится, не забудьте поставить ему звезду.
Скриншот сайта
Веб-сторона
Административный терминал <br> Не стесняйтесь опубликовать несколько фотографий системы управления. В любом случае, все системы управления выглядят одинаково.