Skip to content

89CF/discord-form-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Discord Form Bot Banner

🚀 Discord Form Bot

A highly customizable and interactive form submission system for Discord communities.

License Node Version Discord.js Issues

FeaturesInstallationUsage GuideContributing


🌟 About The Project

Discord Form Bot transforms how you manage applications, support requests, and feedback in your server. Say goodbye to messy DMs and hello to a streamlined, fully in-Discord experience!

With an intuitive Control Panel, admins can create unlimited forms, review submissions with pre-configured templates, and even automatically invite approved applicants to private target servers.


✨ Features

  • 🎯 Multi-Form Support — Create an unlimited number of forms customized for different purposes.
  • 🔘 Persistent Buttons — Provide users with interactive, always-on buttons to trigger forms.
  • 🕹️ Admin Control Panel — Manage everything directly in Discord (/panel) using intuitive modals and dropdowns.
  • ✉️ Review System — Approve or reject with customized (or pre-configured) messages delivered directly to the user's DMs.
  • 🔗 Auto-Invite Architecture — Automatically send unique, single-use invite links to target servers upon approval.
  • 🛡️ Spam Protection — Set submission limits to prevent spam (Once vs. Unlimited).
  • 🔔 Smart Notifications — Tag specific roles or users when a new submission arrives.
  • 💾 SQLite Database — Robust storage utilizing SQLite with automatic migrations.

🛠️ Tech Stack


🚀 Getting Started

Follow these instructions to get a copy of the bot up and running on your local machine or server.

Prerequisites

Note: The bot requires the Guilds, Guild Messages, and Direct Messages intents, along with Send Messages, Embed Links, Manage Messages, and Create Instant Invite permissions.

Installation

  1. Clone the repository:

    git clone https://github.com/89CF/discord-form-bot.git
    cd discord-form-bot
  2. Install dependencies:

    npm install
  3. Configure Environment Variables: Rename .env.example to .env and fill in your details:

    DISCORD_TOKEN=your_bot_token_here
    CLIENT_ID=your_client_id_here
    DATABASE_PATH=./data/bot.db
    ALLOWED_GUILD_ID=your_server_id_here  # Optional: Restrict bot to a specific server
  4. Deploy Application (Slash) Commands:

    npm run deploy
  5. Start the Bot:

    npm start

📖 Usage

The Admin Panel

To access the core of the bot, type:

/panel

(Only users with Admin permissions can use this command.)

From the interactive dashboard, you can:

  • ➕ Create a New Form: Setup title, description, and up to 5 custom questions.
  • 📝 Manage Forms: Edit questions, set target Auto-Invite servers, configure default review messages.
  • ⚙️ Settings: Define the Admin Channel where submissions land, and configure ping notifications.

The Auto-Invite Workflow

  1. Go to Manage Forms -> Edit -> Set Target Server.
  2. Input the Discord Server ID of the destination server (the bot must be in that server too).
  3. Every time you click Approve on a submission, the bot creates a temporary, single-use invite to that target server and DMs it to the user!

📂 Project Structure

discord-form-bot/
├── src/
│   ├── commands/          # Slash command definitions
│   ├── handlers/          # Event & Interaction routing
│   ├── panels/            # UI builders for Discord Modals/Embeds
│   ├── database/          # SQLite Queries & Migrations
│   ├── utils/             # Helpers, Embed definitions, Validators
│   └── index.js           # Main Entry Point
├── data/
│   └── bot.db             # Auto-generated SQLite Database
├── config.json            # Base configuration limits
└── package.json

🤝 Contributing

Contributions make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

🛡️ License

Distributed under the MIT License. See LICENSE for more information.


Built with ❤️ by 89CF

About

A highly customizable and interactive multi-form submission system for Discord communities, built with Discord.js.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors