Technova, modern web teknolojileriyle geliştirilmiş, ölçeklenebilir ve güvenli bir e-ticaret platformudur. Proje, backend tarafında Spring Boot'un gücünü, frontend tarafında ise React'in esnekliğini kullanarak tam kapsamlı, uçtan uca (E2E) test edilmiş bir alışveriş deneyimi sunar. 🌐 Canlı Demo ve Test (Live Demo) Projeyi yerel ortamda kurmakla uğraşmadan direkt olarak canlı sunucu üzerinden test edebilirsiniz:
Canlı Uygulama Adresi: https://technova-e-commerce-project.vercel.app
Admin Paneli: https://technova-e-commerce-project.vercel.app/admin
Admin girişi bilgileri: mail = admin@test.com şifre = 123
- Backend: Java 17, Spring Boot 3, Spring Security, Hibernate (JPA)
- Frontend: React.js, Vite, Tailwind CSS / Bootstrap, React Router
- State & API Yönetimi: Redux Toolkit, TanStack React Query, Axios Interceptors
- Veritabanı: PostgreSQL
- Test & QA: Cypress (E2E Testing), JUnit (Unit Testing)
- Axios Interceptors: Kullanıcı token'ları (JWT) her API isteğinde otomatik olarak header'a eklenerek akıllı ve güvenli bir kurye sistemi kurulmuştur.
- React Query: Sunucudan veri çekerken loading ve error stateleri otomatik yönetilmiş, gereksiz render'ların önüne geçilmiştir.
- Redux Toolkit: Kullanıcı oturum bilgileri (Auth) ve Sepet (Cart) işlemleri global state üzerinde performanslı bir şekilde yönetilmektedir.
Sistemde güvenlik, JWT (JSON Web Token) tabanlı bir yapı üzerine kuruludur. Kullanıcılar giriş yaptıklarında kendilerine özel bir token tanımlanır ve bu token üzerinden yetkilendirme yapılır.
- Stateless Yapı: Sunucu tarafında oturum tutulmaz, tüm yetkilendirme token üzerinden döner.
- Role-Based Access Control (RBAC): Kullanıcılar
USERveADMINrolleriyle birbirinden ayrılır.
Sistemdeki veri bütünlüğünü korumak adına hassas işlemler sıkı yetkilendirme kurallarına bağlanmıştır:
- Admin Yetkileri: Ürün Silme, Ekleme ve Kullanıcı Yönetimi işlemleri tamamen ADMIN rolüne aittir.
- Kısıtlamalar: USER rolüne sahip standart bir kullanıcı, sistemdeki ürünleri veya diğer kullanıcıları asla silemez. Sadece vitrini gezebilir, sepete ürün ekleyebilir ve sipariş sürecini yönetebilir.
Sistemin kararlılığını sağlamak için çeşitli test senaryoları entegre edilmiştir:
- Cypress (E2E): Kullanıcıların giriş yapma, ürünleri sepete ekleme ve sepetten çıkarma gibi kritik UI/UX senaryoları gerçek tarayıcı ortamında otomatize edilmiştir.
- JUnit (Unit Tests): Backend tarafındaki iş mantığı (Service/Entity) ve kullanıcı rol/yetki atamaları izole edilmiş birim testleriyle doğrulanmıştır.
- Java 17+
- Node.js & npm
- PostgreSQL
git clone [https://github.com/Emirhangn/technovo-ecommerce.git](https://github.com/Emirhangn/technovo-ecommerce.git)