Skip to content

Commit 413f5e1

Browse files
committed
added basic readme
1 parent 466ce31 commit 413f5e1

File tree

1 file changed

+69
-1
lines changed

1 file changed

+69
-1
lines changed

README.md

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,70 @@
11
# internal-bot
2-
This is a repository for the internal bot used on the EPS server
2+
3+
This repository is home to the internal bot we use on the EPS server.
4+
5+
## Overview
6+
7+
The bot's main goal is to make life easier for the conference teams by streamlining workflows and integrating with other services.
8+
9+
10+
## Design Decisions
11+
12+
* **One Codebase, Multiple Entry Points**
13+
* **HTTP Endpoint**: Handles webhooks.
14+
* **Discord Bot**: Lets us communicate back and forth with Discord.
15+
* It can post scheduled messages and respond to messages, commands, and events on the server.
16+
* **Background Worker**: Mainly processes HTTP requests but can also be used within the bot itself.
17+
18+
* **Small-Scale Setup**
19+
* Built to be easily extendable with new features, but designed for low-traffic environments like the EPS Organizers server.
20+
21+
## Tech Stack and Implementation Choices
22+
23+
* **Django**
24+
* Handles the HTTP layer, database, and general framework duties.
25+
* Why Django?
26+
* It's popular and easy to work with.
27+
* Comes with great built-in tools like ORM, migrations, and Django admin for quick access to data.
28+
* We're already using it for other EPS projects.
29+
30+
* **PostgreSQL**
31+
* Both development and production setups can run using Docker Compose.
32+
33+
* **discord.py**
34+
* Handles the Discord integration.
35+
* Runs in the same environment as Django, so we can reuse code, models, and the database.
36+
* The bot runs as a Django management command.
37+
38+
* **django-tasks**
39+
* Keeps background task management simple by storing tasks in the database—no need for extra tools like Redis or RabbitMQ.
40+
41+
* **Deployment**
42+
* Deployed on a dedicated VPS just for the bot.
43+
* Packaged as a single Docker image with multiple entry points.
44+
* Deployed using Ansible to match the deployment setup we use for other EPS projects.
45+
* We use separate playbooks for setting up a VPS and deploying the app.
46+
* Uses Docker Compose for simplicity.
47+
* Separate playbooks for Nginx (for the HTTP endpoint) and the app.
48+
49+
* **Dependency Management**
50+
* Managed with `uv`. All Makefiles, Docker images, and related configs are set up to use `uv`.
51+
52+
* **CI/CD**
53+
* Built with GitHub Actions.
54+
55+
## Local Development
56+
57+
...
58+
59+
## Contributing
60+
61+
...
62+
63+
## Operations
64+
65+
...
66+
67+
## Deployment
68+
69+
...
70+

0 commit comments

Comments
 (0)