django-bpp
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:
- Python w wersji 3.6,
- Vagrant,
- VirtualBox,
- yarn,
- Docker
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
Vagrant
KonfiguracjaZainstaluj 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/