A full-stack application to analyze tweet sentiment using FastAPI, Streamlit, Docker, and CI/CD automation.
- Real-time sentiment analysis powered by VADER.
- Interactive web interface built with Streamlit.
- Robust REST API designed with FastAPI.
- Containerized services managed via Docker Compose.
- Automated CI/CD pipeline using GitHub Actions.
- Comprehensive visualizations of sentiment data.
- Full test coverage for quality assurance.
-
Clone the repository: git clone https://github.com/sam20704/tweet-sentiment-analyzer.git cd tweet-sentiment-analyzer
-
Build and start the containers: docker-compose up --build
-
Access the application in your browser:
- Frontend UI: http://localhost:8501
- Backend API: http://localhost:8000
- API Docs (Swagger UI): http://localhost:8000/docs
-
Set up the Python environment and install dependencies: make install
-
Run the backend server: make run-backend
-
In a new terminal, run the frontend app: make run-frontend
| Method | Endpoint | Description |
|---|---|---|
| GET | / |
Basic health check |
| GET | /health |
Detailed health status |
| POST | /analyze |
Analyze tweet sentiment |
Run all tests with the following command:
make test
┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │ Frontend │ ──▶ │ Backend │ ──▶ │ VADER │ │ (Streamlit) │ │ (FastAPI) │ │ Sentiment │ │ Port: 8501 │ │ Port: 8000 │ │ Analyzer │ └───────────────┘ └───────────────┘ └───────────────┘
- Fork the repository.
- Create a feature branch (
git checkout -b feature/my-feature). - Implement changes and add tests.
- Run tests with
make test. - Submit a pull request for review.
This project is licensed under the MIT License. Built with FastAPI, Streamlit & Docker | Powered by VADER Sentiment Analysis