# BugReport
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
- [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).