Mash-Up 커뮤니티의 디스코드를 활성화하기 위한 봇 프로젝트입니다.
- NestJS — 백엔드 프레임워크
- Necord — NestJS 위에서 Discord.js를 사용하기 위한 래퍼
- Discord.js — Discord API 클라이언트
- Supabase — 데이터베이스 (추후 연동 예정)
| 기능 | 커맨드 | 설명 | 문서 |
|---|---|---|---|
| Ping | /ping |
봇 동작 확인 | - |
| 공부시간 측정 | /공부시간 |
음성채널 입장/퇴장 시간 자동 기록 및 누적 시간 조회 | 상세 문서 |
| 공부순위 | /공부순위 |
공부 시간 상위 10명 순위표 | 상세 문서 |
src/
├── app.module.ts # 루트 모듈 (Necord 설정, 각 기능 모듈 import)
├── main.ts # 엔트리포인트
├── constants/ # 상수 정의
└── modules/ # 기능별 모듈 디렉토리
├── ping/ # /ping 슬래시 커맨드
└── study/ # 공부방 시간 측정
각 기능은 src/modules/{기능명}/ 폴더에 NestJS 모듈로 독립 개발합니다.
모듈 단위로 분리되어 있으므로 각자 작업 시 충돌을 최소화할 수 있습니다.
src/modules/{기능명}/폴더 생성{기능명}.module.ts— NestJS 모듈 정의{기능명}.commands.ts— 슬래시 커맨드 정의src/app.module.ts의imports에 모듈 추가
봇 생성, 토큰 발급, 권한 설정, 서버 초대 방법은 봇 생성 가이드를 참고하세요.
# 패키지 설치
npm install
# 환경변수 설정
cp .env.example .env
# .env 파일에 DISCORD_TOKEN 입력
# 개발 모드 실행
npm run start:dev
# 프로덕션 빌드
npm run build
npm run start:prod| 이름 | 역할 |
|---|---|
| 최재영 | Node 팀 |
| 공진성 | Node 팀 |
| 김수빈 | Node 팀 |
| 이승찬 | Node 팀 |