1 Востаннє редагувалося plusxx (07.10.2023 13:28:07)

Тема: Cтворення ТЗ для платформи спілкування українських програмістів

Доброї пори доби дорогі друзі. Ми всі прийшли до думки що, чи на базі цього форуму, чи повністю з нуля треба запиляти хорошу платформу для спілкування українських програмістів, хакерів, аматорів та інших довкола айтішних груп. Я вважаю, що хоч дехто каже що треба зробити щоб були лише фахівці, нам треба дозволяти і навіть заманювати студентів бо хто інакше залишиться після нас. Також треба залучати АДЕКВАТНИХ аматорів котрі дійсно роблять якісь свої проекти, часто такі люди роблять досить чудові проекти інді ігри, палять моди до ігр чи створюють роботів на Raspberry Pi в гаражі тому вважаю що таким людям теж треба допомогти.Тут я зробив зародок тз. Пункти я вибрав з хотілок користувачів в темі Питання щодо майбутнього цього форуму та спільноти програмістів загало Винятком є два останні пункти, то мої хотілки. Прошу зв уважити, що черговість пунктів не є по пріоритету,
а лише по тому, в якій черзі я їх знаходив. Я розумію що  це не є повноцінним тз але від цього можна почати. Всі тези беруться в порівнянні від даного форума.

1) Блоги або статті.
    """
       Я особисто схиляюся в сторону саме структури блогів з можливістю підписки на конкретного автора, хоча можна робити й окремі статті.
    """
2) Система тегів.
    """
       Побудована в моделі бази даних скоріше всього на зв’язках типу Many-to-Many.
       Тому де таблиця з трідами була пов'язана з таблицею тегів. А таблиця тегів в свою чергу пов'язувалася як Many-to-one з таблицею розділів,
       тому що до одного розділу може бути прив'язано багато тегів.
       Працювати це може так: при реєстрації новому користувачеві даються до вибору цікаві йому теги зі списку.
       При створенні нових трідів користувач повинен мати змогу вибрати готові теги, а також додавання своїх,
       нових тегів, котрі на стороні сервера будуть додаватися до таблиці тегів. Розділи потрібні для структуризації даних на першій сторінці форуму.
    """
3) Типу шелл для програмування (я так розумію, емулятор терміналу в браузері).
    """
       Не вважаю цю задачу найбільш пріоритетною, але якщо є якесь притомне розв'язання, то хай би було.
    """
4)Темна тема форуму.
    """
        На початку можна додати лише темну, а потім допиляти ще кілька або кільканадцять.
    """
5)Всі основні функції повинні працювати без JS. Але JS версія теж необхідна.
    """
        Треба зробити так, щоб навіть з лінкса користувач міг притомно користуватись з ресурсу
        і одночасно додати всі можливі сучасні JS понти для користувачів, котрі не бояться JS.
        Ми повинні розуміти, що є люди, котрі нелюблять скриптів на стороні користувача,
        і часто їх параноя не безпідставна, і ми повинні їх поважати, але іншим потрібно дати
        повний можливий функціонал і швидкість, котре може дати JS.
    """
6)Адаптивна верстка сторінок.
    """
       Тут думаю, все ясно, єдине пропоную використати Bootstrap або щось подібне.
    """
