Project summary - Terminaator/chatbot GitHub Wiki

For our project we chose ÕIS 2.0 Chatbot. Our client was University of Tartu IT department. As the first order of business we met our client at their office. There we were given quite free hands of what we have to do. After that we divided the roles among ourselves. Two of us have had previous experience with chatbots so they focused more on the back-end side and the other two focused more on server side. We also chose project manager. Choosing project manager was excellent idea because he kept us on track and reminded us of upcoming deadlines.

We used github issue tracker to write down requirements. Issues were assigned to the person who had the according responsibility. In the end everybody did tasks that were unfinished.

For this project we decided to use Python with Django framework. We chose Python, because it has a great natural language processing library called estnltk. This library made sentence processing really easy and did a lot of work for us. The bot itself uses frames. This way it can remember the previous questions that the user asked. Bot’s answer is selected based on this frame. It checks what fields in the frame are filled and then proceeds to form an answer. For most questions it just fills the gaps in the answer and sends it to the user, but for some it also tries to put words into correct forms so the answer would feel more natural.

Overall everything went well. The bot came out quite fine and it should be easy to expand it. We met with the client enough times. We kept client up to date and got feedback what we should change. We also had slack channel with client so we could ask questions there if we needed. The communication between team members was also great.

On the other hand CI and server management were an utter headache. Our project had too many dependencies so we had to use University’s virtual server. For some reason this server wasn’t in the eduroam network, so initially we couldn’t get our bot running, since it’s API could only be accessed from that network. Our client helped us out and enabled access to the API from our server’s IP. The next problem was with the CI, since none of us had any experience with it. It took us days to get it working correctly. Authentication was one of those things that could have been done better. Currently the user can log in through the chat, but we should have somehow made it so that we get the authentication token from ÕIS 2.0 website. Reworking this shouldn’t be too difficult, since our current authentication system can be easily removed.

In conclusion the client seemed to be happy with the application we made for him. We learned a lot about the Python libraries that we used and server management. We hope that next year some other students will continue our project.