Skip to content

Latest commit

 

History

History
92 lines (61 loc) · 4.74 KB

CONTRIBUTING.md

File metadata and controls

92 lines (61 loc) · 4.74 KB
image

Pomoc w rozwoju wyslij.co

Nasza strona powstała z myślą o wspieraniu organizacji charytatywnych w Polsce. Od początku za najwazniejsze założenia przyjęliśmy pełną transparentność, otwartość kodu, użycie rozwiązań darmowych i wykluczenie wszelkich możliwości pozyskiwania jakichkolwiek korzyści za jej tworzenie, prowadzenie i rozwój.

Wyslij.co jest projektem otwartym, dostępnym na zasadach wolnego oprogramowania. Dzieki temu każdy może uczestniczyć w jego rozwoju.

Jeżeli chcesz dołączyć do grona kontrybutorów, przede wszystkim przejrzyj naszą sekcję Issues repozytorium. Szukaj zgłoszeń na nowe funkcjonalności lub błędy, które zostały już przedyskutowane i zatwierdzone przez nasz zespół. Najczęściej takie zadania dla nowych osób będą oznaczone specjalną etykietą good first issue albo help needed.

Jeżeli masz pomysł na nowe funkcjonalności lub widzisz błąd - zgłoś je także przez Issues. To także ważna forma kontrybucji do projektu!

Wytyczne dotyczące rozwoju usługi

Od początku zależało nam, żeby wyslij.co było usługą jak najtańszą i najłatwiejszą w utrzymaniu. Ze względu na jej prostotę zdecydowaliśmy się hostować ją w formie strony na GitHub Pages. GitHub oferuje cały szereg narzędzi, dzięki którym realizacja naszego zadania okazała się możliwa praktycznie bez kosztów finansowych, a jedynie angażując nasz czas pracy.

Zanim zabierzesz się za pracę nad naszym projektem, zapoznaj się z jego założeniami oraz konstrukcją, żeby lepiej rozumieć, jak dostarczamy nasze rozwiązanie.

Jak budowane są strony dla GitHub Pages?

Do budowania strony wykorzystujemy prosty framework backendowy - Flask - dostępny w języku Python. Dzięki dodatkowej bibliotece Frozen Flask, możemy automatycznie generować statyczne pliki dla poszczególnych podstron usługi.

W lokalnym środowisku możemy wykorzystać Flaska do kodowania rozwiązań. Budowanie stron odbywa się w procesie zautomatyzowanym za pomocą GitHub Actions. Wygenerowane pliki statyczne są ładowane na serwery GitHuba i tam aktualizowana jest nasza strona.

Jaki jest stos technologiczny projektu?

Silnikiem do budowania stron jest wspomniany wyżej Flask wraz z Frozen Flask. Budują one strony z użyciem szablonów napisanych z użyciem Jinja2. Rozwiązania te napisane są w języku programowania Python.

Część frontendowa napisana jest przede wszystkim z wykorzystaniem frameworka tailwind CSS.

Lokalne uruchomienie projektu

Wymagania

Aby uruchomić projekt będziesz potrzebować przede wszystkim zainstalowanego na komputerze interpretera języka Python. Dobrym narzędziem do tego może być pyenv
wraz z pluginem pyenv-virtualenv.

Z ich pomocą utwórz virtualenv, w którym bedziesz instalować zależności projektu.

Instalacja zależności

Mając aktywny virtualenv zainstaluj zależności z użyciem pip z poziomu głownego folderu repozytorium kodu:

pip install -r requirements.txt

Uruchomienie lokalnego serwera

Aby uruchomić deweloperski serwer:

ORGANIZATIONS_DIR_PATH=organizations ORGANIZATIONS_SLUG_FIELD_NAME=adres python site/server.py

Konwencje nazewnicze

Dla ułatwienia prac nad kodem, przyjmujemy, że w kodzie źródłowym wykorzystujemy angielskie nazwy - zarówno dla zmiennych, jak i funkcji. Jeżeli gdzieś musimy zastosować polskie nazwy (szczególnie taką konwencję przyjęliśmy w plikach yaml edytowanych przez organizacje), staramy się je parametryzować w konfiguracji projektu.

W opisach Pull Requestów oraz w Issues stosujemy język polski, żeby uprościć komunikację z organizacjami i każdym, kto chciałby z nami współpracować nad rozwojem usługi.

Tworzenie Pull Requestów

Gotowe zmiany należy przedstawić w formie Pull Requestu. Każda zmiana wymaga zatwierdzenia przez przynajmniej jedną osobę z naszego zespołu. W opisie Pull Requesta zamieść informacje o wprowadzonych zmianach oraz odniesienie do Issue, którego dotyczą zmiany.

Dodatkowe pytania i kontakt

W razie wszelkich niejasności, najlepszym kanałem komunikacji z nami jest sekcja Issues. Wystarczy założyć nowe zgłoszenie i opisać zagadnienie.