7)Система карми.
    """
        Оцінювання є важливим стимулом. Лайки в соцмережах заставляють людей робити чудові речі.
        Тому нам потрібна система оцінювання користувачів. Ось мій варіант:
                            *Лайки і дизлайки нараховуються лише постам, тобто при видаленні теми або посту всі лайки зникають.
                            *Дизлайки потрібні, щоб показати шкідливі розв'язання.
                            *Карма висвітлюється як сума всіх лайків і дизлайків плюс додаткові бали, див. нижче.
                            *Система оцінювання по спеціалізаціям. Після реєстрації користувач немає спеціалізації.
                             Але коли користувач набере 100+ лаків, відповідаючи на питання з певним тегом, то цей тег стає його спеціалізацією.
                             Можна мати кілька спеціалізацій.
                             Всі лайки і дизлайки, котрі будуть відноситись до спеціалізації, будуть в карму додаватися(відніматися) подвійно.
                             Можна додавати додаткові пункти за різні штуки, наприклад:
                             за лінк на Github (+20 балів), за статтю, котра пройшла модерацію (+10 балів), за вказане місце роботи (+20 балів) і так далі.
                            *Висвітлення карми: Біля аватара висвітлюється загальна карма.
                             Під постом карма пов'язана з кожним тегом, котрий стосується даної теми.
                            *Таким чином можемо показати компетенцію даного користувача в конкретній питанні.
                            *Ввести систему ачівок.
8)Відповідь все погано однією кнопкою.
     """
        Можна зробити, але я пропоную не робити, а перейти до пункту 11.
     """
9)Посилання на конкретний пост.
10)Удосконалений механізм пошуку по сайту.
11)Розділ очікуючи на виправлення.
    """
       Якщо модератор бачить, що питання з формулюванням не правильно, він в один клік може кинути тему в розділ "очікує на виправлення",
       при чому в тему автоматично додасться славетний пост пана Коали "Все погано", котрий автоматично видаляється, коли користувач усе поправить і натисне відповідну кнопку.
       Тему в розділі "Очікує на виправлення" можуть бачити лише адміни, модератори і автор.
13)Удосконалений редактор постів.
    """
       Думаю, тут все зрозуміло. Треба лише вибрати найадекватніше рішення цього питання.
       Зробити тяжкою реєстрацію клонів. На початках ніяк. Забити на це і активніше модерувати.
       Однак якийсь механізм на майбутнє можна закласти, щоб активувати його пізніше.
    """
14)Емоджі.
    """
       Напевно питання з емоджі буде вирішуватись в самому кінці, але для мене ця ідея виглядає ок,
       якщо ми знайдемо, щоб хтось нам поробив спеціальні комп'ютерні емоджі.
   """
15)Додати закриті теми, котрі може створювати користувач і запрошувати в них лише тих користувачів, котріх він хоче.
   """
       Навіщо це? Їх можуть використовувати групи студентів, котрі працюють над одним пет проектом, чи якісь хактивісти чи інші подібні групи.
  """
16)Особисті повідомлення і повідомлення з закритих тем зберігаються в закодованому вигляді.

Виклав цей документ на гітхаб, щоб всі бажаючи могли закинути свої варіанти і ми зформували нормальний документ

2

Re: Cтворення ТЗ для платформи спілкування українських програмістів

+ до "7" відмова від світогляду що містить поняття карми

+ пункт "8" відсутній або ж у мене щось із зором (з телефону)

3

Re: Cтворення ТЗ для платформи спілкування українських програмістів

+ до "14" - просто обрати будь-який набір який викладено у безкоштовне використання, їх предостатньо; це вже коли їх буде комусь замало, тоді можна далі розширювати колекцію

4

Re: Cтворення ТЗ для платформи спілкування українських програмістів

frz написав:

+ до "7" відмова від світогляду що містить поняття карми

+ пункт "8" відсутній або ж у мене щось із зором (з телефону)

Я кілька раз редагував  і десь вісімку загубив.

5

Re: Cтворення ТЗ для платформи спілкування українських програмістів

+ до "16"

plusxx написав:

в закодованому вигляді

сподіваюся, всім зрозуміло, що це ок лише коли кожен учасник додав свій ключ PGP / etc , інакше адмін зі співучасниками читатиме все без проблем.

6

Re: Cтворення ТЗ для платформи спілкування українських програмістів

frz написав:

+ до "16"

plusxx написав:

в закодованому вигляді

сподіваюся, всім зрозуміло, що це ок лише коли кожен учасник додав свій ключ PGP / etc , інакше адмін зі співучасниками читатиме все без проблем.

Це булоб добре але невпевнений  що всі захочуть  це робити. Тому або забути про цей пункт або вірити в те що адміни будуть норм пацанами і не будуть свинини, або придумати такий варіант з генерування хешів  щоб не загружав користувача.

7 Востаннє редагувалося P.Y. (07.10.2023 16:33:14)

Re: Cтворення ТЗ для платформи спілкування українських програмістів

