About
This document outlines the key components and features of our project, detailing the various technologies and methodologies we’ve employed.
Tech Stack
- Python 3: The core programming language used.
 - Discord API: Integrates with Discord for bot functionalities.
 - Yake: Utilized for keyword extraction.
 
Question Detection
- Token Parsing: Utilizes regex to break down long messages into smaller tokens.
 - Detection Logic: Identifies if each token begins with keywords that signify a question.
 
Yake - Keyword Extractor
- Function: Extracts keywords from sentences.
 - Ranking System: Keywords are ranked based on their relevance, with scores closer to 0 indicating higher significance.
 
Overall Architecture Design
- Data Structure: Employs a hash table for efficient data handling.
 - Key Management: Uses keywords as the primary keys.
 - Value Storage: Associates lists of messages with each key.
 
Discord API Integration
- Setup: Utilized the Discord Developer Portal to establish team and applications.
 - Bot Creation: Developed a bot using a Discord token.
 - Interaction Handling: Implements 
discord.interactionsand events for slash command functionality. - Data Presentation: Utilizes embeds for displaying information.
 
Work-in-Progress (WIP)
- Database Migration: Transitioning from Pickle to TinyDB.
 - Data Restoration: Implementing a human-readable JSON file to restore data after bot restarts.
 - Interactive Features:
    
- Query users and admins on question categorization and answer storage.
 - Enable or disable responses.
 - Internal statistics management.
 
 - NLP Enhancements: Support for keyword extraction and answer summarization.
 - Cross-Platform Compatibility: Enable cross-channel and server support.
 - Security: Focus on input sanitization.
 - API Implementation: Planning to integrate Canvas API.