> ## Documentation Index
> Fetch the complete documentation index at: https://cseakdeniz.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Project Overview

> AI-Powered Assistant for Akdeniz University CSE Students

## CSE-351 Design Patterns Term Project

**ChatbotForCse** is an AI-powered assistant designed for Akdeniz University Computer Science students. This project demonstrates the practical application of **three core design patterns**.

<CardGroup cols={2}>
  <Card title="Strategy Pattern" icon="arrows-split-up-and-left" color="#10B981" href="/design-patterns#1-strategy-pattern">
    Dynamic algorithm selection for intent classification and context fetching
  </Card>

  <Card title="Factory Pattern" icon="industry" color="#3B82F6" href="/design-patterns#2-factory-pattern">
    OCP-compliant object creation with dictionary-based registry
  </Card>

  <Card title="Singleton Pattern" icon="database" color="#8B5CF6" href="/design-patterns#3-singleton-pattern">
    Thread-safe resource management for database and LLM clients
  </Card>

  <Card title="Layered Architecture" icon="layer-group" color="#F59E0B" href="/architecture">
    Clean separation of API, Service, Domain, and Data layers
  </Card>
</CardGroup>

***

## Problem Statement

<AccordionGroup>
  <Accordion title="The Challenge" icon="triangle-exclamation" defaultOpen>
    Students at Akdeniz University struggle to access scattered information:

    | Problem | Current Solution | Pain Point |
    | - | - | - |
    | **Daily dining menus** | Check SKS website | Manual, time-consuming |
    | **Department announcements** | Monitor CSE website | Easy to miss |
    | **Academic questions** | Ask in WhatsApp groups | Repetitive, slow |
  </Accordion>

  <Accordion title="Why This Project?" icon="lightbulb">
    Existing solutions require:

    * Checking multiple websites daily
    * Asking repetitive questions in group chats
    * Waiting for human responses

    **Our solution**: A unified AI chatbot that aggregates all information sources.
  </Accordion>
</AccordionGroup>

***

## Solution: ChatbotForCse

A unified **AI-powered chatbot** accessible via WhatsApp and Mobile App.

<Tabs>
  <Tab title="Features" icon="rocket">
    <CardGroup cols={2}>
      <Card title="Dining Menus" icon="utensils">
        Scrapes weekly menus from SKS, parses images using Gemini Vision
      </Card>

      <Card title="Announcements" icon="bullhorn">
        Tracks and delivers department news in real-time
      </Card>

      <Card title="Intelligent Q&A" icon="robot">
        Uses Gemini and Ollama for general questions
      </Card>

      <Card title="Multi-Channel" icon="mobile">
        Live on WhatsApp, API ready for mobile
      </Card>
    </CardGroup>
  </Tab>

  <Tab title="Tech Stack" icon="microchip">
    | Component | Technology |
    | - | - |
    | Backend | FastAPI (Python) |
    | Database | MongoDB |
    | AI Chat | Google Gemini 2.5 Flash |
    | AI Classification | Ollama (Qwen2 7B) |
    | WhatsApp | WPPConnect (Node.js) |
  </Tab>

  <Tab title="Architecture" icon="sitemap">
    ```mermaid theme={null}
    graph LR
        User((User)) --> WA[WhatsApp]
        WA --> API[FastAPI]
        API --> DB[(MongoDB)]
        API --> LLM[Gemini/Ollama]
    ```
  </Tab>
</Tabs>

***

## Design Pattern Summary

<Note>
  Each pattern solves a specific problem in our architecture. Click the cards above to learn more.
</Note>

| Pattern | Category | Problem Solved | Benefit |
| - | - | - | - |
| **Strategy** | Behavioral | Multiple classification algorithms | Runtime flexibility |
| **Factory** | Creational | Complex object creation | OCP compliance |
| **Singleton** | Creational | Expensive resource initialization | Thread safety |

***

## Quick Start

<Steps>
  <Step title="Clone Repository">
    ```bash theme={null}
    git clone https://github.com/Akdeniz-CSE-Students/csebot_documentation/.git
    cd ChatbotForCse
    ```
  </Step>

  <Step title="Start Backend">
    ```bash theme={null}
    cd backend
    pip install -r requirements.txt
    uvicorn main:app --reload
    ```
  </Step>

  <Step title="Start WhatsApp Client">
    ```bash theme={null}
    cd whatsapp
    npm install && npm start
    ```
  </Step>
</Steps>

<Tip>
  See [Implementation](/implementation) for detailed setup instructions.
</Tip>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.