e50c53e50a909394dd03c9f3556d0a8cc2049def
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
- TPsoft/DBmodel - PHP databázové rozšírenie
- TPsoft/APIlite - Jednoduchý nástroj pre zostavenie API
📺 Frontend
- Vue.js 3 - JavaScript framework
- Vue Router - smerovanie v aplikácii
- Vuedraggable - drag-and-drop funkcionalita
- Font Awesome - ikony
- Mitt - knižnica pre správu udalostí
- Vite - 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
- Skopírujte súbory do webového adresára
- Uistite sa, že adresár
datamá práva na zápis - Nastavte DOCUMENT ROOT na adresár
backend/public - Prístup k aplikácii cez webový prehliadač
📺 Frontend (pre vývoj)
- Prejdite do adresára
frontend - Nainštalujte závislosti:
npm install - Spustite vývojový server:
npm run dev - 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
// 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 Paneltask- Task.Platon.skwebsiteip- WebsiteIPantispam- 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.
Description
Languages
Vue
39.7%
PHP
31.4%
CSS
17.6%
JavaScript
9.4%
Batchfile
1.4%
Other
0.5%