This bot is about making the GDGoC discord server more lively and easier to navigate. It’s being developed to integrate the organizations’ main resources (mainly Notion) to have a better experience for Googlers and Nooglers alike. This is catered for all members of the organization, with varying read and write permissions.
| Section | Component / Sub-section | Description |
|---|---|---|
| Architecture | Frontend | Discord.js bot & Next.js dashboard stack |
| Backend | Bun runtime, FastAPI core, and Docker orchestration | |
| Environment Setup | Docker Compose | All-in-one orchestrator |
| Discord Bot & Dashboard | Step-by-step setup using Bun and Python |
root
├── services
│ ├── bot
│ ├── dashboard
│ └── core
└── shared/sdk/@luxie-framework/sdk
The services folder contains all the microservices needed for Luxie to run.
botis a node/bun module. It runs the Discord Bot API via Discord.js.dashboardis also a node/bun module. It uses Next.js to display a role-based dashboard where users can login via OAuth; admins can freely modify the bot behavior and rewards, whereas normal users can login to view their status in the GDGoC Discord Server.coreis a Python backend. It uses JWT authorization to manage both thebotanddashboardsessions.
The Luxie Framework uses a polyglot monorepo + microservices setup that power its frontend and backend.
- Discord.js for Discord Bot (Interface used by members of the GDGoC-PLM Discord Server)
- Next.js for Dashboard Frontend & Backend (Integrates with FastAPI)
- Bun for JavaScript runtime
- Python via FastAPI (Business Logic)
- Docker Compose for Containerization and Microservices Orchestration
Using Docker Compose is a fast way to run the bot:
docker compose updocker compose downcd ./services/botbun run buildbun run start# Assuming you're currently in /LuxieBot-Framework/services/bot/
cd ../
cd ./services/dashboardbun run devcd ./services/core/python -m venv .venvThis is important because you'd want your IDE to recognize imports and such.
CTRL + Shift + P
Look for "Python: Select Interpreter"
Enter interpreter path...
Find...
Locate the .venv folder within LuxieBot-Framework
Open the Scripts folder inside, and then look for Python.exe
Depending on your machine, run one of the following:
-
Linux / macOS:
source .venv/bin/activate -
Windows (PowerShell):
.venv\Scripts\Activate.ps1
-
Windows (Command Prompt):
.venv\Scripts\activate.bat
Make sure your virtual environment is active before running this:
pip install --upgrade pip
pip install -r requirements.txt