Add generic application structure documentation in the root documentation
This commit is contained in:
+35
-1
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user