Skip to content

KavishkaDulshan/Go4-Group-Project

Repository files navigation

Overview

Go4 is a comprehensive, multimodal retail guide mobile application designed to enhance the shopping experience through artificial intelligence . The system utilizes advanced AI models and a robust full-stack architecture to provide users with intelligent product searching, personalized recommendations, and real-time mapping capabilities .

The application is split into a scalable, containerized backend and a cross-platform mobile frontend, ensuring a seamless and responsive user experience across both Android and iOS devices .

Architecture & Infrastructure

The project follows a decoupled client-server architecture, prioritizing modularity and scalable deployment :

  • Backend API: A Node.js application responsible for handling core business logic, user authentication, and third-party API integrations .
  • Cross-Platform Client: A Flutter-based mobile application that consumes the backend services and handles complex UI states across various feature modules .
  • Containerization: The entire backend ecosystem is orchestrated using Docker, with both standard (docker-compose.yml) and production-ready (docker-compose.prod.yml) configurations ensuring consistent deployment environments .
  • CI/CD Pipeline: Automated workflows for deployment and APK release generation are managed via GitHub Actions (deploy.yml, release-apk.yml) .

Tech Stack

Layer Technology
Frontend Flutter (Dart), targeting Android and iOS
Backend Node.js (REST API architecture)
AI & Search Services Gemini API, Serper API
DevOps Docker, GitHub Actions

Core Features

Based on the application's underlying architecture, Go4 delivers several key functionalities:

  • Multimodal AI Integration: The backend features dedicated services for Gemini API integration (geminiService.js, geminiEnrichService.js, geminiFilterService.js) to process complex user queries and intelligently filter results . Additionally, a transcriptionService.js indicates support for voice-based or audio-driven input .
  • Intelligent Search & Discovery: The application leverages the Serper API (serperService.js) alongside custom search routes (search.js) and product endpoints (product.js) to locate items efficiently .
  • Personalization Engine: A dedicated preferenceLearningService.js on the backend works in tandem with user preference models to deliver tailored content via the recommendations route (recommendations.js) and frontend screens (recommendations_screen.dart) .
  • Location & Mapping: Users can visualize places and retail locations through the backend places.js route, rendered on the frontend via an interactive Map module (map_screen.dart) .
  • User Management & State: The frontend utilizes comprehensive provider patterns (auth_provider.dart, search_provider.dart, wishlist_provider.dart) to manage user profiles, authentication, search histories, and personal wishlists seamlessly .

File Structure Highlights

The repository maintains a clean separation of concerns, heavily utilizing modular structures for both the frontend and backend :

Go4-Group-Project/
├── backend/                    ← Node.js API Service
│   ├── Dockerfile              ← Backend container definition
│   ├── middleware/             ← Request interceptors (e.g., auth.js)
│   ├── models/                 ← Data schemas (User, SearchHistory, UserPreferences)
│   ├── routes/                 ← API endpoints (auth, analyze, product, places)
│   └── services/               ← Core AI logic (Gemini, Serper, Transcription)
│
├── frontend/                   ← Flutter Mobile App
│   ├── android/ & ios/         ← Native platform configurations
│   ├── lib/
│   │   ├── core/               ← API clients, routing, and theme utilities
│   │   ├── features/           ← UI Modules (home, map, profile, wishlist, results)
│   │   ├── models/             ← Dart data classes (product, search_tag, history_item)
│   │   └── providers/          ← Application state management
│   └── pubspec.yaml            ← Flutter dependencies
│
├── docker-compose.yml          ← Development orchestration
└── .github/workflows/          ← CI/CD automation pipelines

About

A multimodal retail guide mobile app built with a Flutter frontend and a Node.js backend. Features AI-driven product search using Gemini and Serper APIs, orchestrated with Docker.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors