Skip to content

AID 지옥캠프 웹서버 (A web server for the AID JiokCamp competition)

Notifications You must be signed in to change notification settings

PNU-AID/jiok-camp-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

129 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

👉 English Readme 👈

지옥캠프 웹 서버

AID 내부에서 개최하는 지옥캠프 대회의 진행 사이트와 이전 대회의 모델을 시연해볼 수 있는 기능을 가진 웹 프로젝트입니다.

기능

  • 지옥캠프2 대회 진행 파트
    • 참가한 팀들이 로그인하여 정답을 제출, 채점된 점수가 랭킹에 반영되어 나타납니다.
    • 어드민은 팀 계정을 생성, 관리 및 감사가 가능합니다.
  • 지옥캠프1 우수 모델 시연 파트 (Original Repository)
    • 지옥캠프1(맥도날드 리뷰 데이터 별점 예측)의 우수 모델을 웹에서 시연해 볼 수 있도록 개발하였습니다.

요구사항

  • Frontend + backend(지옥캠프2 채점) (package.json)

      Node.js v20.18.0
    
      "@auth/prisma-adapter": "^2.7.4",
      "@prisma/client": "^6.1.0",
      "jsonwebtoken": "^9.0.2",
      "next": "15.1.3",
      "next-auth": "^5.0.0-beta.25",
      "react": "^19.0.0",
      "react-dom": "^19.0.0",
      "react-icons": "^5.4.0"
    
  • Backend (pip_requirements.txt)

      Python 3.11.4
    
      celery==5.4.0
      Django==5.1
      django-cors-headers==4.6.0
      djangorestframework==3.15.2
      gevent==24.11.1
      lightning==2.4.0
      redis==5.2.0
      torch==2.6.0
      transformers==4.46.3
    
  • Infra

    Docker
    docker compose
    

시작하기

  1. ./ai-web-frontcsv 폴더 생성 후 csv 폴더 안에 solution.csv, 정답 파일 배치
  2. pytorch model 파일 다운로드 link
  3. ./ai-web-back/api/ai_web_pytorchmodel.pth, torch 모델 배치
  4. Root에 환경변수 파일 세팅 .env. 환경변수 내용은 아래 환경변수 섹션 참조
  5. 아래 명령어 실행
docker-compose up -d

환경변수

  • realese (배포환경)
# @/.env

# For Frontend Container
DATABASE_URL="postgres://your_db_user:your_db_password!@postgres:5432/your_dbname_for_nextjs"
# example!! 절대 똑같은 AUTH_SECRET으로 배포하지 마시오.
# npx auth secret
# 위 명령어로 새로 발급받아 사용하는 것을 추천
AUTH_SECRET="JbeFKmocHu/YBitxM9SpYQZNJZOhBsxOhLAwfUV9C48="
NEXTAUTH_URL="https://pnu-aid.com"
AUTH_TRUST_HOST="true"
NEXT_PUBLIC_BACKEND_URL="https://api.pnu-aid.com"

# For Backend Container
SECRET_KEY='django-insecure-your_django_insecure'
CORS_ORIGIN_WHITELIST_FROM='https://api.pnu-aid.com'
CORS_ORIGIN_WHITELIST_TO='https://pnu-aid.com'
HOST_DOMAIN='api.pnu-aid.com'
CLIENT_DOMAIN='pnu-aid.com'

# For DB Container
DATABASES_NAME=your_dbname_for_django
DATABASES_USER=your_db_user
DATABASES_PASSWORD=your_db_password
DATABASES_HOST=postgres
DATABASES_PORT=5432

# For Redis Container
REDIS_PASSWORD=your_redis_password
REDIS_URL=redis

프로젝트 구조

폴더구조

📁.github ─ 📁workflows ─ 📜ci-cd.yml # Github Actions CI/CD
📁ai-web-back # 지옥캠프1 모델 시연 파트 Django Backend (Django REST API, Torch)
📁ai-web-front # 프로젝트 전체 Next.js Frontend + 지옥캠프2 대회 파트 Next.js Backend
📁documents # 프로젝트에 설명에 필요한 문서, 이미지 폴더
📜.gitignore
📜appspec.yml # AWS Code Deploy 관련 설정 파일
🐋compose.yaml # Docker Compose 파일
📜deploy.sh # AWS Code Deploy 스크립트
📜README.md

프로젝트 흐롬

프로젝트 흐름

시스템 구조

시스템구조

개발 로그

About

AID 지옥캠프 웹서버 (A web server for the AID JiokCamp competition)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •