176 lines
7.5 KiB
Markdown
176 lines
7.5 KiB
Markdown
# BugReport
|
|
|
|
<img src="frontend/public/bugreport.svg" alt="BugReport logo" height="100" align="left" />
|
|
|
|
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.
|
|
|
|
<br /><br /><br />
|
|
|
|
## 🚀 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
|
|
|
|
<img src="frontend/src/assets/images/FlowDiagram.drawio.svg" />
|
|
|
|
## 🖼️ Screenshot
|
|
<img src="doc/Screenshot_2025-05-17_111345.png" />
|
|
|
|
## 🖥️ 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).
|