Back to Projects

Madrasah Digital Care Chatbot

An AI assisted chatbot solution for systems under ministry of religious affairs of Indonesia.

2 min read
Next.js
Chakra UI
Cypress
OpenAI
Websocket
Chatbot
E-Government
Jotai

Overview

Madrasah Digital Care Chatbot is a web-based chatbot application that provides support and information to users of systems under the Madrasah Digital Care platform within the Ministry of Religious Affairs of Indonesia. It combines AI-powered responses with live agent support.

Features

  • AI-Powered Chatbot: Uses OpenAI's language model to respond quickly to user queries about Madrasah Digital Care.
  • Live Agent Support: When AI cannot provide a good answer, users can switch to a live agent for personalized help.
  • Ticket Management: Users can submit tickets, track their progress, and receive updates.
  • User Management: Administrators and supervisors can create, edit, and manage user accounts and permissions. User state is managed using Jotai atoms.
  • Channel Integration: Supports multiple communication channels, including WhatsApp and web chat.
  • Customizable Messages: Administrators can personalize chatbot messages to reflect the specific needs of Madrasah Digital Care.
  • Shortcut Messages: Agents can use shortcut messages to quickly respond to common queries.
  • Timeout Settings: Administrators can configure session timeout settings.
  • Reporting: Administrators can track chatbot performance, user engagement, and ticket resolution times.
  • State Management: Uses Jotai for lightweight state management across the application.

Tech Stack

  • React: For reusable frontend components.
  • Next.js: For server-side rendering and SEO.
  • Chakra UI: For UI components and theming.
  • Cypress: For end-to-end testing.
  • Socket.IO: For real-time communication between the front-end and back-end, enabling live agent chat.
  • OpenAI: For AI-driven chatbot responses.
  • Jotai: For state management.

Lessons Learned

  • Scalability: A chatbot handling many concurrent users needs careful attention to server resources and response times.
  • Real-time Communication: WebSocket connections for live agent handoff required handling disconnections, reconnections, and message ordering.
  • Testing: Cypress was useful for testing chat flows end-to-end, but testing real-time features required extra setup.
  • State Management: Jotai was simpler than Redux for this project and worked well for managing chat state across components.

Screenshots

/projects/chatbot/chatbot-1.png
/projects/chatbot/chatbot-2.png
/projects/chatbot/chatbot-3.png
/projects/chatbot/chatbot-4.png
/projects/chatbot/chatbot-5.png