A full-stack web application for submitting and viewing movie reviews, with sentiment analysis powered by IBM Watson Natural Language Understanding and data storage in IBM Cloudant NoSQL DB.
- Submit movie reviews with your name and the movie title
- Sentiment analysis of reviews using IBM Watson NLU
- Store and retrieve reviews from IBM Cloudant
- View all submitted reviews and their sentiment
- Node.js & Express.js
- IBM Watson Natural Language Understanding
- IBM Cloudant NoSQL DB
- EJS templating
- Bulma CSS framework
- Node.js (v12+ recommended)
- npm
- IBM Cloudant and IBM Watson NLU service credentials (or a
.env
file with the required keys)
-
Clone the repository:
git clone https://github.com/suletetes/Movie-Reviews-Database cd Movie-Reviews-Database
-
Install dependencies:
npm install
-
Configure environment variables:
- Create a
.env
file in the root directory with the following content:NLU_APIKEY=your-ibm-watson-nlu-apikey NLU_URL=your-ibm-watson-nlu-url CLOUDANT_API=your-cloudant-apikey CLOUDANT_URL=your-cloudant-url
- Alternatively, bind the required services if deploying to IBM Cloud.
- Create a
-
Run the application:
node server.js
The app will be available at http://localhost:8080 by default.
- Visit the home page to check service status.
- Go to
/reviews
to view all reviews or submit a new one. - Each review will be analyzed for sentiment (positive, negative, or neutral).
server.js
- Main server fileviews/
- EJS templates and static assetsutils/strings.json
- User-facing strings and error messages
- The app can be deployed to IBM Cloud using the provided
manifest.yml
. - A
Dockerfile
is included for containerized deployments.