Skip to content

Commit 5f78b8e

Browse files
committed
add a project layout overview
1 parent 2b1ce82 commit 5f78b8e

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,20 @@ Check the `docs/` directory for additional information:
6161
* [Architecture Overview](docs/architecture.md) - Basic system design and integration workflow
6262
* [Deployment Guide](docs/deployment.md) - Server setup and deployment process
6363

64+
## Project Structure
65+
66+
This project follows a simple, focused organization:
67+
68+
```
69+
deploy/ - Deployment configuration and Ansible playbooks
70+
docs/ - Documentation files
71+
intbot/ - Main application code
72+
├─ core/ - Core functionality (bot, integrations, endpoints)
73+
└─ tests/ - Test suite
74+
```
75+
76+
See the [Architecture Overview](docs/architecture.md) for more details.
77+
6478
## Local Development
6579

6680

docs/architecture.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,45 @@ The app has three main parts:
99
2. **Discord Bot**: Sends messages to Discord and responds to commands
1010
3. **Background Worker**: Handles tasks in the background without blocking the web app
1111

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+
1251
## System Architecture
1352

1453
```

0 commit comments

Comments
 (0)