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.
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
- 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
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)
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
┌─────────────────┐
│ React App │ ← Customer & Manager Interface
├─────────────────┤
│ Flask Backend │ ← REST API / Session Management
├─────────────────┤
│ AWS Services │
├─────────────────┤
│ S3 Buckets │ ← Data Storage
│ Lambda │ ← Automated Processing
│ Comprehend │ ← Sentiment Analysis
└─────────────────┘
- User submits feedback → Web form
- Flask backend → Receives and processes request
- S3 Storage → Saves to feedbacks.json and incoming/ folder
- Lambda Trigger → Automatically invoked by S3 event
- AWS Comprehend → Analyzes sentiment and extracts key phrases
- Results Storage → Saved to output bucket
- Dashboard → Displays real-time analytics
S3 Buckets:
your-input-bucket- Stores customers, products, employees, feedbackyour-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
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
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
See SETUP_GUIDE.md for local development setup.
See DEPLOYMENT_GUIDE.md for AWS deployment instructions.
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.pyAccess the application at: http://localhost:5000
Submit Feedback:
- Register a customer account
- Browse products
- Submit feedback for a product
- Feedback is saved to S3
- Lambda function processes automatically
- View results on dashboard
Verify Data Flow:
- Check S3 bucket for saved feedback
- Check CloudWatch logs for Lambda execution
- Check output bucket for analysis results
- Refresh dashboard to see new insights
- 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
This project is created for educational purposes.
For issues or questions:
- Review SETUP_GUIDE.md for setup troubleshooting
- Review DEPLOYMENT_GUIDE.md for AWS deployment
- Check CloudWatch logs for Lambda execution
- Verify AWS S3 bucket structure
- Check AWS credentials in .env file