Skip to main content

System informatyczny do zarządzania bibliografią publikacji pracowników naukowych

Project description

django-bpp
==========

.. image:: https://circleci.com/gh/mpasternak/django-bpp.svg?style=shield
:target: https://circleci.com/gh/mpasternak/django-bpp

.. image:: https://readthedocs.org/projects/django-bpp/badge/?version=latest
:target: http://django-bpp.readthedocs.io/pl/latest/?badge=latest
:alt: Dokumentacja

.. image:: https://coveralls.io/repos/github/mpasternak/django-bpp/badge.svg
:target: https://coveralls.io/github/mpasternak/django-bpp
:alt: Coverage

.. role:: bash(code)
:language: bash

.. image:: https://github.com/mpasternak/django-bpp/raw/dev/src/bpp/static/bpp/images/logo.png
:height: 128 px
:width: 128 px
:align: center
:alt: 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:

* 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_:

.. code-block:: bash

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


Klonowanie repozytorium z kodem
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Sklonuj repozytorium z kodem:

.. code-block:: bash

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:

.. code-block:: bash

yarn global add grunt-cli
yarn install

Konfiguracja Pythona
~~~~~~~~~~~~~~~~~~~~

Zainstaluj virtualenv oraz virtualenvwrapper_.:

.. code-block:: bash

pip install virtualenv virtualenvwrapper

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

.. code-block:: bash

mkvirtualenv django-bpp
workon django-bpp

Zainstaluj wymagane pakiety:

.. code-block:: bash

pip install -r requirements_dev.txt

Konfiguracja Vagrant_
~~~~~~~~~~~~~~~~~~~~~

Zainstaluj wymagane wtyczki do Vagrant_:

.. code-block:: bash

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

Stwórz testowy serwer wirtualny ("staging"):

.. code-block:: bash

vagrant up


Przygotuj środowisko budowania
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ustaw zmienne środowiskowe na cele lokalnego developmentu:

.. code-block:: bash

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_.

.. code-block:: bash

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_:

.. code-block:: bash

docker-compose up -d

Następnie uruchom testy na maszynie lokalnej:

.. code-block:: bash

# 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 :bash:`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_.

.. code-block:: bash

make travis

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

.. code-block:: bash

make staging

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

.. _Python: http://python.org/
.. _yarn: https://yarnpkg.com/en/docs/install
.. _Vagrant: http://vagrantup.com/
.. _vagrant-hostmanager: https://github.com/devopsgroup-io/vagrant-hostmanager
.. _Virtualbox: http://virtualbox.org
.. _virtualenvwrapper: https://virtualenvwrapper.readthedocs.io/en/latest/install.html
.. _IPLWeb: http://bpp.iplweb.pl/
.. _PostgreSQL: http://postgresql.org/
.. _Licencja MIT: http://github.com/mpasternak/django-bpp/LICENSE
.. _VNC Viever: https://www.realvnc.com/download/viewer/
.. _Grunt: http://gruntjs.com/
.. _Foundation: http://foundation.zurb.com/
.. _django-compressor: https://django-compressor.readthedocs.io
.. _Ansible: http://ansible.com/
.. _RabbitMQ: http://rabbitmq.com/
.. _redis: http://redis.io/
.. _Homebrew: http://brew.sh
.. _Docker: http://docker.io/
.. _Selenium: http://seleniumhq.org
.. _Travis-CI: https://travis-ci.org/mpasternak/django-bpp/builds

Wsparcie komercyjne
-------------------

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


==============
Historia zmian
==============

1.0.4 (2018-02-13)
------------------

* poprawienie błędu wyszukiwania autorów w przypadku, gdy w wyszukiwanym
ciągu znajdzie się spacja,

* zezwalaj na dowolną wartość zapisanego imienia i nazwiska w module
redagowania,

* umożliwiaj wyszukiwanie po pierwszym nazwisku i imieniu (pierwszy autor,
redaktor, etc)

1.0.1 (2018-01-01)
------------------

* wyświetlanie danych OpenAccess na widoku pracy,

* wyświetlanie DOI w opisach bibliograficznych, raportach oraz widoku pracy,

* poprawiony błąd budowania zapytania SQL na potrzeby wyszukiwania pełnotekstowego

0.11.112 (2017-12-09)
---------------------

