1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/h0ss-ucloud-teach-monolithic

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 7.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 11.03.2025 03:56 287921e

UCloudTeach-Monolithic

Проектное описание

1) Описание проекта

Проект был выбран для участия в конкурсе "Huawei Cloud DevCloud Разработчик Конкурс - Хэнань", базовой потребностью которого является разработка приложения онлайн-образования. Основные требования к функциям back-end следуют ниже: <рисунок src="https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/150d8857e6f444999b420fd8b9ca0ad2~tplv-k3u1fbpfcp-watermark.image" alt="">

Финальное название проекта — "Платформа онлайн-обучения UCloudTeach". Этот репозиторий представляет собой версию монолитной архитектуры проекта, где основные функции уже реализованы. Он может использоваться для выпускных работ, демонстрационных примеров и т.д.

Преимуществом данной архитектуры является небольшая сложность её создания, недостатком — нечёткость границ сервисов и высокие затраты на обслуживание.

2) Фронтенд проекта

Комплексному проекту естественно необходим фронтенд для отображения данных. Фронтенд проекта разделён на две части: административную и студента:

① Административная часть создана с помощью Vue3 + Ant-Design-Vue, репозиторий находится здесь: UCloudTeach-Admin;

② Часть для студентов создана с помощью Vue3 + Vant3, репозиторий доступен здесь: UCloudTeach-Student.

3) Документация проекта

Документация API back-end была создана с помощью docway, подробнее можно узнать здесь: http://xiaoyaoji.cn/project/1sxS6c06Njl/1sxSAL1b4LI### Базовая архитектура <рисунок src="https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5c7d4eb4d9fd4ad0a791715b1d63e418~tplv-k3u1fbpfcp-watermark.image" alt="">

Технологические особенности проекта

1) Хранение и получение данных

① Для хранения данных используется MySQL, интегрирован MyBatis для выполнения операций чтения и записи данных, а также используются плагины генерации кода для создания классов моделей и мапперов;

② Интегрирован плагин PageHelper для пагинации запросов, что позволяет эффективно избежать полной загрузки данных через API и излишней нагрузки на базу данных;

③ Интегрирован Redis для кэширования данных, что повышает производительность чтения данных с большим количеством запросов и часто используемых данных, а также обеспечивает распределённую сессию;

④ Интегрирован Huawei Cloud OBS для хранения изображений и других файлов.

Замечание: В проекте Redis и MySQL требуют настройки вручную.

2) Обработка данных и сбор логов

① Используется алгоритм Snowflake для генерации уникальных последовательных ID в распределённой системе, что удобно для создания индексов в базе данных;

② Интегрирован FastJSON для сериализации и десериализации данных;

③ Интегрирован Validation для проверки данных на стороне сервера;

④ Интегрирован SLF4J для сбора логов, а также для присвоения каждому сообщению уникального номера, что помогает в обслуживании и диагностике ошибок.#### 3) Проверка прав доступа ① Используется легковесный открытый фреймворк Sa-Token для проверки прав доступа, что делает конфигурацию проще по сравнению с Shiro и Spring Security.② Информация о токене использует локальный 64-битный случайный строковый ключ;

③ Реализация распределенного хранения информации о токенах с использованием Redis;

④ Использование фреймворка для управления правами доступа ролей, проверка прав доступа для различных пользовательских интерфейсов;

⑤ Интеграция API отправки SMS для реализации функции отправки сообщений, интеграция услуги защиты от DDoS Tencent для валидации слайдинговых CAPTCHA на клиентской и серверной стороне [см. конфигурацию на официальном сайте];

4) Платежные функции

① Интеграция платежной системы Alipay Sandbox для покупки курсов, после того как пользователь отправляет запрос на покупку, он переходит на страницу платежа Alipay;

② Получение состояния платежа пользователя через асинхронное уведомление от Alipay на сервере, успешный платеж записывается в таблицу данных;

Примечание: см. конфигурацию окружения Alipay Sandbox

Использование проекта

  1. Клонировать этот проект: git clone https://gitee.com/h0ss/ucloud-teach-monolithic.git
  2. Установить зависимости mvn: mvn clean install
  3. Проверьте файл конфигурации, завершите настройку базы данных, Redis и других связанных данных
  4. Запустите основной класс: mvn spring-boot:run### Будущие планы проекта
  • 1. Переработка контроллеров и сервисов проекта, разделение модулей по бизнес-функциям или по ролям
  • 2. Дополнительное улучшение документации API проекта
  • 3. Создание полного руководства по разработке проекта

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/h0ss-ucloud-teach-monolithic.git
git@api.gitlife.ru:oschina-mirror/h0ss-ucloud-teach-monolithic.git
oschina-mirror
h0ss-ucloud-teach-monolithic
h0ss-ucloud-teach-monolithic
master