PitStopShop je fullstack web aplikacija za online prodaju auto-delova i opreme, sa jasno definisanim korisničkim ulogama: customer, mechanic i admin.
Aplikacija omogućava: - Registraciju i prijavu korisnika (JWT autentifikacija u HTTP-only cookie-ju) - Pregled, pretragu i filtriranje proizvoda - Kreiranje porudžbina i praćenje statusa - Upravljanje proizvodima (admin) - Tehničke recenzije proizvoda (mechanic) - Administratorski dashboard sa statistikom i KPI podacima
Sistem je implementiran kao odvojeni frontend i backend servis, uz MySQL bazu podataka.
- Node.js
- Express.js
- Prisma ORM
- MySQL
- JWT (autentifikacija)
- bcrypt (hash lozinki)
- Multer + Cloudinary (upload slika)
- Swagger (API dokumentacija)
- React (Vite)
- JavaScript / JSX
- CSS / Tailwind (ukoliko se koristi)
- Vitest + React Testing Library (testovi)
- Docker
- Docker Compose
- GitHub Actions (CI/CD)
git clone <repository-url>
cd pitstopshopcd backend
npm install
npx prisma generate
npx prisma migrate deploy
npm run devBackend će biti dostupan na:
http://localhost:5000
Swagger dokumentacija:
http://localhost:5000/docs
cd frontend
npm install
npm run devFrontend će biti dostupan na:
http://localhost:5173
Aplikacija je potpuno dockerizovana i može se pokrenuti jednom komandom.
docker compose up --buildServisi koji se pokreću: - MySQL baza (port 3306) - Backend (port 5000) - Frontend (port 5173)
docker compose up --build -ddocker compose downdocker compose down -v- JWT autentifikacija u HTTP-only cookie-ju
- Role-based autorizacija (customer, mechanic, admin)
- Zaštita od IDOR napada kroz proveru vlasništva resursa
- Prisma ORM zaštita od SQL Injection napada
- CORS konfiguracija ograničena na frontend domen