Welcome to the Product Review Application! This project is a comprehensive full-stack ecosystem designed to demonstrate modern software architecture, clean code principles, and seamless cross-platform integration.
The system allows users to explore products, manage wishlists, interact with an AI Assistant for review analysis, and submit real-time feedback.
Follow these steps to get the entire environment running on your local machine from scratch.
Ensure you have the following installed:
- Java JDK 17+
- Node.js 20+ & npm
- Git
- Android Studio / Xcode (for mobile emulation) or Expo Go on a physical device.
cd backend
./mvnw clean install
./mvnw spring-boot:run- API Base URL:
http://localhost:8080 - H2 Console:
http://localhost:8080/h2-console(User:sa, Password: [empty])
- Kotlin
- Jetpack Compose
- MVVM + StateFlow
- Material 3
See: README-Android-Kotlin-FINAL.md
- Swift
- SwiftUI
- MVVM + async/await
- Apple Human Interface Guidelines
See: README-iOS-Swift-FINAL.md
cd mobile
npm install
npx expo start- Press 'w' for Web version.
- Press 'a' for Android Emulator.
- Scan the QR code with Expo Go for physical device testing.
The project follows a Layered Clean Architecture to ensure maintainability and testability.
- Controller Layer: REST API design with versioning and DTO mapping.
- Service Layer: Business logic encapsulation with Dependency Inversion.
- Data Layer: Spring Data JPA with optimized SQL queries for filtering and aggregation.
- Security: (Planned) JWT-based authentication and RBAC.
- State Management: React Context API for Wishlist, Search, and Notifications.
- Responsive Design: Adaptive layouts for Mobile (Android/iOS) and Web (Vercel).
- Networking: Centralized API service with race-condition protection and abort controllers.
- Server-Side Pagination: Efficiently handles large datasets for both main product list and user wishlist.
- Dynamic Multi-Filter: Search by name and filter by category simultaneously at the database level.
- Global Statistics: Real-time dashboard showing total reviews and average ratings across the platform.
- AI Assistant: Interactive chat interface to ask specific questions about product reviews.
- AI Summary: Automated sentiment analysis and summary of user feedback.
- Search History: Persistent search overlay for quick access to previous queries.
- Multi-Select Wishlist: Batch actions for managing favorite products.
- Auto-Refresh: Real-time UI updates immediately after submitting a review without manual reload.
- Dark Mode: System-wide theme support with persistent user preference.
.
├── backend/ # Java Spring Boot Source Code
│ ├── src/main/java/ # Business logic & API Controllers
│ └── README.md # Detailed Backend Documentation
├── mobile/ # React Native (Expo) Source Code
│ ├── src/components/ # Reusable UI Components
│ ├── src/screens/ # Screen-level Components
│ ├── src/context/ # Global State Management
│ └── vercel.json # Web Deployment Configuration
└── README.md # Main Project Entry Point
- Backend: Hosted on Heroku (Eco/Basic Dynos).
- Web Frontend: Hosted on Vercel (SPA Routing enabled).
- Mobile App: Distributed via EAS Build (APK) with OTA Updates support.
Future interns are expected to:
- Understand the Backend API provided in this repository.
- Implement a Native Frontend (iOS/Swift or Android/Kotlin) that matches the features of the React Native reference implementation.
- Refer to
mobile/README-iOS-Swift.mdormobile/README-Android-Kotlin.mdfor specific requirements.
- Port 8080 Conflict: If the backend fails to start, check if another process is using port 8080.
- Network Issues: Ensure the
BASE_URLinmobile/src/services/api.tsmatches your backend IP (use local IP for physical devices). - Vercel 404 on Refresh: Fixed via
vercel.jsonrewrites. If issues persist, ensure the file is in themobile/root.
The final submission must include the following items:
- System Architecture: An [Excalidraw link] explaining the overall system design.
- Frontend Code Walkthrough: A 3–5 minute demo video [Google Drive Link] explaining the frontend codebase.
- Backend Code Walkthrough: A 3–5 minute demo video [Google Drive Link] explaining the backend architecture.
- Application Demo: A 3–5 minute video [Google Drive Link] showcasing all features on an emulator or real device.
- Build Artifacts: A [Google Drive Link] to download the generated APK (Android) or IPA (iOS).
- Web Access: A public web application link (e.g., Vercel) for testing in a browser.
- Future Improvements: A section describing potential enhancements (see Roadmap below).
- Final Presentation: A slide deck summarizing the project and learnings.
Maintained by: @MehmetBegun & Engineering Team Last Updated: January 2026