Skip to content

Offiicial Discord bot for Deakin University Cybersecurity Association (DUCA)

Notifications You must be signed in to change notification settings

duca-club/duca-sentinel

Repository files navigation

DUCA Sentinel

Version NodeJS Prettier

Official Discord bot for the Deakin University Cybersecurity Association (DUCA) Discord community server.
DUCA Sentinel provides member verification, utility commands, and entertainment features to enhance the server experience.

📂 Project Structure

duca-sentinel/
├── .husky/              # Git pre-commit hooks
│
├── dist/                # Compiled JavaScript output
│
├── emojis/              # Custom emoji assets
│
├── src/
│   ├── commands/        # Discord slash commands
│   ├── config/
│   ├── events/          # Discord event handlers
│   ├── lib/             # External libraries
│   ├── utils/           # Utility/helper functions
│   └── index.ts
│
├── .env                 # Environment variables
├── .env.exampple        # Example environment variables
├── .gitattributes       # Git config
├── .gitignore           # Git ignore
├── .gitlab-ci.yml
├── .prettierrc          # Prettier config
├── CONTRIBUTING.md
├── package-lock.json
├── package.json         # Project metadata & dependencies
├── README.md
└── tsconfig.json        # TypeScript configuration

🚀 Getting Started

Prerequisites

  • Node.js (v22 or higher)

Installation

  1. Clone the repository

    git clone https://github.com/duca-club/duca-sentinel.git
    cd duca-sentinel
  2. Install dependencies

    npm install
  3. Set up environment variables

    Create a .env file in the root directory using the provided .env.example template:

    cp .env.example .env

    Configure environment variables:

    Variable Description Required
    DISCORD_TOKEN Your Discord bot token
    GUILD_ID Discord server ID
    DEV_ROLE_ID Developer role ID for dev commands
    MEMBER_ROLE_ID Member role ID (for verification)
    NEWS_CHANNEL_ID Channel ID for cyber news posts
    SUPABASE_URL Supabase project URL
    SUPABASE_ANON_KEY Supabase anonymous API key

    Note:

    • If Supabase credentials are not provided, the following features will be disabled:
      • Member verification (/verify)
      • Event calendar (/calendar)
    • If NEWS_CHANNEL_ID is not provided, the cyber news posting feature will be disabled.
  4. Build the project

    npm run build
  5. Start the bot

    npm start

🤝 Contributing

Please refer to the contribution guideline for more details.

❤️ Acknowledgements

Developing this project is possible thanks to the following tools:

  • discord.js - Powerful Node.js module that allows interaction with the Discord API.
  • CommandKit - A discord.js handler for commands and events.
  • Supabase - Open-source Firebase alternative.

Made with ❤️ by dec1bel

About

Offiicial Discord bot for Deakin University Cybersecurity Association (DUCA)

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Contributors 2

  •  
  •