@@ -9,6 +9,45 @@ The app has three main parts:
9
9
2 . ** Discord Bot** : Sends messages to Discord and responds to commands
10
10
3 . ** Background Worker** : Handles tasks in the background without blocking the web app
11
11
12
+ Besides handling webhooks, the bot can also:
13
+ - Respond to user commands (like ` !ping ` )
14
+ - Answer questions in channels and threads
15
+ - React to messages and reactions from users
16
+
17
+ The bot code and supported commands can be found in ` intbot/core/bot/main.py ` .
18
+
19
+ ## Project Structure
20
+
21
+ The codebase is organized as follows:
22
+
23
+ ```
24
+ deploy/ # Deployment configuration
25
+ ├── playbooks/ # Ansible playbooks
26
+ └── templates/ # Templates for Docker Compose and Makefiles
27
+
28
+ docs/ # Project documentation
29
+ ├── architecture.md # System design and structure
30
+ └── deployment.md # Deployment guide
31
+
32
+ intbot/
33
+ ├── core/ # Main Django app with all the business logic
34
+ │ ├── bot/ # Discord bot implementation
35
+ │ ├── endpoints/ # API endpoints for webhooks
36
+ │ ├── integrations/ # Integration modules (GitHub, Zammad)
37
+ │ ├── management/ # Django management commands
38
+ │ └── models.py # Database models
39
+ ├── intbot/ # Django project settings
40
+ │ ├── settings.py # Configuration
41
+ │ └── urls.py # URL routing
42
+ └── tests/ # Test suite (mirrors the application structure)
43
+ ```
44
+
45
+ This structure was chosen because:
46
+ - It's simple and has a single ` core ` app instead of many small apps
47
+ - It clearly separates the integration logic from the bot logic
48
+ - Tests mirror the application structure, making them easy to find
49
+ - It supports multiple entry points (web server, bot, worker) from one codebase
50
+
12
51
## System Architecture
13
52
14
53
```
0 commit comments