Skip to content

jongcoding/MSG_DISCORDBOT

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔐 MJSEC_CTF PROJECT(discordbot)

이 프로젝트는 MJSEC_CTF(Capture The Flag) 대회를 위한 웹 사이트로, CTFd를 사용하지 않고 직접 개발되었습니다. 이 문서는 프로젝트의 설치 방법, 기여자 정보, 기술 스택, 협업 방식, 개발 기간, 시스템 아키텍처, ERD, 구현된 기능, 그리고 화면 구성을 설명합니다.

Technology Stack

React Spring Boot MySQL Redis Docker Docker Compose GitHub Actions Flask Gunicorn NGINX Docker Hub


목차

  1. 서버 설치 방법
  2. 기여자 표
  3. 협업 방식
  4. 개발 기간
  5. 시스템 아키텍처
  6. ERD
  7. 구현된 기능
  8. 화면 구성

📌 서버 설치 방법

아래 단계를 따라 서버를 설치하고 실행할 수 있습니다.

1. 저장소 복제

프로젝트는 백엔드, 프론트엔드, 디스코드 봇으로 나누어져 있습니다. 각 저장소를 복제합니다.

# 백엔드 저장소 복제
git clone https://github.com/MJSEC-MJU/MSG_CTF_BACK.git
cd backend

# 프론트엔드 저장소 복제
git clone https://github.com/MJSEC-MJU/MSG_CTF_WEB.git
cd frontend

# 디스코드 봇 저장소 복제
git clone https://github.com/MJSEC-MJU/MSG_DISCORDBOT.git
cd discord-bot

🙌 기여자 표

Backend Team

Profile Role Expertise
jongcoding
jongcoding
PM/DevOps Admin API, Sys Arch
minsoo0506
minsoo0506
Maintainer Maintenance
ORI-MORI
ORI-MORI
Backend Ranking API
tember8003
tember8003
Backend User API

Frontend Team

Profile Role Expertise
MEspeaker
MEspeaker
Frontend Design & UI/UX
youminki
youminki
Frontend UI/UX
jenn2i
jenn2i
Frontend User API

Discord Bot Team

Profile Bot
jongcoding
jongcoding
FIRST_bot
jiyoon77
jiyoon77
DJ_BOT
tember8003
tember8003
TICKET_bot
walnutpy
walnutpy
ROLE_bot

🔥 협업 방식

플랫폼 사용 방식
매주 금요일 2시 회의, 라이브 코딩
PR을 통해 변경사항 및 테스트 과정 확인
컨벤션, API, 회의 기록 문서화

📆 개발 기간

  • 2024.12.28 ~ 2025.01.04 : 팀 규칙 및 코딩 컨벤션 의논, 기능 정의
  • 2025.01.04 ~ 2025.01.18 : API 명세서 작성, ERD 설계
  • 2025.01.18 ~ 2025.01.25 : 프로젝트 환경 세팅, 로그인/회원가입 기능 구현
  • 2025.01.25 ~ 2025.02.01 : 문제 생성/수정/삭제 기능 구현
  • 2025.02.01 ~ 2025.02.08 : 문제 전체 조회, 문제 상세 조회, 문제 제출 기능 구현
  • 2025.02.08 ~ 2025.02.15 : 유저 프로필 조회, 리더보드(랭킹 & 그래프) 기능 구현
  • 2025.02.15 ~ 2025.02.22 : 디스코드봇 개발 및 연동
  • 2025.02.22 ~ 2025.03.01 : 관리자 기능(사용자/문제 생성, 조회, 수정, 삭제) 구현
  • 2025.03.01 ~ 2025.03.08 : 버그 수정
  • 2025.03.08 ~ : 테스트 및 코드 리펙토링

🛠️ 시스템 아키텍처

MJSECCTF drawio


📝 ERD

Image

⚙️ 구현된 기능

⭐️ USER

  • 회원가입 / 로그인 / 로그아웃 기능
  • 유저 프로필 조회 기능 (획득한 점수, 랭크, 푼 문제, 풀지 않은 문제 조회)

⭐️ CHALLENGE

  • 문제 목록 전체 조회
  • 문제 상세 조회 (문제 제목, 문제 설명, 문제 링크 조회 및 문제 파일 다운로드)
  • 문제 제출 (다이나믹 스코어링으로 랭크 갱신, 디스코드 봇 연동)

⭐️ SCORE BOARD

  • 개인 부문 랭킹 조회 (그래프 & 테이블로 조회)
  • 대학 부문 랭킹 조회 (그래프 & 테이블로 조회)

⭐️ RANKING

  • 개인 부문 랭킹 조회 (유저 ID, 점수, 티어, 순위 조회)

⭐️ ADMIN

  • 회원 조회 / 생성 / 수정 / 삭제
  • 문제 조회 / 생성 / 수정 / 삭제

👾️ DISCORD BOT

  • First-Blood BOT : 채널 멤버에게 처음 문제를 풀이한 사람 정보 전달
  • Role BOT : 채널 멤버에게 공지 사항, 대회 시작 정보, 우승자 정보 전달
  • Ticket BOT : 티켓 생성 (관리자와 개인 채팅방 생성), 티켓 방 (티켓 방 내에서 대화한 로그 txt 형태로 저장, 대화 종료) 기능
  • DJ BOT : 모든 멤버 음소거 / 음소거 해제, 노래 추가 / 재생 / 건너뛰기 / 중단, 플레이리스트 조회 기능

🖥️ 화면 구성

메인 페이지 로그인 페이지
회원가입 페이지 문제 목록 조회 페이지
Image
문제 상세 조회 페이지 스코어보드 페이지 1
Image Image
스코어보드 페이지 2 랭킹 페이지
Image
유저 프로필 페이지 관리자 로그인 페이지
회원 관리 페이지 문제 관리 페이지

🤖 DISCORD BOT

🎟️ Ticket BOT 🎭 Role BOT
🩸 First-Blood BOT 🎵 DJ BOT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%