python – Rule-based chatbot that can be integrated with multiple platforms [some high-level guidelines would help]


I’ve been assigned a project for my software design module, that is building a chatbot and integrating it to multiple platforms so a user can try and interact with it. AI chatbots are not not considered.

Here are the notes given by my professor:

  • The project should satisfy the topics covered in the Software Design module (indicative content):

    • Agile development

    • Programming: building of modular software components

    • Design Patterns: creational (factory, proxy, singleton), structural (adaptor, decorator).

    • Version Control: use of Git version control, local and remote repositories.

    • In-process communication: building custom modules to encapsulate business logic, test-driven development.

    • Out of process communication: use of existing APIs to add functionality.

    • Usability and testing: unit and integration testing, basic usability testing.

    • Modelling Tools: UML, class diagrams, entity-relationship diagrams.

  • See if you can hook your chat bot up to receive and send messages through Discord, Facebook, Skype, or WhatsApp.

I’ve marked the areas of question from the previous indicative content in bold.

I’ve had some initial thoughts of the steps that the project should take as a starting point. I’ll mention them first then I’ll list down my questions regarding the indicative content that I’ve listed above and how can I map it correctly with the procedure I’ll follow.

Initial thoughts/ plan:

  • Deciding the goal of my chatbot.
  • Writing down some intents and entities that the user might ask about related to the domain of the chatbot.
  • With the use of NLP, iterate over the non-stopping words and extract synonyms for these words (probably remove punctuation/special characters and overly redundant characters as well)
  • Prepare dictionaries/lists of possible responses to different intents and entities.
  • (I have no idea how to do this step) After having a decent result (; terminal), integrate it with Discord, Facebook, Skype and Whatsapp.

Of course I’d really appreciate your thoughts, modifications and expansions to the steps in this plan.

Question: My experience with web development is pretty limited, so I’d understand if this chatbot was GUI or terminal based, but if it’ll be integrated with something like discord or facebook massenger, doesn’t that mean that the service (my chatbot application) should be always responsive (; deployed on some server)? if that’s so, I would appreciate some details on this part. (where to start and how to go on)

I’m a bit novice in all of this and I’m not sure if my own way of thinking is right enough, so I’d seriously appreciate any high-level, context-related example-derived guidelines and explanations on my question, the plan I’ve mentioned and how can I map it with the indicative content.

Thank you.


Edited:
I’ve edited this post to include only one question.