| | 1 | = Build Instructions = |
| | 2 | |
| | 3 | == Development environment description == |
| | 4 | |
| | 5 | BiblioPremium е веб-апликација развиена во Python со Flask framework и PostgreSQL база на податоци. |
| | 6 | |
| | 7 | Апликацијата пристапува до факултетската PostgreSQL база преку SSH тунел. |
| | 8 | |
| | 9 | За развој и стартување на апликацијата се користат: |
| | 10 | |
| | 11 | * Python 3.12 |
| | 12 | * Flask |
| | 13 | * PostgreSQL |
| | 14 | * psycopg2 |
| | 15 | * sshtunnel |
| | 16 | * python-dotenv |
| | 17 | * paramiko |
| | 18 | * Visual Studio Code или друг Python editor |
| | 19 | * Web browser |
| | 20 | |
| | 21 | Главната структура на проектот е: |
| | 22 | |
| | 23 | {{{ |
| | 24 | BiblioPremium/ |
| | 25 | app.py |
| | 26 | .env |
| | 27 | .gitignore |
| | 28 | templates/ |
| | 29 | static/ |
| | 30 | style.css |
| | 31 | images/ |
| | 32 | }}} |
| | 33 | |
| | 34 | `app.py` ја содржи Flask апликацијата, поврзувањето со базата на податоци и имплементацијата на функционалностите. |
| | 35 | |
| | 36 | Во директориумот `templates` се наоѓаат HTML шаблоните што се користат за приказ на страниците на апликацијата. |
| | 37 | |
| | 38 | Во директориумот `static` се наоѓаат CSS стиловите и сликите што се користат во корисничкиот интерфејс. |
| | 39 | |
| | 40 | == Build instructions == |
| | 41 | |
| | 42 | === 1. Инсталација на Python === |
| | 43 | |
| | 44 | За стартување на апликацијата потребно е да биде инсталиран Python 3.12. |
| | 45 | |
| | 46 | Инсталираната верзија може да се провери преку терминал со: |
| | 47 | |
| | 48 | {{{ |
| | 49 | python --version |
| | 50 | }}} |
| | 51 | |
| | 52 | === 2. Инсталација на потребните библиотеки === |
| | 53 | |
| | 54 | Во терминал, во директориумот на проектот, потребно е да се инсталираат библиотеките што ги користи апликацијата: |
| | 55 | |
| | 56 | {{{ |
| | 57 | pip install Flask psycopg2-binary sshtunnel python-dotenv paramiko |
| | 58 | }}} |
| | 59 | |
| | 60 | === 3. Конфигурација на пристапот до базата === |
| | 61 | |
| | 62 | Во root директориумот на проектот се користи `.env` датотека за чување на параметрите потребни за SSH и PostgreSQL поврзувањето. |
| | 63 | |
| | 64 | Структурата на `.env` датотеката е: |
| | 65 | |
| | 66 | {{{ |
| | 67 | SSH_HOST=<SSH host> |
| | 68 | SSH_PORT=<SSH port> |
| | 69 | SSH_USER=<SSH username> |
| | 70 | SSH_PASSWORD=<SSH password> |
| | 71 | |
| | 72 | DB_HOST=<database host> |
| | 73 | DB_PORT=<database port> |
| | 74 | DB_NAME=<database name> |
| | 75 | DB_USER=<database username> |
| | 76 | DB_PASSWORD=<database password> |
| | 77 | }}} |
| | 78 | |
| | 79 | Вистинските лозинки и други доверливи пристапни податоци не се објавуваат во wiki документацијата или во Git репозиториумот. |
| | 80 | |
| | 81 | `.env` датотеката е додадена во `.gitignore` за да не се објавуваат доверливите податоци. |
| | 82 | |
| | 83 | Апликацијата при стартување ги вчитува потребните параметри од environment variables, воспоставува SSH тунел и преку него се поврзува со PostgreSQL базата. |
| | 84 | |
| | 85 | === 4. Стартување на апликацијата === |
| | 86 | |
| | 87 | Потребно е да се отвори терминал во директориумот на проектот. |
| | 88 | |
| | 89 | Апликацијата се стартува со: |
| | 90 | |
| | 91 | {{{ |
| | 92 | python app.py |
| | 93 | }}} |
| | 94 | |
| | 95 | При успешно воспоставување на конекцијата со базата, во терминалот се прикажува: |
| | 96 | |
| | 97 | {{{ |
| | 98 | Успешно поврзување со BiblioPremium базата! |
| | 99 | }}} |
| | 100 | |
| | 101 | По стартувањето, Flask го прикажува URL-то на кое локално работи апликацијата. |
| | 102 | |
| | 103 | Вообичаено апликацијата е достапна на: |
| | 104 | |
| | 105 | {{{ |
| | 106 | http://127.0.0.1:5000/ |
| | 107 | }}} |
| | 108 | |
| | 109 | URL-то се отвора во web browser. |
| | 110 | |
| | 111 | == Testing instructions == |
| | 112 | |
| | 113 | За тестирање на прототипот потребно е апликацијата да биде успешно стартувана и поврзана со PostgreSQL базата. |
| | 114 | |
| | 115 | Корисникот може да регистрира нов профил преку страницата „Регистрација“ или да се најави со веќе креиран тест корисник. |
| | 116 | |
| | 117 | Основното тестирање на прототипот може да се изврши преку следните чекори: |
| | 118 | |
| | 119 | 1. Да се отвори почетната страница и да се провери дали се прикажуваат книгите од базата на податоци. |
| | 120 | |
| | 121 | 2. Во полето за пребарување да се внесе дел од наслов на книга и да се провери дали се прикажуваат соодветните резултати. |
| | 122 | |
| | 123 | 3. Да се отвори пронајдена книга и да се проверат нејзините детали. |
| | 124 | |
| | 125 | 4. Да се регистрира нов корисник или да се изврши најава со постоечки корисник. |
| | 126 | |
| | 127 | 5. Да се отвори страницата „Мои преференции“, да се изберат жанрови и категории и да се зачуваат преференциите. |
| | 128 | |
| | 129 | 6. Да се отвори страницата „Препораки“ и да се провери дали се прикажуваат персонализирани препораки според зачуваните жанрови и категории. |
| | 130 | |
| | 131 | 7. На страницата „Препораки“ да се избере расположение и да се провери дали се прикажуваат книгите поврзани со избраното расположение. |
| | 132 | |
| | 133 | 8. Да се отвори страница со детали за книга и книгата да се додаде во „Омилени“. |
| | 134 | |
| | 135 | 9. Да се отвори страницата „Омилени“ и да се провери дали додадената книга се прикажува во листата. |
| | 136 | |
| | 137 | 10. Книгата да се отстрани од омилени и да се провери дали повеќе не се прикажува во листата. |
| | 138 | |
| | 139 | 11. Да се отвори страница со детали за книга и да се избере количина за купување. |
| | 140 | |
| | 141 | 12. Да се притисне копчето „Купи ја книгата“ и да се провери дали купувањето е успешно извршено. |
| | 142 | |
| | 143 | 13. На страницата за успешно купување да се проверат книгата, количината, вкупната цена, статусот на нарачката, начинот на плаќање и статусот на плаќањето. |
| | 144 | |
| | 145 | 14. Да се отвори страницата „Мои нарачки“ и да се провери дали новата нарачка се прикажува во историјата на купувања со точната количина и цена. |
| | 146 | |
| | 147 | Промените направени преку апликацијата се запишуваат директно во PostgreSQL базата на податоци и по потреба може дополнително да се проверат преку DBeaver. |