A comprehensive platform for Reddit content analysis that enables summarization of Reddit discussions and sentiment analysis of posts and comments, built with Go, React, gRPC, and Kafka.
This project combines:
- Content Summarization: Quickly get concise summaries of Reddit discussions based on search queries
- Sentiment Analysis: Analyze the sentiment and tone of Reddit posts and comments
- Distributed Processing: Scalable architecture for handling large volumes of Reddit data
The platform uses Go's powerful concurrency model for the backend, React for the frontend, gRPC for efficient communication, and is designed with a microservices architecture that can incorporate Kafka for stream processing.
- Search and summarize Reddit discussions
- Real-time data processing from Reddit API
- Sentiment analysis capabilities for posts and comments
- Modern React frontend with responsive design
- Efficient backend using Go and gRPC
- Scalable microservices architecture
- JSON and Protobuf data format support
- Go 1.16+
- Node.js 16+
- npm 7+
- Reddit API credentials
-
Copy the environment template:
cd backend cp .env.example .env -
Get Reddit API credentials:
- Go to https://www.reddit.com/prefs/apps
- Create a new script-type application
- Fill in the .env file with your credentials
-
Copy the environment template:
cd frontend cp .env.example .env.local -
Install dependencies:
npm install
Start the backend server:
cd backend
source .env
cd cmd/reddit-server
go run main.goStart the frontend development server:
cd frontend
npm run devVisit http://localhost:3000 to use the application.
The system is designed as a set of microservices:
- Reddit API Client: Interfaces with Reddit to fetch data
- Summarization Service: Processes and summarizes Reddit content
- Sentiment Analysis: Analyzes the emotional tone of content
- Frontend: Provides user interface and visualization
Services communicate using gRPC for efficient, typed interactions, with JSON fallback for broader compatibility.
- Never commit .env files containing real credentials
- Keep your Reddit API credentials secure
- Use environment variables for all sensitive data
- Follow the principle of least privilege for API access
- Full Kafka integration for stream processing
- Enhanced summarization using NLP techniques
- More detailed sentiment analysis visualization
- User authentication and saved searches