A multi-functional chatbot application that provides weather information for Israeli cities, tells jokes, and searches for keywords in top-rated movies on IMDB.
Try the bot in action: Natan Bot Demo
Natan Bot is a web-based chatbot application built with Spring Boot and integrated with Google's Dialogflow. The chatbot provides three main functionalities:
- Weather Service: Retrieves and delivers current weather information for cities in Israel
- Joke Service: Tells jokes to entertain users
- IMDB Service: Searches for keywords in top-rated movies from IMDB's top 250 list
- Banter and chat: Engage in fun, lighthearted banter with Natan Bot
The application demonstrates web scraping techniques, API integration, and natural language processing capabilities.
- Backend: Java with Spring Boot
- NLP: Google Dialogflow
- HTTP Client: OkHttp3
- API Documentation: Swagger/OpenAPI
- Containerization: Docker
- Deployment: Render
The easiest way to run Natan Bot is using Docker:
# Run with Docker Compose
docker-compose upYou can also download the docker image and run it without cloning the repo
Docker Image: natanprotector/natan-bot-server
Alternatively, you can run the application directly from the source code:
- Clone this repository
- Navigate to the project directory
- Start the application from the main class:
- Run
ChatbotApplication.java
- Run
Once the server is running, you can explore the available endpoints using Swagger UI:
http://localhost:8080/swagger-ui/
The chat functionality on the web interface is linked to a private Dialogflow account, so it won't work if you run the application locally. To fully utilize the chatbot interface:
- Create your own Dialogflow agent
- Update the agent ID in the
chat.htmlfile - Configure intents in Dialogflow to work with the provided endpoints
For detailed API documentation, refer to the Swagger UI when the application is running.
The application is deployed on Render and can be accessed at https://natan-bot-9upj.onrender.com.
This project was developed as part of the Hands-On Programming course by Niv Itzhaki. Through this experience, I had the opportunity to explore many amazing technologies and gain practical knowledge in backend development, security, testing, and DevOps. Huge thanks to Niv Itzhaki for the guidance and support throughout the course!