# Aurora > A comprehensive, feature-rich Discord RPG bot built with modern technologies. ![Version](https://img.shields.io/badge/version-1.0.0-blue.svg) ![Bun](https://img.shields.io/badge/Bun-1.0+-black) ![Discord.js](https://img.shields.io/badge/Discord.js-14.x-5865F2) ![Drizzle ORM](https://img.shields.io/badge/Drizzle_ORM-0.30+-C5F74F) ![PostgreSQL](https://img.shields.io/badge/PostgreSQL-16-336791) Aurora is a powerful Discord bot designed to facilitate RPG-like elements within a Discord server. It features a robust economy, class system, inventory management, quests, and more, all built on top of a high-performance stack using Bun and Drizzle ORM. ## ✨ Features * **Class System**: Users can join different classes. * **Economy**: Complete economy system with balance, transactions, and daily rewards. * **Inventory & Items**: sophisticated item system with rarities, types (Material, Consumable, etc.), and inventory management. * **Leveling**: XP-based leveling system to track user activity and progress. * **Quests**: Quest system with requirements and rewards. * **Trading**: Secure trading system between users. * **Lootdrops**: Random loot drops in channels to engage users. * **Admin Tools**: Administrative commands for server management. ## 🛠️ Tech Stack * **Runtime**: [Bun](https://bun.sh/) * **Framework**: [Discord.js](https://discord.js.org/) * **Database**: [PostgreSQL](https://www.postgresql.org/) * **ORM**: [Drizzle ORM](https://orm.drizzle.team/) * **Validation**: [Zod](https://zod.dev/) * **Containerization**: [Docker](https://www.docker.com/) ## 🚀 Getting Started ### Prerequisites * [Bun](https://bun.sh/) (latest version) * [Docker](https://www.docker.com/) & Docker Compose ### Installation 1. **Clone the repository** ```bash git clone cd aurora ``` 2. **Install dependencies** ```bash bun install ``` 3. **Environment Setup** Copy the example environment file and configure it: ```bash cp .env.example .env ``` Edit `.env` with your Discord bot token, Client ID, and database credentials. > **Note**: The `DATABASE_URL` in `.env.example` is pre-configured for Docker. 4. **Start the Database** Run the database service using Docker Compose: ```bash docker compose up -d db ``` 5. **Run Migrations** ```bash bun run migrate ``` OR ```bash bun run db:push ``` ### Running the Bot **Development Mode** (with hot reload): ```bash bun run dev ``` **Production Mode**: Build and run with Docker (recommended): ```bash docker compose up -d app ``` ## 📜 Scripts * `bun run dev`: Start the bot in watch mode. * `bun run generate`: Generate Drizzle migrations. * `bun run migrate`: Apply migrations (via Docker). * `bun run db:push`: Push, schema to DB (via Docker). * `bun run db:studio`: Open Drizzle Studio to inspect the database. * `bun test`: Run tests. ## 📂 Project Structure ``` ├── src │ ├── commands # Slash commands │ ├── events # Discord event handlers │ ├── modules # Feature modules (Economy, Inventory, etc.) │ ├── db # Database schema and connection │ └── lib # Shared utilities ├── drizzle # Drizzle migration files ├── config # Configuration files └── scripts # Utility scripts ``` ## 🤝 Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## 📄 License This project is licensed under the MIT License.