From 35bb8e011dac24e7a5d3942d12333caec3988415 Mon Sep 17 00:00:00 2001 From: esoe Date: Wed, 14 Feb 2024 23:11:50 +0300 Subject: [PATCH] =?UTF-8?q?=D1=82=D0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 24 ++++++++++++- doc/image/structure.jpg | Bin 0 -> 58188 bytes doc/puml/structure.puml | 43 ++++++++++++++++++++++ out/doc/puml/structure.png | Bin 0 -> 32054 bytes src/main/webapp/content/md/README.md | 52 +++++++++++++++++++++++++++ src/main/webapp/index.html | 9 ++++- target/home.war | Bin 821807 -> 823278 bytes target/home/content/md/README.md | 52 +++++++++++++++++++++++++++ target/home/index.html | 9 ++++- 9 files changed, 186 insertions(+), 3 deletions(-) create mode 100644 doc/image/structure.jpg create mode 100644 doc/puml/structure.puml create mode 100644 out/doc/puml/structure.png create mode 100644 src/main/webapp/content/md/README.md create mode 100644 target/home/content/md/README.md diff --git a/README.md b/README.md index 55ad5e8..0b3003e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,25 @@ # home +molokoin.ru : home page -molokoin.ru : home page \ No newline at end of file +# Техническое задание +## 1. Основные сведения +__molokoin.ru__ - домашний проект + + +## 2. Задачи сайта +__Тип проекта:__ некомерческий сайт + +__Цели/Задачи:__ +- домашний ресурс для систематизации и сохранения знаний (из области программирвоания и прочих интересных для меня направлений); +- пространство для организации среды разработки; +- пространство для размещения, тестирвоания и использования самописных приложений и сервисов + +## 3. Пользователи + + +## 4. Структура сайта +пока просто вставил первое попавшееся изображение структуры сайта. Свою делаю. +![alt](out\doc\puml\structure.png) + +## 5. Дополнительно +интерфейс должен быть минималистичным, простым. \ No newline at end of file diff --git a/doc/image/structure.jpg b/doc/image/structure.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8135cdf6865fb4a58d8070f27e8778b00369e876 GIT binary patch literal 58188 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 AQ~&?~ literal 0 HcmV?d00001 diff --git a/doc/puml/structure.puml b/doc/puml/structure.puml new file mode 100644 index 0000000..d9eb243 --- /dev/null +++ b/doc/puml/structure.puml @@ -0,0 +1,43 @@ +@startuml + +rectangle "molokoin.ru" as main #88d +rectangle "Окружение" #888 { + rectangle "git.molokoin.ru" as git + note right + gitea - платформа систеы контроля версий + end note + + rectangle "wildfly.molokoin.ru" as wildfly + note right + wildfly - сервер java-приложений + end note + + rectangle "cloud.molokoin.ru" as cloud + note right + nextcloud - платформа файлообменника + end note + + rectangle "moodle.molokoin.ru" as moodle + rectangle "molokoin.ru:777" as route + + ' Разщмещение блоков вертикально + git --> wildfly + wildfly --> cloud + cloud --> moodle + moodle --> route +} + +rectangle "storage.molokoin.ru" as storage #888 { + rectangle "storage.molokoin.ru/api" +} +note right + api для работы с файлообменником +end note + +rectangle "notes.molokoin.ru" as notes + +main --> "Окружение" +main --> storage +main --> notes + +@enduml \ No newline at end of file diff --git a/out/doc/puml/structure.png b/out/doc/puml/structure.png new file mode 100644 index 0000000000000000000000000000000000000000..11b73adac4fc9c57a07112ce661ca43c8d258c8c GIT binary patch literal 32054 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

G$=eMbFQd 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 XieyJkV?E99BmX?9qM?jeGWYvGstdYL literal 0 HcmV?d00001 diff --git a/src/main/webapp/content/md/README.md b/src/main/webapp/content/md/README.md new file mode 100644 index 0000000..19a2a1d --- /dev/null +++ b/src/main/webapp/content/md/README.md @@ -0,0 +1,52 @@ +# Основные задачи +- Файлообменник +- Заметки +- Судостроение + +## Файлообменник +### Общие требования +для доступа к размещенным ресурсам должен ограничиваться доступ +файлы размещаются на сервере в папке /share +файлы могут добавляться на сервер только из приложения (добавленные нарпямую файлы должны отдельно администрироваться, для создания записей в базе данных контента) +сведения о файлах, правах пользователей на эти файлы хранятся в postgres +файлы могут размещаться по различным каталогам + +### Возможности пользователя: + +__Каталоги:__ +- создание каталогов +- удаление каталогов +- просмотр содержимого каталогов +- редактирование названий каталогов +- комментирование каталогов +- скачивание архива каталога +- загрузка каталога со всем содержимым с компьютера пользователя на сервер + +__Файлы:__ +- загрузка файлов на сервер +- создание файлов +- удаление файлов +- перемещение файлов между каталогами +- редактирование наименований файлов +- просмотр содержимого файлов (байткод) +- просмотр файлов (*. md, *.pdf, *.images, *.video, *.office) +- комментирование файлов +- редактирование текстовых файлов +- скачивание файлов + +### Особенности реализации + + +## Заметки +### Общие требования +- Обеспечивать возможность навигации по файлам на сервере, +- создавать файлы на сервере, +- загружать файлы на сервер, +- удалять файлы с сервера, +- обеспечивать возможность просмотра текстовых файлов, +- обеспечивать возможность редактирования текстовых файлов, +- сохранять изменения и обновлять содержимое страницы + +файлы (в основном *.md) на сервере + +Судя по составу основных задачь решаемых приложением "Заметки", начинать разработку нужно с файлообменника. diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html index 8268624..fbf2167 100644 --- a/src/main/webapp/index.html +++ b/src/main/webapp/index.html @@ -7,6 +7,13 @@ home + + + + + + +

@@ -30,7 +37,7 @@
-

some info

+
diff --git a/target/home.war b/target/home.war index f14817fbcb898efa96c63b332b9d8f655947352c..ec4a51ce7a58604ccefc7866e5a1da2f0c4197b5 100644 GIT binary patch delta 3006 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 diff --git a/target/home/content/md/README.md b/target/home/content/md/README.md new file mode 100644 index 0000000..19a2a1d --- /dev/null +++ b/target/home/content/md/README.md @@ -0,0 +1,52 @@ +# Основные задачи +- Файлообменник +- Заметки +- Судостроение + +## Файлообменник +### Общие требования +для доступа к размещенным ресурсам должен ограничиваться доступ +файлы размещаются на сервере в папке /share +файлы могут добавляться на сервер только из приложения (добавленные нарпямую файлы должны отдельно администрироваться, для создания записей в базе данных контента) +сведения о файлах, правах пользователей на эти файлы хранятся в postgres +файлы могут размещаться по различным каталогам + +### Возможности пользователя: + +__Каталоги:__ +- создание каталогов +- удаление каталогов +- просмотр содержимого каталогов +- редактирование названий каталогов +- комментирование каталогов +- скачивание архива каталога +- загрузка каталога со всем содержимым с компьютера пользователя на сервер + +__Файлы:__ +- загрузка файлов на сервер +- создание файлов +- удаление файлов +- перемещение файлов между каталогами +- редактирование наименований файлов +- просмотр содержимого файлов (байткод) +- просмотр файлов (*. md, *.pdf, *.images, *.video, *.office) +- комментирование файлов +- редактирование текстовых файлов +- скачивание файлов + +### Особенности реализации + + +## Заметки +### Общие требования +- Обеспечивать возможность навигации по файлам на сервере, +- создавать файлы на сервере, +- загружать файлы на сервер, +- удалять файлы с сервера, +- обеспечивать возможность просмотра текстовых файлов, +- обеспечивать возможность редактирования текстовых файлов, +- сохранять изменения и обновлять содержимое страницы + +файлы (в основном *.md) на сервере + +Судя по составу основных задачь решаемых приложением "Заметки", начинать разработку нужно с файлообменника. diff --git a/target/home/index.html b/target/home/index.html index 8268624..fbf2167 100644 --- a/target/home/index.html +++ b/target/home/index.html @@ -7,6 +7,13 @@ home + + + + + + +
@@ -30,7 +37,7 @@
-

some info

+