plusxx написав:
frz написав:

+ до "7" відмова від світогляду що містить поняття карми

+ пункт "8" відсутній або ж у мене щось із зором (з телефону)

Я кілька раз редагував  і десь вісімку загубив.

Смайлик з'їв вісімку. " 8" + ") " = " 8) "

Подякували: plusxx, leofun012

8

Re: Cтворення ТЗ для платформи спілкування українських програмістів

plusxx написав:

При створенні нових трідів користувач повинен мати змогу вибрати готові теги, а також додавання своїх,
       нових тегів, котрі на стороні сервера будуть додаватися до таблиці тегів. Розділи потрібні для структуризації даних на першій сторінці форуму

А якщо зробити так: є теги обов'язкові (вони ж розділи) і є теги додаткові (які користувач може довільно створювати сам). При створенні теми (тріду, обговорення, бесіди... — тут і далі називатиму це темою), має бути задано щонайменше 1 обов'язковий тег. Тегів може бути кілька, серед них можуть бути як обов'язкові, так і додаткові, але максимальну кількість тегів в одній темі варто обмежити, щоб запобігти спаму тегами для штучного привернення уваги.

Обов'язкові теги-розділи структуровано в ієрархію розділів, яка відображається на головній сторінці — оскільки в кожній темі є 1 чи більше обов'язкових тегів, до неї можна дістатись, не вдаючись до пошуку та іншої магії.

Модератори можуть перетворювати додаткові теги на обов'язкові, вбудовуючи їх в ієрархію розділів. Також вони можуть робити обов'язкові теги додатковими (фактично, видаляти розділ з ієрархії). Якщо внаслідок такої дії в деяких темах залишаються тільки теги, що стали додатковими, то до таких тем автоматично додається обов'язковий тег «все інше», який теж відображається як розділ у загальній ієрархії.

Подякували: plusxx, ostap34PHP2

9

Re: Cтворення ТЗ для платформи спілкування українських програмістів

Пане P.Y. як на мене то круто.

10 Востаннє редагувалося plusxx (07.10.2023 17:49:38)

Re: Cтворення ТЗ для платформи спілкування українських програмістів

Питання  як зробити  додавання обов'язкового тегу не надто напряжним і щоб користувач не забув додати не обов'язкові теги.

11 Востаннє редагувалося ostap34PHP (07.10.2023 18:16:33)

Re: Cтворення ТЗ для платформи спілкування українських програмістів

plusxx написав:

Питання  як зробити  додавання обов'язкового тегу не надто напряжним і щоб користувач не забув додати не обов'язкові теги.

Дуже легко: розділивши теги на два поля у формі створення теми.

Наприклад у devtalk, erlangforums та elixirforum обов'язкові теги називають категоріями:
https://i.imgur.com/vShcRDr.png

Подякували: plusxx1

12

Re: Cтворення ТЗ для платформи спілкування українських програмістів

Має бути підказка теґів на підставі аналізу допису.

13

Re: Cтворення ТЗ для платформи спілкування українських програмістів

Створив ПР у ваш репо. Постарався додати форматування, а також дещо підправив і переструктурував послідовність пунктів.

Подякували: plusxx1

14

Re: Cтворення ТЗ для платформи спілкування українських програмістів

wander написав:

Створив ПР у ваш репо. Постарався додати форматування, а також дещо підправив і переструктурував послідовність пунктів.

Прийняв поправки.

Подякували: wander1

15

Re: Cтворення ТЗ для платформи спілкування українських програмістів

frz написав:

Має бути підказка теґів на підставі аналізу допису.

Добре б було це  зробити  треба обдумати цей варіант.

16 Востаннє редагувалося plusxx (07.10.2023 22:14:20)

Re: Cтворення ТЗ для платформи спілкування українських програмістів

Наразі можна працювати з цим. Це після поправок пана wandera.

1. Блоги або статті

plusxx:
Я особисто схиляюся в сторону саме структури блогів з можливістю підписки на конкретного автора, хоча можна робити й окремі статті.

2. Система тегів

plusxx:
Побудована в моделі бази даних скоріше всього на зв’язках типу Many-to-Many. Тому де таблиця з трідами була пов'язана з таблицею тегів. А таблиця тегів в свою чергу пов'язувалася як Many-to-one з таблицею розділів, тому що до одного розділу може бути прив'язано багато тегів. Працювати це може так: при реєстрації новому користувачеві даються до вибору цікаві йому теги зі списку. При створенні нових трідів користувач повинен мати змогу вибрати готові теги, а також додавання своїх, нових тегів, котрі на стороні сервера будуть додаватися до таблиці тегів. Розділи потрібні для структуризації даних на першій сторінці форуму.

P.Y.:
А якщо зробити так: є теги обов'язкові (вони ж розділи) і є теги додаткові (які користувач може довільно створювати сам). При створенні теми (тріду, обговорення, бесіди... — тут і далі називатиму це темою), має бути задано щонайменше 1 обов'язковий тег. Тегів може бути кілька, серед них можуть бути як обов'язкові, так і додаткові, але максимальну кількість тегів в одній темі варто обмежити, щоб запобігти спаму тегами для штучного привернення уваги. Обов'язкові теги-розділи структуровано в ієрархію розділів, яка відображається на головній сторінці — оскільки в кожній темі є 1 чи більше обов'язкових тегів, до неї можна дістатись, не вдаючись до пошуку та іншої магії. Модератори можуть перетворювати додаткові теги на обов'язкові, вбудовуючи їх в ієрархію розділів. Також вони можуть робити обов'язкові теги додатковими (фактично, видаляти розділ з ієрархії). Якщо внаслідок такої дії в деяких темах залишаються тільки теги, що стали додатковими, то до таких тем автоматично додається обов'язковий тег «все інше», який теж відображається як розділ у загальній ієрархії.

3. Темна тема форуму

plusxx:
На початку можна додати лише темну, а потім допиляти ще кілька або кільканадцять.

Всі основні функції повинні працювати без JS

plusxx:
Треба зробити так, щоб навіть з лінкса користувач міг притомно користуватись з ресурсу і одночасно додати всі можливі сучасні JS понти для користувачів, котрі не бояться JS. Ми повинні розуміти, що є люди, котрі нелюблять скриптів на стороні користувача, і часто їх параноя не безпідставна, і ми повинні їх поважати, але іншим потрібно дати повний можливий функціонал і швидкість, котре може дати JS.

4. Система карми

plusxx:
Оцінювання є важливим стимулом. Лайки в соцмережах заставляють людей робити чудові речі.
Тому нам потрібна система оцінювання користувачів. Ось мій варіант:

Лайки і дизлайки нараховуються лише постам, тобто при видаленні теми або посту всі лайки зникають.
Дизлайки потрібні, щоб показати шкідливі розв'язання.
Карма висвітлюється як сума всіх лайків і дизлайків плюс додаткові бали, див. нижче.
Система оцінювання по спеціалізаціям. Після реєстрації користувач немає спеціалізації. Але коли користувач набере 100+ лаків, відповідаючи на питання з певним тегом, то цей тег стає його спеціалізацією. Можна мати кілька спеціалізацій. Всі лайки і дизлайки, котрі будуть відноситись до спеціалізації, будуть в карму додаватися(відніматися) подвійно. Можна додавати додаткові пункти за різні штуки, наприклад: за лінк на Github (+20 балів), за статтю, котра пройшла модерацію (+10 балів), за вказане місце роботи (+20 балів) і так далі.
Висвітлення карми: Біля аватара висвітлюється загальна карма. Під постом карма пов'язана з кожним тегом, котрий стосується даної теми.
Таким чином можемо показати компетенцію даного користувача в конкретній питанні.
Ввести систему ачівок.
Удосконалений редактор постів

plusxx:
Думаю, тут все зрозуміло. Треба лише вибрати найадекватніше рішення цього питання. Зробити тяжкою реєстрацію клонів. На початках ніяк. Забити на це і активніше модерувати. Однак якийсь механізм на майбутнє можна закласти, щоб активувати його пізніше.

5.Адаптивна верстка сторінок

plusxx:
Тут думаю, все ясно, єдине пропоную використати Bootstrap або щось подібне.

6.Відповідь все погано однією кнопкою (див. нижче)

7.Розділ очікуючи на виправлення

plusxx:
Якщо модератор бачить, що питання з формулюванням не правильно, він в один клік може кинути тему в розділ "очікує на виправлення", при чому в тему автоматично додасться славетний пост пана Коали "Все погано", котрий автоматично видаляється, коли користувач усе поправить і натисне відповідну кнопку. Тему в розділі "Очікує на виправлення" можуть бачити лише адміни, модератори і автор.

8.Посилання на конкретний пост

9.Удосконалений механізм пошуку по сайту

10.Емоджі

plusxx:
Напевно питання з емоджі буде вирішуватись в самому кінці, але для мене ця ідея виглядає ок, якщо ми знайдемо, щоб хтось нам поробив спеціальні комп'ютерні емоджі.

11.Додати закриті (приватні) теми

plusxx:
Навіщо це? Їх можуть використовувати групи студентів, котрі працюють над одним пет проектом, чи якісь хактивісти чи інші подібні групи.

12.Типу шелл для програмування (я так розумію, емулятор терміналу в браузері)

plusxx:
Не вважаю цю задачу найбільш пріоритетною, але якщо є якесь притомне розв'язання, то хай би було.

14.Особисті повідомлення і повідомлення з закритих тем зберігаються в закодованому вигляді

17

Re: Cтворення ТЗ для платформи спілкування українських програмістів

plusxx написав:

Питання  як зробити  додавання обов'язкового тегу не надто напряжним і щоб користувач не забув додати не обов'язкові теги.

На сторінці тегу має бути кнопка «створити тему», яка відкриває форму для створення теми з уже доданим цим тегом. Інші теги можна вписати руками чи вибрати в меню (яке повторює ієрархію розділів). Якщо користувач відредагував форму так, що в списку тегів нема жодного обов'язкового, у формі з'являється повідомлення, що треба вказати хоча б один обов'язковий тег, створення теми блокується.

У варіанті без JS, список вибраних тегів у формі створення теми являтиме собою текстову область, куди користувач може вписати один або кілька тегів (один рядок — один тег). Можна залишити цю текстову область і в варіанті з JS, а коли користувач вибирає тег у меню тегів, то цей тег просто додається до списку вибраних тегів як ще один рядок (або ж можна придумати щось складніше, щоб користувач міг викидати зайві теги одним кліком).

Подякували: plusxx1

18

Re: Cтворення ТЗ для платформи спілкування українських програмістів

Можна ще додати пропозицію поширених тегів за ключовими словами (наприклад, якщо згадані C++ чи є слово void, то над кнопкою "запостити" пропонується додати тег C++). А ще можна усім новачкам додавати тег "нуб" (напівпримусово, тобто тег можна видалити і можна зняти галочку "додавати тег нуб" в налаштуваннях свого акаунта).

Подякували: plusxx, ostap34PHP2

19

Re: Cтворення ТЗ для платформи спілкування українських програмістів

Коротше кажучи система тегів досить широка і не проста тема. Потрібні списки унікальних тегів і їх синонімів ба навіть регулярних виразів щоб видавати підказки по тегах. А чи можна підключити і надрочити на цю справу якусь оту біг лендвіч модель щоб вона аналізувала текст і видавала рекомендований список тегів?

20

Re: Cтворення ТЗ для платформи спілкування українських програмістів

koala написав:

А ще можна усім новачкам додавати тег "нуб" (напівпримусово, тобто тег можна видалити і можна зняти галочку "додавати тег нуб" в налаштуваннях свого акаунта).

«Нуб» з одним повідомленням на форумі може бути далеко не початківцем у себе на роботі — в загальному випадку, ми не знаємо, це ледачий студент-першокурсник, чи бос когось із адмінів форуму, що випадково сюди забрів.
Крім того, автоматизоване цькування новачків може відштовхнути потенційно корисних користувачів серед цих новачків.
Якщо вже робити щось подібне, краще підібрати якусь більш нейтральну назву тегу (напр., «Новий користувач»).

Подякували: plusxx1