# 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 ## Technológie ### Backend - PHP - SQLite databáza - [Medoo](https://medoo.in/) - PHP databázový framework ### 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/ ├── api.php # API endpoint ├── config.php # Konfigurácia aplikácie ├── index.php # Vstupný bod aplikácie ├── data/ # Dáta aplikácie │ └── database.db # SQLite databáza ├── lib/ # PHP knižnice │ ├── functions.inc.php # Pomocné funkcie │ └── Medoo/ # Medoo databázový framework └── webapp/ # 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 7.4 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. Prístup k aplikácii cez webový prehliadač ### Frontend (pre vývoj) 1. Prejdite do adresára`webapp` 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. Všetky požiadavky vracajú JSON odpoveď. ### 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 ## Licencia Tento projekt je licencovaný pod [MIT licenciou](https://opensource.org/licenses/MIT).