In this project you will see how to implement and run a little ChatBot program that can answer pbasic questions about Memory Management in C++, which is a very cool topic for fans of efficient coding!
In a simple GUI window you can ask the ChatBot about certain C++ Memory Management topics in free text form. The ChatBot creates a knowledge graph representation via loading a text file (the knowledge base). Here ChatBot answers represent the graph nodes and user queries represent the graph edges. After you entered a query and pressed enter, the query is sent to the ChatBot and it uses the Levenshtein distance to find the most probabl answer and displays it.
- cmake >= 3.11
- All OSes: click here for installation instructions
- make >= 4.1 (Linux, Mac), 3.81 (Windows)
- Linux: make is installed by default on most Linux distros
- Mac: install Xcode command line tools to get make
- Windows: Click here for installation instructions
- gcc/g++ >= 5.4
- Linux: gcc / g++ is installed by default on most Linux distros
- Mac: same deal as make - install Xcode command line tools
- Windows: recommend using MinGW
- wxWidgets >= 3.0
- Linux:
sudo apt-get install libwxgtk3.0-dev libwxgtk3.0-0v5-dbg
- Mac: There is a homebrew installation available.
- Installation instructions can be found here. Some version numbers may need to be changed in instructions to install v3.0 or greater.
- Linux:
- Clone this repo.
- Make a build directory in the top level directory:
mkdir build && cd build
- Compile:
cmake .. && make
- Run it:
./membot
.
Fiels that might be most interesting for you from a Memory Management perspective are:
chatlogic.h
andchatlogic.cpp
graphnode.h
andgraphnode.cpp
chatbot.h
andchatbot.cpp
A cool exercise would be to clone the original repository from Udacity which can be found here, try to solve the tasks yourself and then compare with this solution. Have fun coding!
This is the project for the third course in the Udacity C++ Nanodegree Program: Memory Management. If you are interested in C++ programming, or just want to freshen up your game, I can highly recommend the course!