Skip to content

Latest commit

 

History

History
96 lines (68 loc) · 5.18 KB

README.md

File metadata and controls

96 lines (68 loc) · 5.18 KB

DALVacationHome

Welcome to the DALVacationHome repository! This project involves building a comprehensive vacation home management application with various modules integrated for enhanced functionality. Below you'll find detailed information about each module, individual contributions, and the overall project setup.

Table of Contents

Project Overview

DALVacationHome is an application designed to manage vacation home bookings, provide customer support, and analyze data. The application integrates various AWS and GCP services to deliver a robust and scalable solution.

Modules

Virtual Assistant Module

The Virtual Assistant Module integrates Dialog Flow, enhancing user interactions with advanced language analysis and speech recognition. This module enables seamless transitions between chatbots and human agents, automating repetitive tasks like room bookings and customer inquiries to improve usability and customer experience.

Message Passing Module

This module enables synchronous chat retrieval between property agents and customers. Initially lacking in functionality, it was improved by implementing Google Cloud Functions to retrieve and display complete chat histories. This addition aligns the module with real-world scenarios and enhances its core purpose.

Notification Module

The Notification Module uses AWS services to handle user subscriptions and message notifications. It leverages AWS Lambda functions triggered by SQS queues to create and manage SNS topics, ensuring users receive timely email notifications. The integration with Amazon API Gateway allows the frontend application to communicate with these services efficiently.

Data Analysis & Visualization

The Data Analysis & Visualization module was enhanced by adding a filter based on Room Id. This functionality, critical for analyzing user feedback and sentiment, was implemented by addressing data type mismatches and ensuring accurate filtering of BigQuery data.

Multi-cloud Services Used

Service Purpose
Google Dialog Flow Conversational AI and chatbot functionality.
AWS Lambda Serverless functions for various backend processes.
Amazon SQS Queue service for managing and processing asynchronous messages.
Amazon SNS Notification service for sending messages to users.
Amazon API Gateway API management and gateway for frontend-backend communication.
Google Cloud Functions Serverless functions for chat history retrieval and other processes.
Firestore NoSQL database for storing chat messages and related data.
GCP NLP API Data analysis and visualization of user feedback and sentiment.
DynamoDB NoSQL database for user data storage and retrieval.
Looker Studio Business intelligence and data visualization for generating reports and dashboards.

Repository Links

Pseudocode/Algorithms

User Management & Authentication Module

Second-Factor-Auth Lambda Function:

  1. Extract user email and security questions.
  2. Fetch and validate user data from DynamoDB.
  3. Return true if answers match, otherwise false.

Third-Factor-Auth Lambda Function:

  1. Extract user email and cipher text.
  2. Fetch and validate user data from DynamoDB.
  3. Return true if cipher texts match, otherwise false.

Virtual Assistant Module

Process:

  1. User requests booking details.
  2. Google Dialog Flow processes the intent and invokes Lambda function.
  3. Lambda fetches booking details from API and returns a response.

Message Passing Module

Functions:

  1. Retrieve Entire Conversation: Fetch chat messages from Firestore.
  2. Get Chat_id: Query Firestore to find chat_id based on user email and type.

Notification

Booking Reference Code Generation:

  1. User clicks "Book" button.
  2. Lambda generates a booking reference code and stores it.
  3. The code is returned to the web application and shown to the user.

Assigning Random Agent:

  1. Process message from SQS Queue.
  2. Assign a random agent from the pool and update Firestor with Customer & Agent details.