# BugReport BugReport logo BugReport je webová aplikácia na sledovanie a správu chýb (bug tracking system) s jednoduchým a intuitívnym používateľským rozhraním. Aplikácia umožňuje pridávať, upravovať, kategorizovať a sledovať stav bug reportov pomocou Kanban-štýl rozhrania s drag-and-drop funkcionalitou.


## 🚀 Funkcie - **Kanban rozhranie** - vizuálne sledovanie stavu bug reportov v štyroch kategóriách (Nezaradené, Čakajúce, Rozpracované, Blokované) - **Drag-and-drop** - jednoduché presúvanie reportov medzi kategóriami - **Prioritizácia** - nastavenie priority reportov (Nízka, Stredná, Vysoká, Kritická) - **Kategorizácia** - zaradenie reportov do skupín (Control Panel, Task.Platon.sk, WebsiteIP, Antispam) - **Detailný pohľad** - zobrazenie a úprava detailov reportu - **REST API** - prístup k dátam cez API endpoint ## 🔷 Diagram stavov pre BUG ## 🖼️ Screenshot ## 🖥️ Technológie ### ⚙️ Backend - PHP - SQLite databáza - [TPsoft/DBmodel](https://gitea.tpsoft.org/TPsoft.org/DBmodel) - PHP databázové rozšírenie - [TPsoft/APIlite](https://gitea.tpsoft.org/TPsoft.org/APIlite) - Jednoduchý nástroj pre zostavenie API ### 📺 Frontend - [Vue.js 3](https://vuejs.org/) - JavaScript framework - [Vue Router](https://router.vuejs.org/) - smerovanie v aplikácii - [Vuedraggable](https://github.com/SortableJS/vue.draggable.next) - drag-and-drop funkcionalita - [Font Awesome](https://fontawesome.com/) - ikony - [Mitt](https://github.com/developit/mitt) - knižnica pre správu udalostí - [Vite](https://vitejs.dev/) - build nástroj ## 🌳 Štruktúra projektu ``` BugReport/ ├── backend/ # Backend aplikácia (PHP) │ ├── config/ # Konfigurácia aplikácie │ ├── public/ # Vstupný bod aplikácie, tu nasmerovat vo webserveri DOCUMENT ROOT │ ├── scripts/ # Skripty pre pred-spracovanie, build a ine │ ├── src/ # Zdrojový kód │ │ ├── Models/ # Classy pre jednotlive DB tabulky pouziva TPsoft\DBmodel │ │ ├── API.php # Logika pre API BugReport pouziva TPsoft\APIlite │ │ ├── Init.php # Inicializacia pripojenia k DB, kontroly a iné │ │ └── Maintenance.php # Údržba pre projekt, zatiaľ hlavne pre upgrade databazovej štruktúry, používa \TPsoft\DBmodel\Maintenance │ └── test/ # Testovacie skripty ├── data/ # Dáta aplikácie │ ├── attachments/ # Súborové uložisko príloh │ └── database.db # SQLite databáza ├── doc/ # Dokumentácia a iné súbory počas vývoja └── frontend/ # Frontend aplikácia (Vue.js) ├── public/ # Statické súbory ├── scripts/ # Skripty pre build └── src/ # Zdrojový kód ├── assets/ # Assety (CSS, obrázky) ├── components/ # Vue komponenty ├── views/ # Vue stránky ├── App.vue # Hlavná Vue komponenta ├── backend.js # Komunikácia s API ├── events.js # Správa udalostí ├── main.js # Vstupný bod Vue aplikácie └── router.js # Vue Router konfigurácia ``` ## 🛠️ Inštalácia a spustenie ### 📋 Požiadavky - PHP 8.2 alebo novší - Webový server (Apache, Nginx) - Node.js a npm pre vývoj frontendu ### ⚙️ Backend 1. Skopírujte súbory do webového adresára 2. Uistite sa, že adresár `data` má práva na zápis 3. Nastavte DOCUMENT ROOT na adresár `backend/public` 3. Prístup k aplikácii cez webový prehliadač ### 📺 Frontend (pre vývoj) 1. Prejdite do adresára`frontend` 2. Nainštalujte závislosti: ``` npm install ``` 3. Spustite vývojový server: ``` npm run dev ``` 4. Pre build produkčnej verzie: ``` npm run build ``` ## 📖 API dokumentácia API je dostupné cez `API.php` endpoint fyzicky umiestnený v DOCUMENT ROOT `backend/public/API.php`. Všetky požiadavky vracajú JSON odpoveď.kompletnú a aktuálnu dokumentáciu je možné získať aj HTML formáte `API.php?format=html`. ### 🚏 Dostupné endpointy | Akcia | Popis | Parametre | | -------------------- | -------------------------------------- | --------------------------------------------------------------- | | `help` | Zobrazí nápovedu | - | | `add` | Pridá nový report | `title`, `description`, `status`, `group`, `priority` | | `update` | Aktualizuje report | `report_id`, `report_data` (JSON) | | `delete` | Vymaže report | `report_id` | | `get` | Získa jeden report | `report_id` | | `getAll` | Získa všetky reporty | `status` (voliteľné) | | `getAllGrouped` | Získa reporty zoskupené podľa stavu | `status` (voliteľné) | | `updateOrdNum` | Aktualizuje poradie reportov | `ordnums` (JSON) | | `updateStatus` | Aktualizuje stav reportu | `report_id`, `status` | | `attachmentAdd` | Pridá prílohu k reportu | `report_id`, `attachment_type`, `attachment_content` | | `attachmentUpdate` | Aktualizuje prílohu | `attachment_id`, `attachment_content` | | `attachmentGetAll` | Získa všetky prílohy reportu | `report_id` | ### 🔍 Príklad API volania ```javascript // Získanie všetkých reportov fetch('api.php?action=getAll') .then(response => response.json()) .then(data => console.log(data)); // Pridanie nového reportu fetch('api.php?action=add', { method: 'POST', body: new FormData(document.querySelector('form')) }) .then(response => response.json()) .then(data => console.log(data)); ``` ## 🏗️ Stavy reportov | ID | Stav | | -- | ------------- | | 0 | Nezaradené | | 1 | Čakajúce | | 2 | Rozpracované | | 3 | Blokované | | 4 | Vyriešený | ## 📣 Priority reportov | ID | Priorita | | -- | --------- | | 0 | Nízka | | 1 | Stredná | | 2 | Vysoká | | 3 | Kritická | ## 🕸️ Skupiny reportov - `cp` - Control Panel - `task` - Task.Platon.sk - `websiteip` - WebsiteIP - `antispam` - Antispam ## ✨ Plánované vylepšenia - Planned Features - Skupiny reportov v samostatnej tabuľke s CRUD manažmentom ## ⚖️ Licencia Tento projekt je licencovaný pod [MIT licenciou](https://opensource.org/licenses/MIT).