= Build Instructions = == Development environment description == !BiblioPremium е веб-апликација развиена во Python со Flask framework и PostgreSQL база на податоци. Апликацијата пристапува до факултетската PostgreSQL база преку SSH тунел. За развој и стартување на апликацијата се користат: * Python 3.12 * Flask * PostgreSQL * psycopg2 * sshtunnel * python-dotenv * paramiko * Visual Studio Code или друг Python editor * Web browser Главната структура на проектот е: {{{ BiblioPremium/ app.py .env .gitignore templates/ static/ style.css images/ }}} `app.py` ја содржи Flask апликацијата, поврзувањето со базата на податоци и имплементацијата на функционалностите. Во директориумот `templates` се наоѓаат HTML шаблоните што се користат за приказ на страниците на апликацијата. Во директориумот `static` се наоѓаат CSS стиловите и сликите што се користат во корисничкиот интерфејс. == Build instructions == === 1. Инсталација на Python === За стартување на апликацијата потребно е да биде инсталиран Python 3.12. Инсталираната верзија може да се провери преку терминал со: {{{ python --version }}} === 2. Инсталација на потребните библиотеки === Во терминал, во директориумот на проектот, потребно е да се инсталираат библиотеките што ги користи апликацијата: {{{ pip install Flask psycopg2-binary sshtunnel python-dotenv paramiko }}} === 3. Конфигурација на пристапот до базата === Во root директориумот на проектот се користи `.env` датотека за чување на параметрите потребни за SSH и PostgreSQL поврзувањето. Структурата на `.env` датотеката е: {{{ SSH_HOST= SSH_PORT= SSH_USER= SSH_PASSWORD= DB_HOST= DB_PORT= DB_NAME= DB_USER= DB_PASSWORD= }}} Вистинските лозинки и други доверливи пристапни податоци не се објавуваат во wiki документацијата или во Git репозиториумот. `.env` датотеката е додадена во `.gitignore` за да не се објавуваат доверливите податоци. Апликацијата при стартување ги вчитува потребните параметри од environment variables, воспоставува SSH тунел и преку него се поврзува со PostgreSQL базата. === 4. Стартување на апликацијата === Потребно е да се отвори терминал во директориумот на проектот. Апликацијата се стартува со: {{{ python app.py }}} При успешно воспоставување на конекцијата со базата, во терминалот се прикажува: {{{ Успешно поврзување со BiblioPremium базата! }}} По стартувањето, Flask го прикажува URL-то на кое локално работи апликацијата. Вообичаено апликацијата е достапна на: {{{ http://127.0.0.1:5000/ }}} URL-то се отвора во web browser. == Testing instructions == За тестирање на прототипот потребно е апликацијата да биде успешно стартувана и поврзана со PostgreSQL базата. Корисникот може да регистрира нов профил преку страницата „Регистрација“ или да се најави со веќе креиран тест корисник. Основното тестирање на прототипот може да се изврши преку следните чекори: 1. Да се отвори почетната страница и да се провери дали се прикажуваат книгите од базата на податоци. 2. Во полето за пребарување да се внесе дел од наслов на книга и да се провери дали се прикажуваат соодветните резултати. 3. Да се отвори пронајдена книга и да се проверат нејзините детали. 4. Да се регистрира нов корисник или да се изврши најава со постоечки корисник. 5. Да се отвори страницата „Мои преференции“, да се изберат жанрови и категории и да се зачуваат преференциите. 6. Да се отвори страницата „Препораки“ и да се провери дали се прикажуваат персонализирани препораки според зачуваните жанрови и категории. 7. На страницата „Препораки“ да се избере расположение и да се провери дали се прикажуваат книгите поврзани со избраното расположение. 8. Да се отвори страница со детали за книга и книгата да се додаде во „Омилени“. 9. Да се отвори страницата „Омилени“ и да се провери дали додадената книга се прикажува во листата. 10. Книгата да се отстрани од омилени и да се провери дали повеќе не се прикажува во листата. 11. Да се отвори страница со детали за книга и да се избере количина за купување. 12. Да се притисне копчето „Купи ја книгата“ и да се провери дали купувањето е успешно извршено. 13. На страницата за успешно купување да се проверат книгата, количината, вкупната цена, статусот на нарачката, начинот на плаќање и статусот на плаќањето. 14. Да се отвори страницата „Мои нарачки“ и да се провери дали новата нарачка се прикажува во историјата на купувања со точната количина и цена. Промените направени преку апликацијата се запишуваат директно во PostgreSQL базата на податоци и по потреба може дополнително да се проверат преку DBeaver.