Kompletan web sustav za upravljanje hotelima s naprednim znaΔajkama i sigurnosnim zaΕ‘titama
Hotel Management System je potpuno funkcionalna web aplikacija razvijena kao zavrΕ‘ni projektni rad iz kolegija Programiranje za Web. Sustav implementira sve 36 obveznih zahtjeva, ukljuΔujuΔi MVC arhitekturu, CRUD operacije, sigurnosne zaΕ‘tite (CSRF, XSS, SQL Injection), SEO optimizaciju, korisniΔko upravljanje i audit log sistem.
- β CRUD operacije - Potpuno upravljanje hotelskim podacima
- β MVC arhitektura - Jasna separacija odgovornosti
- β Sigurnosne zaΕ‘tite - CSRF, XSS, SQL Injection prevencija
- β KorisniΔko upravljanje - Autentikacija, autorizacija, uloge (Admin/User/Guest)
- β SEO optimizacija - SEO-friendly URL struktura
- β Responsive dizajn - Prilagodba svim ureΔajima
- β Audit log - PraΔenje svih promjena u sustavu
- β AJAX komunikacija - DinamiΔko aΕΎuriranje bez page reload
- Hotel Management: CRUD operacije (Create, Read, Update, Delete)
- User Authentication: Login, registracija, Remember Me funkcionalnost
- Role-Based Access Control: 3 uloge (Admin, User, Guest) s razliΔitim pravima
- Search & Filter: Napredna pretraga hotela po gradu i ΕΎupaniji
- Statistics Dashboard: GrafiΔki prikazi statistika s Chart.js
- Contact Form: Kontakt forma s email notifikacijama
- User Management: Upravljanje korisnicima, uloge, blokiranje naloga
- System Settings: DinamiΔka konfiguracija sustava
- Audit Log: Pregled svih promjena u bazi podataka
- Database Backup/Restore: Sigurnosne kopije baze podataka
- Security Dashboard: Pregled sigurnosnih dogaΔaja
- CSRF Protection: Token-based zaΕ‘tita svih formi (18 endpointa zaΕ‘tiΔeno)
- XSS Prevention: htmlspecialchars() za sve outpute
- SQL Injection: Prepared statements za sve upite
- Password Security: bcrypt hashing
- Account Locking: Automatsko zakljuΔavanje nakon neuspjelih prijava
- Session Security: Session regeneration, timeout kontrola
- HTTPS Enforcement: Automatski redirect na HTTPS
- RSS Feed: Automatski generirani feed za najnovije hotele
- SEO URLs: /hotel/123/naziv-hotela format
- Responsive Design: Mobile-first pristup s CSS Grid & Flexbox
- AJAX Operations: DinamiΔko dodavanje/ureΔivanje bez reload
- Cookie Management: Cookie consent banner s GDPR compliance
- Guest Limits: OgraniΔen pregled za neregistrirane korisnike
- PHP 8.x
- MySQL 8.0 (MySQLi)
- Apache 2.4 (XAMPP)
- PHPMailer
- HTML5
- CSS3 (Grid, Flexbox, Custom Properties)
- JavaScript (ES6+, Fetch API)
- Bootstrap 5.3
- Bootstrap Icons 1.11
- Chart.js 4.x
- MVC Pattern - Model-View-Controller separacija
- RESTful API - JSON komunikacija za AJAX
- Prepared Statements - SQL injection prevencija
- Templating System - Reusable header/footer komponente
hotel_managment/
βββ api/ # Backend API endpoints (Controller)
β βββ add_hotel.php
β βββ update_hotel.php
β βββ delete_hotel.php
β βββ login.php
β βββ register_user.php
β βββ user_action.php
β βββ ...
βββ assets/ # Static resources
β βββ css/
β β βββ grid-flexbox.css
β β βββ responsive.css
β β βββ ...
β βββ js/
β βββ images/
βββ lib/ # Business logic (Model)
β βββ db_connection.php
β βββ SessionManager.php
β βββ Hotel.php
β βββ User.php
β βββ AuditLog.php
β βββ CSRFToken.php
β βββ SEOHelper.php
β βββ Router.php
βββ templates/ # Reusable UI (View)
β βββ header.php
β βββ footer.php
β βββ hotel_card.php
βββ backups/ # Database backups
βββ index.php # Main hotel listing
βββ view.php # Hotel details (SEO URL)
βββ dashboard.php # User dashboard
βββ login.php
βββ register.php
βββ contact.php
βββ admin_panel.php
βββ user_management.php
βββ system_settings.php
βββ audit_log.php
βββ statistics.php
βββ database_backup.php
βββ autor.html # Author information
βββ dokumentacija.html # Technical documentation
βββ security_report.html # Security audit report
βββ .htaccess # Apache rewrite rules
βββ README.md # This file
- XAMPP 8.x (PHP 8.x + MySQL 8.0 + Apache 2.4)
- Web browser (Chrome, Firefox, Edge, Safari)
-
Klonirajte projekt u htdocs direktorij:
cd C:\xampp\htdocs git clone [repository-url] hotel_managment
-
Kreirajte bazu podataka:
mysql -u root -p CREATE DATABASE hotel_management CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -
Importajte SQL shemu:
mysql -u root hotel_management < database_schema.sql -
Konfigurirajte database connection: Uredite
lib/db_connection.php:$host = 'localhost'; $dbname = 'hotel_management'; $username = 'root'; $password = ''; // Postavite vaΕ‘u lozinku
-
Pokrenite Apache i MySQL u XAMPP-u
-
Pristupite aplikaciji:
http://localhost/hotel_managment -
Default admin pristup:
- Username:
admin - Password:
admin123
β οΈ VAΕ½NO: Promijenite admin lozinku nakon prve prijave! - Username:
Potpuna tehniΔka dokumentacija dostupna je na:
- TehniΔka Dokumentacija - Opis projekta, arhitekture, tehnologija
- O Autoru - Informacije o autoru
- Sigurnosni IzvjeΕ‘taj - Detaljni pregled sigurnosnih implementacija
GET /api/get_hotels.php
- VraΔa sve hotele
- Response: JSON array hotel objekata
POST /api/add_hotel.php
- Dodaje novi hotel
- Body: JSON s hotel podacima + CSRF token
- Response:
{success: true, message: "..."}
POST /api/update_hotel.php
- AΕΎurira postojeΔi hotel
- Body: JSON s hotel podacima + CSRF token
- Response:
{success: true, message: "..."}
POST /api/delete_hotel.php
- BriΕ‘e hotel
- Body:
{id: 123, csrf_token: "..."} - Response:
{success: true, message: "..."}
POST /api/login.php
- Prijava korisnika
- Body:
{username: "...", password: "...", remember: true/false, csrf_token: "..."} - Response:
{success: true, redirect: "dashboard.php"}
POST /api/register_user.php
- Registracija novog korisnika
- Body: JSON s user podacima + CSRF token
- Response:
{success: true, message: "..."}
- 32-byte random tokeni
- Session storage s 1-sat expiryjem
- Timing-safe validacija
- 9 formi zaΕ‘tiΔeno (login, register, contact, hotel CRUD, system settings, user actions, backup)
- 9 API endpointa validira tokene
Primjer implementacije:
// U formi:
<?php echo CSRFToken::getField(); ?>
// U API-ju:
CSRFToken::verifyPost(); // Baca exception ako nije validanhtmlspecialchars($var, ENT_QUOTES, 'UTF-8')za sve outputeSEOHelper::escape()wrapper funkcija- 5+ stranica zaΕ‘tiΔeno: index.php, view.php, dashboard.php, user_management.php, audit_log.php
Primjer:
echo htmlspecialchars($hotel['naziv'], ENT_QUOTES, 'UTF-8');
// ili
echo SEOHelper::escape($hotel['naziv']);- 100% prepared statements - Nema direktnog SQL-a
- Parameter binding s tipiziranjem
- MySQLi s bind_param()
Primjer:
$stmt = $conn->prepare("SELECT * FROM hotels WHERE id = ?");
$stmt->bind_param("i", $hotelId);
$stmt->execute();- Password hashing s
password_hash()(bcrypt) - Account locking nakon 3 neuspjela pokuΕ‘aja
- Session regeneration pri login/logout
- Remember Me tokeni (64-char, 30 dana)
- HTTPS enforcement (https_checker.php)
- Session timeout kontrola
- IP tracking u audit logu
- File upload validacija (ako se implementira)
- Mobile-first pristup
- CSS Grid & Flexbox layout
- Bootstrap 5 breakpoints
- Custom
@mediaqueries - Responsive tables s data-label patternima
- Semantic HTML5
- ARIA labels
- Keyboard navigation
- Color contrast WCAG AA compliant
- Colors: Purple gradient (#667eea β #764ba2)
- Icons: Bootstrap Icons 1.11
- Typography: System font stack
- Components: Reusable card, button, form styles
- Linija koda: ~8,000+
- PHP datoteka: 25+
- CSS datoteka: 5
- JavaScript datoteka: 3
- Database tablice: 7
- API endpoints: 15+
- Zahtjeva implementirano: 36/36 (100%)
-
CSRF Test:
- Otvorite DevTools β Network
- Submit bilo koju formu
- Provjerite da POST sadrΕΎi
csrf_token
-
XSS Test:
- PokuΕ‘ajte dodati hotel s nazivom:
<script>alert('XSS')</script> - Script se ne smije izvrΕ‘iti, veΔ prikazati kao tekst
- PokuΕ‘ajte dodati hotel s nazivom:
-
SQL Injection Test:
- Login s username:
' OR '1'='1 - Login NE smije uspjeti
- Login s username:
-
Responsive Test:
- Resize browser na razliΔite veliΔine
- Testiranje na mobilnim ureΔajima
- Provjera breakpoints-a
- Chrome DevTools
- Firefox Developer Tools
- Postman (API testing)
- OWASP ZAP (security scanning)
- Email: Kontakt forma zahtijeva SMTP konfiguraciju za production
- File Upload: Trenutno nema upload funkcionalnosti za hotel slike
- Pagination: Search ne podrΕΎava pagination (prikazuje sve rezultate)
- i18n: Aplikacija je trenutno samo na hrvatskom jeziku
- Browser Support: Optimizirano za moderne browsere (Chrome 90+, Firefox 88+, Edge 90+, Safari 14+)
- Hotel photo gallery upload
- Hotel rating & review system
- Booking/reservation sistem
- Email notifications za admin
- 2FA (Two-Factor Authentication)
- Export to PDF/Excel
- Multi-language support (i18n)
- Mobile app (Progressive Web App)
- Redis cache za sessions
- Query caching
- Image optimization & lazy loading
- CDN integration
- Minification & compression
Ime i Prezime Autora
- Email: student@example.com
- Projekt: Hotel Management System
- Kolegij: Programiranje za Web
- Godina: 2025/2026
Ovaj projekt je razvijen kao zavrΕ‘ni projektni rad u edukacijske svrhe.
IzraΔeno s β€οΈ za kolegij Programiranje za Web
2026 Β© Hotel Management System