Projeto baseado em NodeJS para criação de um Bot para Discord. Conforme a necessidade podem ser acrescentadas novas pastas e arquivos de configuração.
// resumo básico da estrutura do projeto
// pasta `src` para centralização do projeto
├── src
// pasta das funcionalidades automáticas
├── automation
// pasta dos comandos para o bot
├── commands
// pasta de configurações gerais
// variáveis de ambiente, chaves de conexões, etc
├── config
// pasta para as classes de execução dos handler do projeto
├── controller
// arquivo handler padrão para as interações do usuário no chat
└── Interaction.ts
// pasta das funcionalidades centrais, ex.:
// modelos de dados, classes de conexões com banco de dados, etc
├── core
// pasta modelos de dados
└── model
// pasta de interfaces
└── interface
// arquivo para classe principal do projeto
// Dryscord Application - controle das inicializações, event listeners, routes, etc
├── main.ts
// arquivo de inicialização do projeto, servindo atualmente o bot
// podendo futuramente servir rotas http ou demais funcionalidades
└── server.ts
// arquivo de regras de arquivos ignorados
├── .dockerignore
├── .gitignore
// arquivo de variáveis de ambiente
├── .env
// arquivo de docker
├── docker-compose.yml
├── Dockerfile
// arquivo de configuração da aplicação nodejs
├── package.json
// arquivo de configuração do interpretador typescript
└── tsconfig.json
Variáveis de Ambiente do projeto, ex.: .env.example
# Ambiente
STAGE=<development | staging | production>
# Porta
PORT=8080
# Discord
DISCORD_ACCESS_TOKEN=<discord_token>
CLIENT_ID=<application_id>
# Canais
CHANNEL_LOGS=<channel_logs_id>
CHANNEL_WELCOME=<channel_welcome_id>
CHANNEL_BIRTHDAY=<channel_birthday_id>
# Cargos
ROLE_DEFAULT=<role_default_id>
# MongoDB
MONGODB_URI=<mongodb_uri>
MONGODB_DATABASE=<mongodb_database>
MONGODB_COLLECTION_BIRTHDATE=<collection_birthdate>
MONGODB_COLLECTION_USER_INTERACTIONS=<collection_user_interactions>
docker compose up
Rodar em ambiente de Desenvolvimento
npm run dev
Rodar a Construção do projeto
npm run build
Rodar a Inicialização
npm run start
Principais dependências do projeto em produção
Demais dependências para desenvolvimento
- tsx
- tsc-alias
- typescript
- prettier
- prettier-plugin-organize-imports
- husky
- typedoc
- eslint
- eslint-config-prettier
- commitlint
- cz-conventional-changelog
- @commitlint/config-conventional
- @commitlint/format
Para mais informações sobre o projeto, acesse a Documentação