This is a web app which collects articles from NPR, stores them in a database, performs sentiment analysis on the summary, and then makes this data available on the web app. Testing is done using jest, and Heroku is used for hosting.
- Web app production environment: Hosted by Heroku, and available here. Express is used for the web server, and the front end uses jquery.
- Data collection worker: Run on Heroku every 10 minutes, stores new articles in the database. (bin/parse_rss)
- Data analyzer: Articles which haven't been analyzed yet are run through the Microsoft Azure sentiment analysis tool each hour. (bin/analyze_sentiment)
- Unit tests: Implemented in Jest
- Data persistence: Data is stored in a Postgresql database hosted by Heroku.
- Internal API: The /articles endpoint (index.js) provides data about articles with sentiment scores in a JSON format, and is parsed by jquery on the web app. (index.html)
- External API: The sentiment analysis is run through the Azure Text Analytics client library. (bin/analyze_sentiment_functions.js)
- Continuous integration: Tests are run automatically using Github actions with each push.
- Continuous delivery: Commits to Main which pass all tests are automatically deployed to Heroku.