* wyszukiwanie konferencji w globalnej nawigacji modułu redagowania

0.11.111 (2017-11-16)
---------------------

* poprawiony błąd związany z wyborem pola "tylko prace z afiliowanych jednostek"
występujący w formularzu raportu autorów

* optymalizacja wyświetlania podstrony jednostki w przypadku, gdy zawiera
ona więcej, niż 100 autorów.

0.11.109 (2017-11-14)
---------------------

* możliwość przejścia do panelu redagowania z każdej strony serwisu, gdzie
tylko ma to sens (jednostki, autorzy, artykuły, wydziały),

* kosmetyczne poprawki wyświetla raportów,

* poprawiony błędny warunek dla funkcji raportu autorów "uwzględniaj tylko
prace afiliowanych jednostek uczelni",


0.11.107 (2017-11-12)
---------------------

* opcja "Stwórz autora" tworzy domyślnie autora niewidocznego na stronach
jednostek, kapitalizując nazwiska,

* poprawiono błąd powodujący niepoprawne działanie funkcji usuwania
pojedynczych rekordów z wyników wyszukiwania.

0.11.106 (2017-11-10)
---------------------

* możliwość łatwego przechodzenia z formularza edycji w module redagowania do
stron WWW dostepnych dla użytkownika końcowego

* [kod] generowanie opisu bibliograficznego autorów za pomocą systemu
templatek Django; usunięcie kodu generowania opisu bibliograficznego
autorów za pomocą własnych tagów,

* pole "Pokazuj na stronach jednostek" dla Autorów staje się polem "Pokazuj"
i określa widoczność autora na stronie jednostki oraz w "Rankingu autorów"


0.11.104 (2017-11-08)
---------------------

* usunięto błąd uniemożliwiający edycję już zapisanego autora w rekordach
wydawnictwa ciągłego i zwartego

0.11.103 (2017-11-06)
---------------------

* od tej wersji, dla wydawnictw zwartych, gdzie określone jest wydawnictwo nadrzędne,
nie ma już potrzeby uzupełniania pola "Informacje", gdyż system w opisie
bibliograficznym użyje tytułu wydawnictwa nadrzędnego,

* miniblog - możliwość umieszczenia aktualności na pierwszej stronie serwisu.

* obsługa przycisku "Uzupełnij rok" dla wydawnictwa zwartego (uzupełnia dane
na podstawie pola "Szczegóły" bądź z "Wydawnictwo nadrzędne") oraz dla
wydawnictwa ciągłego (uzupełnia dane na podstawie pola "Informacje").

0.11.101 (2017-11-03)
---------------------

* opcjonalne uwzględnianie prac spoza jednostek uczelni w raportach autorów,

* naprawiono działanie konektora OAI-PMH,

* "prawdziwa" funkcja "pozostałe prace" dla raportów,

* poprawione wyświetlanie rekordów (poprawna obsługa tagów "sup" i "sub"
w opisach bibliograficznych).


0.11.90 (2017-09-23)
--------------------

* opcjonalne rozbicie na jednostki i wydziały w rankingu autorów

* możliwość ukrycia pola "Praca recenzowana"

* poprawki wyświetlania podstron autora i jednostki

0.11.77 (2017-09-19)
--------------------

* poprawiono liczenie punktacji sumarycznej w rankingu autorów

* poprawiono wyszukiwanie dla podanych jednocześnie par autor + jednostka

* poprawki wydajności wyszukiwania

0.11.55 (2017-08-30)
--------------------

* domyślne sortowanie rankingu autorów

* obsługa PostgreSQL 9.6

0.11.53 (2017-08-29)
--------------------

* poprawiony błąd eksportowania plików XLS i DOCX utrudniający ich otwieranie

* poprawiony błąd wyszukiwania dla pola "Źródło"

* opcjonalne ukrywanie elementów menu serwisu dla użytkowników zalogowanych
i niezalogowanych


0.11.50 (2017-08-23)
--------------------

* poprawiony błąd uniemożliwiający sortowanie w rankingu autorów

* tabela rankingu autorów stylizowana podobnie jak inne tabele w systemie

* możliwość eksportowania rankingu autorów oraz raportów autorów, jednostek i
wydziałów w różnych formatach wyjściowych (m.in. MS Excel, MS Word, CSV)


