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

OSCHINA-MIRROR/greenlaw110-simple-bbs

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Простая BBS

Живой демо-сайт

http://simple-bbs.actframework.org

Предыстория

Проект создан для завершения задачи по кодированию, которую я поставил перед @AutoPlus.

Я также использую этот проект, чтобы продемонстрировать следующие функции ActFramework:

  1. Вход/регистрация пользователя с социальной связью, в частности, через GitHub в этом проекте. Однако это вопрос конфигурации, чтобы проект работал на других социальных каналах, включая LinkedIn и Facebook.
  2. Аутентификация/авторизация/аудит с помощью Act-AAA.
  3. Форма CRUD с операциями создания, обновления и удаления и проверкой данных.
  4. Выразительность ActFramework. Для реализации этого проекта требуется всего 281 строка кода на Java.

Известные проблемы

См. https://git.oschina.net/greenlaw110/simple-bbs/issues.

Требования

  1. Система должна позволять пользователям регистрироваться/входить в систему через службу OAuth GitHub.
  2. Она должна отображать профиль пользователя на GitHub.
  3. Пользователи должны иметь возможность публиковать сообщения.
  4. Сообщение должно содержать следующие поля:
  • заголовок;
  • тело;
  • автор;
  • дата и время.
  1. Должна быть возможность отобразить детали сообщения, включая заголовок, тело, автора и время.
  2. Должен отображаться список сообщений.
  3. Автор должен иметь возможность редактировать сообщение, включая заголовок и тело.
  4. Автор должен иметь возможность удалить опубликованное им сообщение.

Нефункциональные требования

  • Нет требований к стилю. Просто сделайте его простым.
  • Время истечения сеанса составляет 60 секунд. Каждый запрос должен обновлять время истечения.
  • Нет требований к базе данных. Выбирайте всё, что хотите. Но данные должны быть постоянными.
  • Не нужно CSS, достаточно использовать стандартные элементы HTML. Список должен использовать элемент <li>, а тело — элемент <textarea>.
  • Домашняя страница должна быть списком сообщений. Используйте AJAX для реализации разбивки на страницы. На каждой странице должно отображаться 20 сообщений.
  • Проект должен предоставлять скрипт сборки, скрипт развёртывания и файл README.

Платформа и база данных

Для работы с этим проектом у вас должны быть установлены MongoDB, JDK7+ и соответствующий JCE. Вам необходимо установить Maven для сборки приложения.

Сборка/Запуск/Развёртывание

Чтобы собрать и запустить приложение локально:

mvn clean compile exec:exec

Это запустит приложение на порту по умолчанию для actframework: 5460.

Чтобы создать пакет для развёртывания:

mvn clean package

Будет создан пакет дистрибутива в каталоге target/dist. Вы можете отправить файл на свой облачный сервер.

Чтобы запустить пакет дистрибутива, распакуйте его и введите команду ./run.

Примечание о приложении GitHub

Этому приложению требуется, чтобы пользователь прошёл аутентификацию через службу GitHub OAuth. Поэтому вам необходимо зарегистрировать своё приложение GitHub.

URL обратного вызова

Любое приложение OAuth требует от владельца приложения предоставить URL обратного вызова. Убедитесь, что ваш URL обратного вызова выглядит следующим образом:

http://<my-domain>/~/social/callback?provider=github

После регистрации приложения GitHub вам необходимо открыть файл /src/main/resources/app.properties и ввести идентификатор и секрет вашего приложения.

Подробнее о запуске локально

Поскольку GitHub разрешает только один URL обратного вызова, если вы зарегистрировали URL обратного вызова для живого демо-сайта (как я), то необходимо выполнить некоторые действия, чтобы приложение работало на локальном компьютере:

  1. Локальное приложение запускается на порту 5460, поэтому вам необходимо установить внешний HTTP-сервер (например, nginx), чтобы перенаправлять трафик с порта 80 на 5460. Или вы можете изменить конфигурацию приложения и добавить http.port=80, чтобы оно запускалось на порту 80.
  2. Возможно, вам потребуется взломать файл /etc/hosts (C:\Windows\System32\drivers\etc\hosts в Windows), добавив сопоставление домена в URL обратного вызова, который вы зарегистрировали на GitHub, с вашим локальным IP-адресом. Вот мой файл hosts:
127.0.0.1   localhost simple-bbs.actframework.org

Дополнительно

Этот проект предоставляет некоторые дополнительные функции в дополнение к требованиям, указанным выше. Использование act-aaa для реализации аутентификации, авторизации и аудита

act-aaa (https://github.com/actframework/act-aaa-plugin) используется для реализации аутентификации, авторизации и аудита в системе. Когда пользователь публикует новое сообщение или обновляет существующее, приложение выполняет аудит действия в коллекции audit в MongoDB. В результате вы сможете найти что-то вроде следующего:

> use bbs
switched to db bbs
> db.audit.find().pretty()
{
    "_id" : ObjectId("58c4b2daaa5dcb61026fe597"),
    "className" : "simple_bbs.model.Audit",
    "target" : "simple_bbs.model.Message[]",
    "principal" : "greenlaw110@gmail.com",
    "success" : true,
    "permission" : "update",
    "_created" : NumberLong("1489285850015"),
    "_modified" : NumberLong("1489285850015"),
    "v" : NumberLong(1)
}
{
    "_id" : ObjectId("58c4b2deaa5dcb61026fe598"),
    "className" : "simple_bbs.model.Audit",
    "target" : "simple_bbs.model.Message[]",
    "principal" : "greenlaw110@gmail.com",
    "success" : true,
    "permission" : "update",
    "_created" : NumberLong("1489285854817"),
    "_modified" : NumberLong("1489285854817"),
    "v" : NumberLong(1)
}
{
    "_id" : ObjectId("58c4b2e7aa5dcb61026fe599"),
    "className" : "simple_bbs.model.Audit",

Добавление тестовых данных

Приложение предоставляет консольную команду, позволяющую добавлять тестовые данные. Прежде чем начать генерировать тестовые данные, убедитесь, что в системе есть хотя бы один пользователь, открыв браузер и перейдя в приложение, а затем нажав «Войти через Github».

Запустите nc localhost 5461 (вы можете заменить nc на что угодно, например, telnet или putty в Windows), когда приложение будет запущено. Вы должны увидеть что-то вроде:

  __  ___         _        _     _    _    __ 
 (_    |   |\/|  |_)  |   |_    |_)  |_)  (_  
 __)  _|_  |  |  |    |_  |_    |_)  |_)  __) 
                                              
           powered by ActFramework v1.1.0-f544

 version: ${project.version}
scan pkg: simple_bbs
base dir: /home/luog/p/greenlaw110/simple-bbs
     pid: 29282
 profile: dev
    mode: DEV

     zen: If the implementation is hard to explain, it's a bad idea.
Simple BBS[2k9b0dZP]>

Введите help -a, чтобы запросить команду приложения:

Simple BBS[2k9b0dZP]>help -a
help -a
APPLICATION COMMANDS

data.gen     - Generate test data

Введите data.gen -h, чтобы узнать, как использовать команду:

Simple BBS[2k9b0dZP]>data.gen -h
data.gen -h
Usage: data.gen
Generate test data

Options:
  -n,--n     Number of record to be generated

Shortcuts: .dg, d.g, d.gen, data.g, da.ge

Теперь предположим, что вы хотите сгенерировать 30 сообщений, введите:

Simple BBS[2k9b0dZP]>data.gen -n 30
data.gen -n 30
Test data generated
Simple BBS[2k9b0dZP]>

Вы получите сгенерированные данные.

Статистика LOC

luog@luog-Satellite-P50-A:~/p/greenlaw110/simple-bbs$ loc src
--------------------------------------------------------------------------------
 Language             Files        Lines        Blank      Comment         Code
--------------------------------------------------------------------------------
 Java                     9          395           71           43          281
 HTML                     5          269           24            0          245
 XML                      2          133           21           20           92
 JavaScript               3           85            7            2           76
 Batch                    2           14            0            0           14
 YAML                     1           15            3            0           12
 CSS                      1            3            0            0            3
--------------------------------------------------------------------------------
 Total                   23          914          126           65          723
--------------------------------------------------------------------------------```

Комментарии ( 0 )

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

Введение

Проект по кодированию — вызов. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/greenlaw110-simple-bbs.git
git@gitlife.ru:oschina-mirror/greenlaw110-simple-bbs.git
oschina-mirror
greenlaw110-simple-bbs
greenlaw110-simple-bbs
master