Ovo je web aplikacija za iznajmljivanje opreme za rekreaciju kao što su:
- bicikli
- električni bicikli
- trotineti
- električni trotineti
- roleri
Aplikacija omogućava pregled dostupne opreme, rezervaciju opreme i upravljanje opremom od strane administratora ili zaposlenih.
Projekat je razvijen kao seminarski rad iz predmeta Internet tehnologije.
Projekat je podeljen na dva dela:
Backend
- Laravel REST API
Frontend
- React aplikacija
Komunikacija između frontend i backend dela se vrši putem REST API-ja.
- PHP 8
- Laravel 11
- MySQL
- Laravel Sanctum (autentifikacija)
- Swagger (API dokumentacija)
- React
- Vite
- Chart.js (vizualizacija statistike)
- Leaflet / OpenStreetMap (mapa)
- Docker
- Git
- GitHub Actions (CI/CD)
- Render (cloud deployment)
projekat/
│
├── backend/ # Laravel API
│
├── frontend/ # React aplikacija
│
├── docker-compose.yml
│
└── README.md
cd backend
composer install
php artisan migrate
php artisan serve
Backend će biti dostupan na:
http://127.0.0.1:8000
cd frontend
npm install
npm run dev
Frontend će biti dostupan na:
http://localhost:5173
- pregled dostupne opreme
- filtriranje opreme po tipu
- rezervacija opreme
- pregled korisničkih rezervacija
- otkazivanje rezervacije
- administracija opreme (admin/employee)
Projekat koristi dva eksterna API-ja:
-
Leaflet / OpenStreetMap API koristi se za prikaz mape i lokacije opreme.
-
Chart.js API koristi se za grafički prikaz statistike rezervacija.
U aplikaciji je implementirana vizualizacija podataka koja prikazuje:
- broj dostupne opreme
- broj rezervacija
- grafički prikaz statistike
Za prikaz se koristi Chart.js biblioteka.
Implementirane su sledeće bezbednosne zaštite:
- Autentifikacija korišćenjem Laravel Sanctum
- Autorizacija pomoću role middleware-a (customer, admin, employee)
- Validacija zahteva putem Laravel request validation
- CORS zaštita za kontrolu pristupa API-ju
Projekat sadrži automatizovane testove za proveru API funkcionalnosti.
Primer testova:
- Equipment API test
- Reservation API test
Pokretanje testova:
php artisan test
Projekat koristi GitHub Actions za automatsko pokretanje testova.
Pipeline se pokreće prilikom:
- push događaja
- pull request-a
Pipeline izvršava:
- instalaciju dependencies
- pokretanje migracija
- pokretanje automatizovanih testova
Frontend aplikacija je postavljena na cloud platformu Render.
Aplikaciji se može pristupiti na sledećem linku:
https://rentabike-frontend.onrender.com
Deploy je povezan sa GitHub repozitorijumom i omogućava automatsko ažuriranje aplikacije nakon novih izmena u kodu.
Projekat koristi sledeće grane:
- main – stabilna verzija aplikacije
- develop – integraciona grana
- feature/api – razvoj API funkcionalnosti
Projekat je razvijen u okviru kursa Internet tehnologije.