Skip to content

Nirali4/FeedPlus

Repository files navigation

FeedPlus - Feedback Analysis Dashboard

FeedPlus is an enterprise-grade feedback management system that leverages AWS services to analyze customer feedback and provide business intelligence insights to product management teams.

Project Overview

A complete feedback management solution where:

  • Customers submit product reviews and feedback
  • AWS Comprehend analyzes sentiment and extracts key phrases
  • Managers view comprehensive feedback analytics on a professional dashboard
  • All data flows directly to AWS S3 and Lambda for real-time processing

Key Features

  • Product Catalog - Display products linked to AWS S3
  • Customer Registration - Secure user authentication
  • Feedback Submission - Simple feedback submission form
  • Sentiment Analysis - AWS Comprehend integration (POSITIVE, NEGATIVE, NEUTRAL, MIXED)
  • Interactive Dashboard - Real-time feedback analytics
  • Customer Profile - View all submitted reviews and feedback history
  • Product Performance - Track sentiment trends by product
  • Responsive Design - Works on desktop, tablet, and mobile
  • Cloud Ready - Production-ready cloud deployment

Technology Stack

Frontend:

  • React 18.2 with React Router
  • Bootstrap 5 for responsive design
  • Chart.js for data visualization
  • Axios for API requests

Backend:

  • Flask 3.0 (Python web framework)
  • Flask-CORS for cross-origin requests
  • Python-dotenv for environment configuration
  • boto3 for AWS integration

AWS Services:

  • S3 for data storage
  • Lambda for automated processing
  • Amazon Comprehend for sentiment analysis
  • Cloud9 for deployment (optional)

Project Structure

FeedPlus/
├── backend/
│   ├── app.py                 # Flask API routes and main application
│   ├── s3_adapter.py          # S3 read/write functions
│   ├── models/                # Data model definitions
│   ├── routes/                # API endpoint routes
│   ├── services/              # Business logic
│   └── utils/                 # Helper functions
├── frontend/
│   ├── src/
│   │   ├── components/        # React components
│   │   ├── pages/             # Page components
│   │   ├── styles/            # CSS stylesheets
│   │   └── utils/             # Utility functions
│   ├── package.json           # Frontend dependencies
│   └── vite.config.js         # Vite build configuration
├── services/
│   └── sentiment_analyzer.py  # Sentiment analysis logic
├── lambda_functions/
│   └── process_feedback_lambda.py # AWS Lambda function
├── data/
│   └── (Local reference files)
├── requirements.txt           # Python dependencies
└── .env.example              # Environment variable template

System Architecture

┌─────────────────┐
│   React App     │ ← Customer & Manager Interface
├─────────────────┤
│  Flask Backend  │ ← REST API / Session Management
├─────────────────┤
│   AWS Services  │
├─────────────────┤
│  S3 Buckets     │ ← Data Storage
│  Lambda         │ ← Automated Processing
│  Comprehend     │ ← Sentiment Analysis
└─────────────────┘

Data Flow

  1. User submits feedback → Web form
  2. Flask backend → Receives and processes request
  3. S3 Storage → Saves to feedbacks.json and incoming/ folder
  4. Lambda Trigger → Automatically invoked by S3 event
  5. AWS Comprehend → Analyzes sentiment and extracts key phrases
  6. Results Storage → Saved to output bucket
  7. Dashboard → Displays real-time analytics

AWS Configuration

S3 Buckets:

  • your-input-bucket - Stores customers, products, employees, feedback
  • your-output-bucket - Stores Comprehend analysis results

S3 Directory Structure:

your-input-bucket/
├── data/
│   ├── customer-dir/
│   │   └── customers.json
│   ├── employee-dir/
│   │   └── employees.json
│   ├── product-dir/
│   │   └── products.json
│   └── feedback-dir/
│       ├── feedbacks.json
│       └── incoming/ (triggers Lambda)

Lambda Function:

  • Trigger: S3 ObjectCreated event
  • Bucket: your-input-bucket
  • Prefix: data/feedback-dir/incoming/
  • Action: Analyze feedback with Comprehend, store results to output bucket

Dashboard Features

Feedback Scorecard:

  • Total feedback count
  • Sentiment distribution (positive, negative, neutral, mixed)
  • Percentage breakdown by sentiment
  • Negativity spike alerts

Top Key Phrases:

  • Most common positive phrases mentioned by customers
  • Most common negative phrases mentioned by customers
  • Relevance scores for each phrase

Emerging Issues:

  • Recent high-impact negative feedback
  • Organized by newest first
  • Includes product and feedback text

Product Performance:

  • Feedback volume by product
  • Sentiment distribution per product
  • Visual treemap showing relative size

Data Storage and History

All feedback and analysis data is stored in AWS S3 with automatic history preservation:

Feedback Data:

  • Location: your-input-bucket/data/feedback-dir/feedbacks.json
  • Content: Complete list of all feedback submitted
  • Updated: Each time new feedback is submitted
  • Retention: Permanent (never automatically deleted)

Analysis Data:

  • Location: your-output-bucket/comprehend/{feedback_id}.json
  • Content: Sentiment analysis results for each feedback
  • Updated: Each time Lambda processes new feedback
  • Retention: Permanent for each unique feedback

Historical Data Access:

  • Dashboard reads complete feedback list with all history
  • No data is lost or purged
  • Can view any historical feedback and its analysis
  • Dashboard supports filtering by date, product, or sentiment

Getting Started

See SETUP_GUIDE.md for local development setup.

See DEPLOYMENT_GUIDE.md for AWS deployment instructions.

Quick Installation

Prerequisites:

  • Python 3.9 or higher
  • Node.js 14 or higher
  • AWS account with S3 access
  • AWS credentials (Access Key and Secret Key)

Setup:

# Clone repository
git clone https://github.com/your-username/FeedPlus.git
cd FeedPlus

# Create Python virtual environment
python3 -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\Activate.ps1

# Install Python dependencies
pip install -r requirements.txt

# Configure AWS credentials
cp .env.example .env
# Edit .env with your AWS credentials

# Install frontend dependencies
cd frontend
npm install
npm run build
cd ..

# Start the backend
python backend/app.py

Access the application at: http://localhost:5000

Testing the Application

Submit Feedback:

  1. Register a customer account
  2. Browse products
  3. Submit feedback for a product
  4. Feedback is saved to S3
  5. Lambda function processes automatically
  6. View results on dashboard

Verify Data Flow:

  1. Check S3 bucket for saved feedback
  2. Check CloudWatch logs for Lambda execution
  3. Check output bucket for analysis results
  4. Refresh dashboard to see new insights

Requirements Checklist

  • Minimum 5 products on catalog
  • Pie charts for sentiment analysis
  • Customer registration & authentication
  • Customer profile with review history
  • AWS Lambda for feedback processing
  • AWS Comprehend sentiment analysis
  • Real-time dashboard with polling
  • S3 JSON storage
  • Fully responsive design
  • Professional enterprise appearance

License

This project is created for educational purposes.

Support

For issues or questions:

  1. Review SETUP_GUIDE.md for setup troubleshooting
  2. Review DEPLOYMENT_GUIDE.md for AWS deployment
  3. Check CloudWatch logs for Lambda execution
  4. Verify AWS S3 bucket structure
  5. Check AWS credentials in .env file

About

Feedback Analysis for Ecommerce website

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors