Strona główna Polish Python Coders Group
   Strona główna   Pomoc Zaloguj się Rejestracja  
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Aktualności: PyStok #42 - wystąpią Łukasz Langa i Dominik Kozaczko
Szukaj Szukaj
Strony: [1]   Do dołu
Drukuj
Wątek: Misago - aplikacja forum internetowego  (Przeczytany 8032 razy)
« : 02:48 29/05/17 »
rafal Offline
Hello World!

Zobacz profil WWW
*

Reputacja: 19
Płeć: Mężczyzna
Wiadomości: 65


Po ponad stu latach 3,5 roku prac dziś na pypi opublikowałem Misago 0.6. Uśmiech

Misago to mój projekt którego celem jest stworzenie nowoczesnego systemu forum internetowego z bakendem w Pythonie i funkcjonalnością która dobrze porównuje się istniejącymi rozwiązaniami - to nie jest kolejne mikroforum z rejestracją, logowaniem, tworzeniem kategorii i zakładaniem w nich tematów robione z założeniem że resztę ktoś dopisze sobie sam. Z pudełka daję ficzery takie jak rozbudowany system uprawnień, ankiety, załączniki, historia zmian postu, ukrywanie treści, kolejka moderacji, antyspam, bany, prywatne wiadomości, własny panel admina taki jak w innych rozwiązaniach forum zamiast gotowca na Django adminie, konkretny domyślny motyw zamiast gołego Bootstrapa, etc. ect. Zależy mi przy tym aby Misago było też tańsze i łatwiejsze w hostowaniu od takiego Discoursa z pierdyliardem zależności - tutaj wystarczy vps za 20zł miesięcznie a depy to serv z wsgi, postgresql, email, memcached i cron.

W projekcie wykorzystuję Django, PostgreSQL, a interfejs usera jest zbudowany z komponentów w React.js. Mam również JSON'owe API napisane używając Django REST frameworka.

Wersja 0.6 która zaczynała jako sprzątanie kodu pod kątem łatwiejszego dalszego rozwoju kodu i lepszej interoperacyjności z ekosystemem Django ewentualnie rozrosła się o nowe cele takie jak implementacja interfejsu w JavaScriptcie (oryginalnie był to Ember.js, teraz React.js), zestaw testów, rewrajty mocniej spartolonych implementacji (vide oryginalny mechanizm postowania, autorski auth), python 3 i responsywny dezajn. W tym wszystkim znalazłem też trochę czasu na pisanie jakieś dokumentacji Mrugnięcie

Demo: https://misago-project.org
Github: https://github.com/rafalp/Misago
Doki: https://rafalp.gitbooks.io/misago/

Dzięki za wszystkie uwagi :]
Zapisane

Misago - Python Forum Software.
« Odpowiedz #1 : 08:15 06/06/17 »
sztosz Offline
Expert Python User

Zobacz profil WWW
****

Reputacja: 76
Płeć: Mężczyzna
Wiadomości: 594


Ogólnie podoba mi się to co piszesz o zależnościach i łatwości hostowania (vs. Discourse). Przez chwilę też myślałem że to wszystko asynchronicznie jest ładowane, bo naprawdę szybko to śmiga Uśmiech

Jak z wydajnością przy większej ilości użytkowników? Robiłeś jakieś testy?
Zapisane
« Odpowiedz #2 : 14:17 06/06/17 »
rafal Offline
Hello World!

Zobacz profil WWW
*

Reputacja: 19
Płeć: Mężczyzna
Wiadomości: 65


Przez chwilę też myślałem że to wszystko asynchronicznie jest ładowane, bo naprawdę szybko to śmiga Uśmiech

Oszukuję. Renderuję szablony Django które wyglądają prawie tak samo jak UI React.js, tylko wszystkie inputy i buttony są wyłączone i nie działają. Po chwili JS kończy się ładować i robi podmiankę. Na niektórych stronach można to dostrzec, na innych nie.

Konfunduje to jednak trochę jak coś idzie nie tak, i za jakiś czas pewnie przerzucę wszystko na faktyczne SPA z react routerem, templaty django maksymalnie uproszczę, opakuję w <noscript> i będę je serwować tylko googlebotom.

Jak z wydajnością przy większej ilości użytkowników? Robiłeś jakieś testy?

Nie testowałem 0.6 w taki sposób, ale testowałem 0.5 która wiele rozwiązań ma wspólnych i było bardzo spoko - przy forum z 200 userami online zjadało mniej zasobów niż wcześniej phpBB3, ale to takie gadanie  Mrugnięcie

Jest sporo standardowych optymalizacji dzięki którym to działa sensownie: uprawnienia userów są keszowane, posty preparsowane do bazy danych, mechanizm śledzenia czytań ma datę odcięcia (regulowaną), itp. itd. na wykresach vps'a też nie widzę jakiś skoków, więc myślę że jest spoko.

Być może są jakieś wąskie gardła o których nie wiem, ale jak soft będzie zdobywać na popularności to pewnie będą znajdowane i fixowane.
Zapisane

Misago - Python Forum Software.
« Odpowiedz #3 : 15:00 06/08/17 »
DJangoL Offline
Professional Python User

Zobacz profil
***

Reputacja: 31
Wiadomości: 444


Forum ciekawe, widzę, że macie już wersję 0.9 i 10 contributorów na gh.

Obejrzałem pobieżnie forum,... czym ono się wyróżnia na tle konkurencji?

Jeśli to nie tajemnica, to ile forum na świecie powstało na bazie Waszego skryptu?
Zapisane
« Odpowiedz #4 : 01:29 07/08/17 »
rafal Offline
Hello World!

Zobacz profil WWW
*

Reputacja: 19
Płeć: Mężczyzna
Wiadomości: 65


Możemy odpuścić sobie liczbę mnogą, bo projekt ciągnę tylko ja, a wkład innych osób jest okazjonalny (acz pomocny!) Mrugnięcie Wersją też bym się nie sugerował bo 0.9 nie znaczy że następne będzie 1.0, bo nie będzie. Będzie za to 0.10 z kolejnymi usprawnieniami.

Aktualny insight to forum w pythonie które dobrze się porównuje na funkcjonalność z konkurencyjnymi rozwiązaniami (głownie PHP'owymi), a poza tym jest oparte na Django i jeśli ktoś zna tą technologię, może je sobie rozbudować o portal czy to pisząc własne aplikacje, czy też używając gotowca typu Wagtail albo Django-CMS.

Ciągnąc myśl dalej, Misago można konfigurować przez pisanie kodu, czego brakowało mi bardzo w innych rozwiązaniach których używałem wcześniej. Można np. wstrzyknąć dodatkową walidację do formularza rejestracyjnego, parsera wiadomości, logikę do procesu postowania, szukajki albo pól profilu userów.

Nie mam pojęcia ile forów obecnie stoi na Misago. Wygląda na to że ludzie podczas konfiguracji zwyczajnie usuwają stopkę z backlinkiem do strony projektu, przez co trudno się to wyławia w narzędziach Googla, ale z tego co wyłapało znajduję 10 instalacji. Inna sprawa że poza jedną wrzutką o Misago 5 lat temu na reddicie i wpisie na djangopackages nie promuję aktywnie projektu Mrugnięcie Jakiś czas temu "udało" mi się skutecznie zatopić trend rosnący odkładając wszystko do nowej wersji która rodziła się w bólach przez wspomniane wyżej 3,5 roku. Od tego momentu trzymam stałe tempo nowych wydań i jestem też mądrzejszy w temacie rozwijania projektów open source Mrugnięcie Myślę że gdzieś w 2018 projekt osiągnie poziom w którym będę mógł go odważniej promować, być może via Show HN oraz społeczności pythonowe (a może i reactowe?).
Zapisane

Misago - Python Forum Software.
« Odpowiedz #5 : 12:00 09/08/17 »
DJangoL Offline
Professional Python User

Zobacz profil
***

Reputacja: 31
Wiadomości: 444


Moim zdaniem powinieneś pomyśleć o jakiejś integracji z Django-CMS lub podobnymi  (przynajmniej dostosowanie graficzne i wspólne dane autoryzacyjne), to by przyniosło projektowi dużo większe zainteresowanie. Jako plug-in / dodatek do Django-CMS projekt ma duże szanse się upowszechnić, z tego co pamiętam to Django-CMS nie ma żadnego forum (?).
Zapisane
« Odpowiedz #6 : 18:00 09/08/17 »
rafal Offline
Hello World!

Zobacz profil WWW
*

Reputacja: 19
Płeć: Mężczyzna
Wiadomości: 65


Napisałem o tym Mrugnięcie Misago zachowuje dużą kompatybilność z ekosystemem Django i można sobie zrobić kombinację z Django-CMS lub Wagtail.
Zapisane

Misago - Python Forum Software.
« Odpowiedz #7 : 11:27 10/08/17 »
DJangoL Offline
Professional Python User

Zobacz profil
***

Reputacja: 31
Wiadomości: 444


Wiem, że pisałeś. Dla programisty to nie jest duży problem zintegrować oba skrypty. Ale wiele osób oczekuje gotowców, łatwych i szybkich w instalacji/konfiguracji. Kilka kliknięć i CMS zainstalowany (np. PHP-owe CMS-y jak Drupal instaluje się błyskawicznie wraz z różnymi dodatkami, plug-inami, itd.)


Zapisane
« Odpowiedz #8 : 22:23 10/08/17 »
rafal Offline
Hello World!

Zobacz profil WWW
*

Reputacja: 19
Płeć: Mężczyzna
Wiadomości: 65


Eh, osoby oczekujące gotowców nie ruszą softu w pythonie tylko wybiorą standardową phpową kombinację Wordpress + JakieśBB i będą szczęśliwe Mrugnięcie

Nie chcę też brać na siebie obowiązków z których nie mam korzyści (nawet jeśli chodzi o satysfakcję i fun), a których z doświadczenia wiem że wcale nie okazały by się specjalnie atrakcyjne - faktycznie zamiast odpowiadać za Misago musiałbym też odpowiadać za pilnowanie releasów i zgodności z wybranym CMS'em + odpowiadanie na pytania dot konfiguracji i kustomizacji całego zestawu bo za nic nie da się wtedy jasno wytyczyć granicy co ma wsparcie, a co nie.

Takie rzeczy najlepiej działają kiedy robione są przez ochotników. Można wtedy umyć ręce i nie przejmować się Mrugnięcie
Zapisane

Misago - Python Forum Software.
« Odpowiedz #9 : 17:29 13/07/19 »
rafal Offline
Hello World!

Zobacz profil WWW
*

Reputacja: 19
Płeć: Mężczyzna
Wiadomości: 65


Dziś wydałem Misago 0.20 :]

Nowa wersja przynosi mechanizm motywów wraz z interfejsem administracyjnym, przenosi istniejące opcje konfiguracji z settings.py do panelu administracyjnego, oraz dodaje wiele nowych (np. wgranie logo, integrację z Google Analytics, logowanie przez GitHub/FB).

Po stronie serwera Misago działa pod Pythonem 3.7 i Django 2.2, część testów została przeniesiona na pytest.

Dostępna jest również szybka metoda instalacji nie wymagająca znajomości Pythona za pomocą docker-compose: Docker Setup Guide
Zapisane

Misago - Python Forum Software.
Strony: [1]   Do góry
Drukuj
Skocz do:  

© 2007 - 2019 Polish Python Coders Group
Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | Theme by PixelSlot