# 🚀 Unified Help Desk Platform (MVP) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) ![Build Status](https://img.shields.io/badge/Status-In%20Progress-yellow) ![Tech Stack](https://img.shields.io/badge/Tech%20Stack-Django%20DRF%20%7C%20React%20%7C%20Docker-blueviolet) ## 🌟 āļ āļēāļžāļĢāļ§āļĄāđ‚āļ„āļĢāļ‡āļāļēāļĢ (Project Overview) āđ‚āļ„āļĢāļ‡āļāļēāļĢāļ™āļĩāđ‰āļ„āļ·āļ­āļāļēāļĢāļžāļąāļ’āļ™āļēāđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄ **Help Desk/Unified Inbox** āļ—āļĩāđˆāļĄāļĩāļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļžāļ·āđ‰āļ™āļāļēāļ™āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™ (Minimum Viable Product - MVP) āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļˆāļąāļ”āļāļēāļĢ Ticket āđāļĨāļ°āļāļēāļĢāļŠāļ™āļ—āļ™āļēāļĢāļ°āļŦāļ§āđˆāļēāļ‡āļĨāļđāļāļ„āđ‰āļēāđāļĨāļ° Agent āđ‚āļ„āļĢāļ‡āļāļēāļĢāļ™āļĩāđ‰āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļˆāļēāļ **`monorepo-starter-full-auth-web-app-template`** āļ‹āļķāđˆāļ‡āļĄāļĩāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļžāļ·āđ‰āļ™āļāļēāļ™āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™ (Monorepo, High Availability, Authentication) āļ—āļģāđƒāļŦāđ‰āļĨāļ”āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļžāļ·āđ‰āļ™āļāļēāļ™āļĨāļ‡āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļĄāļēāļ ### ðŸŽŊ āđ€āļ›āđ‰āļēāļŦāļĄāļēāļĒāļ‚āļ­āļ‡ MVP 1. āļŠāļĢāđ‰āļēāļ‡āļĢāļ°āļšāļšāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļŦāļĨāļąāļāļŠāļģāļŦāļĢāļąāļšāļˆāļąāļ”āļāļēāļĢ Ticket āđāļĨāļ° Agent 2. āļžāļąāļ’āļ™āļēāļĢāļ°āļšāļš **Unified Inbox** āļŠāļģāļŦāļĢāļąāļš Agent āđ€āļžāļ·āđˆāļ­āļˆāļąāļ”āļāļēāļĢāđāļĨāļ°āļ•āļīāļ”āļ•āļēāļĄāļŠāļ–āļēāļ™āļ° Ticket āļ—āļąāđ‰āļ‡āļŦāļĄāļ” 3. āļŠāļĢāđ‰āļēāļ‡āļĢāļ°āļšāļš **Real-time Conversation** āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰ Agent āđāļĨāļ°āļĨāļđāļāļ„āđ‰āļēāļŠāļēāļĄāļēāļĢāļ–āļŠāļ·āđˆāļ­āļŠāļēāļĢāļāļąāļ™āđ„āļ”āđ‰ --- ## 📅 āđāļœāļ™āļāļēāļĢāļžāļąāļ’āļ™āļēāđāļĨāļ°āđ„āļ—āļĄāđŒāđ„āļĨāļ™āđŒ (5-Day Sprint Plan) āļāļēāļĢāļžāļąāļ’āļ™āļēāļ‚āļąāđ‰āļ™āļ•āđ‰āļ™āļ™āļĩāđ‰āļ–āļđāļāļšāļĩāļšāļ­āļąāļ”āđƒāļŦāđ‰āđ€āļŦāļĨāļ·āļ­āđ€āļžāļĩāļĒāļ‡ **5 āļ§āļąāļ™** āđ‚āļ”āļĒāļāļēāļĢāļ•āļąāļ”āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļ—āļĩāđˆāļ‹āļąāļšāļ‹āđ‰āļ­āļ™ (āđ€āļŠāđˆāļ™ Real-time Messaging, Task Queues) āļ­āļ­āļāļ—āļąāđ‰āļ‡āļŦāļĄāļ”: ### 1. āđāļœāļ™āļ āļēāļžāļĢāļ§āļĄ (5-Day POC Breakdown) | # | āļāļīāļˆāļāļĢāļĢāļĄāļŦāļĨāļąāļ | āļĢāļ°āļĒāļ°āđ€āļ§āļĨāļē | āļŠāļĢāļļāļ›āđ€āļ›āđ‰āļēāļŦāļĄāļēāļĒ (POC Focus) | | :--- | :--- | :--- | :--- | | **1** | **Cleanup & Data Model** | 1 āļ§āļąāļ™ | āļˆāļąāļ”āļāļēāļĢāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡, āļŠāļĢāđ‰āļēāļ‡āđāļ­āļ› **`helpdesk`**, āđāļĨāļ°āļŠāļĢāđ‰āļēāļ‡ **Core Model: Ticket** | | **2** | **Backend API & Logic** | 2 āļ§āļąāļ™ | āļŠāļĢāđ‰āļēāļ‡ API (CRUD) āļŠāļģāļŦāļĢāļąāļš Ticket, āļžāļąāļ’āļ™āļēāļŸāļąāļ‡āļāđŒāļŠāļąāļ™ **Update Status** āđāļĨāļ° **Assign Agent** | | **3** | **Frontend UI & Read** | 1 āļ§āļąāļ™ | āļžāļąāļ’āļ™āļēāļŦāļ™āđ‰āļē Inbox UI āļžāļ·āđ‰āļ™āļāļēāļ™, āđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ API āđ€āļžāļ·āđˆāļ­ **āđāļŠāļ”āļ‡āļĢāļēāļĒāļāļēāļĢ Ticket āļ—āļąāđ‰āļ‡āļŦāļĄāļ”** | | **4** | **Testing & Documentation** | 1 āļ§āļąāļ™ | āļ—āļ”āļŠāļ­āļš End-to-End (Create $\rightarrow$ Read $\rightarrow$ Update) āđāļĨāļ°āļˆāļąāļ”āļ—āļģāđ€āļ­āļāļŠāļēāļĢ Setup | | **āļĢāļ§āļĄ** | | **5 āļ§āļąāļ™** | **Ticket Management POC āļŠāļģāđ€āļĢāđ‡āļˆ** | ### 2. āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩāđāļĨāļ°āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ—āļĩāđˆāđƒāļŠāđ‰ (Leveraged from Template) * **Backend & Infrastructure:** * **Authentication:** āļĢāļ°āļšāļšāļˆāļąāļ”āļāļēāļĢāļœāļđāđ‰āđƒāļŠāđ‰āđāļĨāļ°āļŠāļīāļ—āļ˜āļīāđŒ **JWT** (āļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ€āļŠāļĢāđ‡āļˆāđāļĨāđ‰āļ§) * **Database HA:** āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāļžāļĢāđ‰āļ­āļĄāđƒāļŠāđ‰āļ‡āļēāļ™āļŠāļđāļ‡ (CockroachDB) * **Task Queue:** āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡ **Celery / Redis** āļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ„āļ§āđ‰āļžāļĢāđ‰āļ­āļĄāđƒāļŠāđ‰āļ‡āļēāļ™ (āđāļ•āđˆāđ„āļĄāđˆāđ„āļ”āđ‰āđƒāļŠāđ‰āđƒāļ™ POC āļ™āļĩāđ‰) * **Frontend Base:** React Hooks / Redux Toolkit / TanStack Query --- ## ⚠ïļ āļ›āļąāļˆāļˆāļąāļĒāļ„āļ§āļēāļĄāļ‹āļąāļšāļ‹āđ‰āļ­āļ™ (Scope Complexity) * **Real-time Messaging:** āļŦāļēāļāļ•āđ‰āļ­āļ‡āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļˆāļēāļāļāļēāļĢāđƒāļŠāđ‰ Polling āđ„āļ›āđƒāļŠāđ‰ **WebSockets** (Django Channels/FastAPI) āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļāļēāļĢāļŠāļ™āļ—āļ™āļēāđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āļ—āļąāļ™āļ—āļĩ āļ­āļēāļˆāļ—āļģāđƒāļŦāđ‰āļĢāļ°āļĒāļ°āđ€āļ§āļĨāļēāļžāļąāļ’āļ™āļēāļŠāđˆāļ§āļ™āļ™āļĩāđ‰āđ€āļžāļīāđˆāļĄāļ‚āļķāđ‰āļ™ * **AI Integration:** āļāļēāļĢāđ€āļžāļīāđˆāļĄāļŸāļĩāđ€āļˆāļ­āļĢāđŒ **AI Automation** (āđ€āļŠāđˆāļ™ āļāļēāļĢāļˆāļąāļ”āļ›āļĢāļ°āđ€āļ āļ— Ticket āļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļī) āļ–āļđāļāļˆāļąāļ”āļ­āļĒāļđāđˆāđƒāļ™āļ‚āļ­āļšāđ€āļ‚āļ•āļāļēāļĢāļžāļąāļ’āļ™āļēāđ€āļŸāļŠāļ–āļąāļ”āđ„āļ› āđāļĨāļ°āļˆāļ°āđƒāļŠāđ‰āđ€āļ§āļĨāļēāļžāļąāļ’āļ™āļēāđāļĒāļāļ•āđˆāļēāļ‡āļŦāļēāļ --- ## 🛠ïļ āļāļēāļĢāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ (Getting Started) ### 1. Clone Project ```bash git clone https://gitea.softwarecraft.tech/gitea/help-desk.git cd help-desk ``` --- ## āļ„āļđāđˆāļĄāļ·āļ­āļ•āđˆāļēāļ‡ āđ† āļ„āļģāđāļ™āļ°āļ™āļģāļŠāļģāļŦāļĢāļąāļš Developer āđƒāļ™āļāļēāļĢāļĢāļąāļ™āđ‚āļ›āļĢāđ€āļˆāļ„āļ„āļĢāļąāđ‰āļ‡āđāļĢāļ [āļ—āļĩāđˆāļ™āļĩāđˆ](docs/dev_manual.pdf) āļ„āļģāđāļ™āļ°āļ™āļģāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļžāļąāļ’āļ™āļē Django DRF āļ•āļēāļĄāđāļ™āļ§āļ„āļīāļ” Clean Architecture [āļ—āļĩāđˆāļ™āļĩāđˆ](docs/clean_architecture_in_django_drf_manual.pdf) āļģāđāļ™āļ°āļ™āļģāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļžāļąāļ’āļ™āļē Frontend [āļ—āļĩāđˆāļ™āļĩāđˆ](docs/react_manual.pdf)