From 33c9c8868f676d220b72af920ae1a1f184ad84a1 Mon Sep 17 00:00:00 2001 From: igor Date: Fri, 9 May 2025 01:26:36 +0200 Subject: [PATCH] pridany README subor pre projekt --- README.md | 148 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..1583c47 --- /dev/null +++ b/README.md @@ -0,0 +1,148 @@ +# 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 endpointy + +## 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 +- [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 + ├── 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` | + +### 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).