django-bpp

https://circleci.com/gh/mpasternak/django-bpp.svg?style=shield Dokumentacja Coverage Logo projektu

O projekcie

django_bpp to system informatyczny do zarządzania bibliografią publikacji pracowników naukowych. Oprogramowanie przeznaczone jest dla bibliotek naukowych i uniwersyteckich w Polsce. Oprogramowanie dystrybuowane jest na zasadach otwartoźródłowej licencja MIT.

Dokumentacja dostępna jest na stronie https://readthedocs.org/projects/django-bpp/badge/?version=latest . Jest tam dostępna aktualna, rozwijana dokumentacja zarówno dla najnowszej wersi systemu BPP, przeznaczona zarówno dla administratora systemu jak i dla użytkownika końcowego.

Wersja demo serwisu

Live-demo serwisu dostępne jest pod adresem http://bppdemo.iplweb.pl . W razie pytań lub problemów z dostępem do serwisu demonstracyjnego prosimy o kontakt pod adresem e-mail michal.dtz@gmail.com.

Dla kogo niniejsza dokumentacja?

Niniejsza dokumentacja przeznaczona jest dla programistów i zaawansowanych użytkowników komputerów. Jeżeli jesteś bibliotekarzem i szukasz sposobu na szybkie wdrożenie systemu django-bpp w swojej instytucji, zapraszam na stronę firmy IPLWeb . Znajdziesz tam m.in. kontener maszyny wirtualnej zawierającej pre-instalowany system django-bpp, gotowy do pracy, jak równiez bogatą ofertę wsparcia komercyjnego.

Możesz również prześledzić poniższy proces ze szczegółami, aby dowiedzieć się, na czym polega tzw. “full-stack dev ops”.

Wymagania systemowe

Oprogramowanie docelowo działa na Ubuntu Linux 16.04, a rozwijane jest na Mac OS X. Większość opisanych tu procedur jest testowana własnie na tych systemach. Nic nie stoi na przeszkodzie, aby spróbować uruchomić niniejsze oprogramowanie na Windows, jednakże na ten moment nie jest to wspierana konfiguracja.

Jak zacząć?

Zainstaluj:

Wymagane oprogramowanie serwerowe, w tym PostgreSQL, RabbitMQ, redis zostanie zainstalowane i skonfigurowane przez skrypty Ansible na maszynie wirtualnej zarządzanej przez Vagrant. Jest to zalecany sposób testowania i rozwijania programu, który docelowo działać ma na platformie Ubuntu Linux 16.04 na “metalowych” serwerach.

Rozwijanie programu z kolei - budowanie pakietów wheel języka Python, testowanie za pomocą Selenium, zapewnienie szybko skonfigurowanej bazy danych obsługuje Docker.

Jeżeli używasz macOS:

Większość procedur instalacyjnych możesz załatwić przez Homebrew:

brew install grunt-cli yarn npm ansible python git
brew cask install vagrant vagrant-manager virtualbox

Klonowanie repozytorium z kodem

Sklonuj repozytorium z kodem:

git clone https://github.com/mpasternak/django-bpp.git
cd django-bpp

Konfiguracja pakietów języka JavaScript

Zainstaluj globalnie wymagane pakiety JavaScript za pomocą yarn. Zainstaluj następnie wymagane przez django-bpp pakiety:

yarn global add grunt-cli
yarn install

Konfiguracja Pythona

Zainstaluj virtualenv oraz virtualenvwrapper.:

pip install virtualenv virtualenvwrapper

Stwórz i zaktywizuj wirtualne środowisko języka Python:

mkvirtualenv django-bpp
workon django-bpp

Zainstaluj wymagane pakiety:

pip install -r requirements_dev.txt

Konfiguracja Vagrant

Zainstaluj wymagane wtyczki do Vagrant:

vagrant plugin install vagrant-hostmanager vagrant-timezone vagrant-cachier

Stwórz testowy serwer wirtualny (“staging”):

vagrant up

Przygotuj środowisko budowania

Ustaw zmienne środowiskowe na cele lokalnego developmentu:

export DJANGO_SETTINGS_MODULE=django_bpp.settings.local
export PGHOST=localhost
export PGUSER=postgres

Możesz umieścić te ustawienia w pliku bin/postactivate środowiska wirtualnego utworzonego przez mkvirtualenv. Domyślnie znajduje się on w katalogu ~/.envs/django-bpp/bin/postactivate.

Zbuduj pliki CSS i JavaScript

Następnie uruchom skrypt aby przygotować środowisko budowania oraz kolejny skrypt, aby zbudować pliki CSS i JS. Skrypty te instalują wymagane przez interfejs WWW pakiety języka JavaScript za pomocą yarn oraz konfigurują bibliotekę Foundation budując ją za pomocą Grunt i SASS. Następnie kompilują tak uzbierane pakiety za pomocą django-compressor.

make assets

Uruchom lokalne testy

Uruchom testy lokalnie. Domyślna konfiguracja oczekuje, iż serwer bazodanowy PostgreSQL dostępny będzie na porcie 5432 komputera localhost i obsługiwał będzie język PL/Python 2 oraz sortowanie wg polskiego locale pl_PL.UTF8. Testy oczekują również, iż serwer Selenium dostępny będzie na porcie 4444 hosta lokalnego, jak również dostępny będzie serwer Redis na standardowym porcie 6379. Jak uruchomić szybko te wszystkie usługi w sposób wstępnie skonfigurowany, wymagany przez django-bpp? Z pomocą przychodzi Docker:

docker-compose up -d

Następnie uruchom testy na maszynie lokalnej:

# Ustaw zmienne środowiskowe aby korzystać z kontenerów Dockera:
. local.rc

# Skonfiguruj interfejs lo0 (MacOS X) aby kontener 'selenium' miał
# dostęp do live-servera Django uruchamianego na interfejsie
# lokalnym:
make setup-lo0

# Zbuduj/pobierz pakiety WHL, używane później w nasętępnym kroku przez
# tox:
make wheels bdist_wheel

# Uruchom testy
make tests

W przyszłości możesz uruchamiać testy z opcją --no-rebuild, aby nie przebudowywać za każdym razem bazy danych.

Jeżeli któryś test “utknie” - zdarza się to przezde wszystkim przy testach korzystających z przeglądarki, Selenium i live-servera Django, możesz podejrzeć serwer testowy za pomocą oprogramowania typu VNC Viever (wejdź na adres VNC localhost:5900, wpisz hasło “secret” bez cudzysłowu i zapoznaj się z sytuacją po stronie przeglądarki WWW).

Release

Zbuduj wersję “release”. Poniższe polecenie uruchomi testy na docelowym systemie operacyjnym (Linux) oraz zbuduje wersję instalacyjną systemu. Jest to to samo polecenie, które uruchamiane jest na serwerze ciągłej integracji Travis-CI.

make travis

Aby zainstalować aktualną wersję pakietu django-bpp na serwerze staging, skorzystaj z polecenia:

make staging

Następnie wejdź na adres http://bpp-staging.localnet/ aby sprawdzić funkcjonowanie serwera.

Wsparcie komercyjne

Wsparcie komercyjne dla projektu świadczy firma IPL, szczegóły na stronie projektu http://bpp.iplweb.pl/