0.11.43 (2017-08-15)
--------------------

* możliwość zmiany wyglądu kolorystycznego systemu

* nowy framework raportów oparty o zapytania w języku DSL, obsługiwany
w pełni przez użytkownika końcowego

* konfigurowalny czas długości trwania sesji - możliwość wybrania, jak długo
system czeka na reakcję użytkownika przed automatycznym jego wylogowaniem

* autorzy przy wyszukiwaniu przez globalną nawigację oraz w module "Redagowanie"
wyświetlani są zgodnie z ilością publikacji w bazie

* możliwość automatycznego utworzenia autora i serii wydawniczej
podczas wpisywania rekordu - bez konieczności przechodzenia do innej częsci
modułu redagowania

* opcja resetu hasła w przypadku jego zapomnienia

* konfigurowalny czas do przymusowej zmiany hasła, konfigurowalny moduł
zapamiętujący ostatnio wpisane hasła oraz konfigurowalna ilość
ostatnio zapamiętanych haseł

0.11.19 (2017-07-15)
--------------------

* do rekordu powiązania autora z wydawnictwem (zwartym, ciągłym lub patentem)
dochodzi pole "afiliowany", domyślnie mające wartość 'PRAWDA'. Należy je
odznaczyć w sytuacji, gdyby autor danej publikacji zgłosił powiązanie
do jednostki będącej w strukturach uczelni w której jest zatrudniony jednakże
jednoczasowo do tej publikacji zgłosił inną jednost

* do rekordu wydawnictwa zwartego, ciągłego, patentu, pracy doktorskiej i
pracy habilitacyjnej dochodzą pola "strony", "tom" i "numer zeszytu":
- w sytuacji, gdy są wypełnione, to ich wartości są używane do eksportu PBN,
- w sytuacji, gdy są niewypełnione, system spróbuje wyekstrahować te dane z
pól "szczegóły" i "informacje" analizując ciągi znaków, poszukując ciągów
takich jak "vol.", "t.", "r.", "bd." dla tomu, "nr", "z.", "h." dla numeru
zeszytu, "ss." lub "s." dla stron, "b. pag." dla braku paginacji,
- podczas edycji rekordu w module "redagowanie" pola te zostaną uzupełnione
przez system na podstawie pól "szczegóły" i "informacje" gdy użytkownik
kliknie odpowiedni przycisk; w takiej sytuacji pola te, jeżeli zawierają
jakieś informacje, zostaną nadpisane.

* konferencje - w module redagowania można dopisywać dane o konferencjach, które
następnie mogą być przypisane do wydawnictwa ciągłego lub wydawnictwa
zwartego

* struktura - w module redagowania za pomocą rekordu uczelni można ukryć
wyświetlanie punktacji wewnętrznej oraz Index Copernicus

* autor - nowe pole "Open Researcher and Contributor ID"

* wygodna edycja kolejności wydziałów w module Redagowanie➡Struktura➡Uczelnia

* poprawiono błąd związany z obsługą pola dla rekordu Autor "Pokazuj na stronie
jednostki". Autorzy którzy mają to pole odznaczone, nie będą prezentowani
na stronach jednostek.

* dla typów KBN można określać odpowiadający im charakter PBN. Pole to zostanie
użyte jako fallback w sytuacji, gdy rekord charakteru formalnego do którego
przypisana jest dana praca nie ma określonego odpowiadającego mu charakteru
PBN

* podgląd na znajdujące się w bazie charaktery PBN i przypisane im charaktery
formalne i typy KBN w module "Redagowanie"

* w bloku "Adnotacje" w module "Redagowanie" wyświetla się ID oraz PBN ID

* pola "Seria wydawnicza" oraz "ISSN" dla wydawnictwa zwartego

* możliwość określania nagród oraz statusu wybitności pracy dla rekordów
wydawnictw zwartych i wydawnictw ciągłych

* możliwość filtrowania po statusach openaccess w module "Wyszukiwanie" dla
użytkowników niezalogowanych

0.11.0 (2017-07-05)
-------------------

* obsługa Python 3 + Django 1.10

0.10.96 (2017-04-02)
--------------------

* pierwsza publicznie dostępna wersja


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

django_bpp-1.0.9-py3-none-any.whl (14.5 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page