diff --git a/src/main.rs b/src/main.rs index 9c575e9..9c88a82 100644 --- a/src/main.rs +++ b/src/main.rs @@ -23,7 +23,7 @@ //! To stop the database cluster at any time, run `docker compose down`. To stop it and delete the //! volumes (resetting the database), run `docker compose down -v`. //! -//! # Booting Up +//! ## Booting Up //! //! Payphone has a CLI interface that allows you to pass the bot token and database URL as CLI //! arguments. To get all possible arguments, run the following command: @@ -40,6 +40,40 @@ //! //! All environment variables are prefixed with `PAYPHONE_` and can be used to override the CLI //! arguments. +//! +//! # Framework +//! +//! Payphone has a custom framework that allows you to create commands, components, and event +//! handlers easily. The framework is designed to be modular and extensible, allowing you to add +//! new features and commands without modifying the core codebase. The documentation for the +//! framework is all in the [`framework`] module. +//! +//! # Database +//! +//! The database Payphone runs on is ScyllaDB, a high-performance NoSQL database compatible with +//! Apache Cassandra. For documentation on how to interact with the database, check the +//! [`database`] module's documentation. +//! +//! # Application Code +//! +//! Payphone's application code is under the [`groups`] module. It contains all commands, events, +//! embeds, and other configurations for the bot grouped in submodules (e.g. [`groups::calls`], +//! [`groups::about`], etc.), all which can be found at the [`groups`] module's documentation. +//! +//! Each submodule contains files like `commands.rs`, `events.rs`, `embeds.rs`, and `components.rs` +//! that define the commands, events, embeds, and components for that group. Some common file names +//! are: +//! +//! - `commands.rs`: Contains the commands for the group. +//! - `events.rs`: Contains the event handlers for the group. +//! - `embeds.rs`: Contains the embeds for the group. +//! - `components.rs`: Contains the components for the group (action rows, buttons, soon also +//! select menus). +//! +//! Always try to follow the same structure and patterns as the existing code to maintain +//! consistency and readability. +//! +//! More documentation about each group can be found in the respective submodule's documentation. use clap::Parser; use twilight_gateway::Intents;