다시: 은퇴한 시니어를 위한 긱 워킹 채용 플랫폼의 백엔드 리포지토리
- 프로젝트 클론
git clone https://github.com/Gamja-dori/Gamja-Backend.git
cd Gamja-Backend/dasi- 가상환경 설정
python -m venv venv
venv\Scripts\activate- 필수 패키지 설치
pip install -r requirements.txt-
환경 변수 설정
settings.py와 같은 폴더 안에
.env파일을 생성하고 환경 변수를 설정합니다.
NAME=
DB_USER=
PASSWORD=
HOST=
PORT=
SECRET_KEY=
EC2_PUBLIC_ADDR=
OCR_API_URL=
OCR_SECRET_KEY=
GPT_SECRET_KEY=
KAKAO_SECRET_KEY=
KAKAO_REST_API_KEY=- 실행
python manage.py runserver| Clova OCR | OpenAI | ElasticSearch |
|---|---|---|
| Clova OCR을 이용해서 기존 이력서로부터 경력사항, 학력사항 정보를 추출했습니다. | OpenAI를 이용하여 기존 이력서로부터 추출된 정보를 json 형식으로 포맷팅했습니다. 또한 작성한 이력서를 바탕으로 전문가 소개를 자동 생성했습니다. | ElasticSearch를 검색 엔진으로 이용하여 데이터 역색인 구조를 바탕으로 기업의 인재 검색 속도를 높였습니다. |
dasi
├─dasi # 프로젝트 기본 세팅
│ ├─ .env
│ ├─ asgi.py
│ ├─ settings.py
│ ├─ urls.py
│ ├─ wsgi.py
│ ├─ __init__.py
│ └─ __pycache__
├─ users # 사용자 앱
| ├─ admin.py
| ├─ apps.py
| ├─ migrations
| ├─ models.py
| ├─ serializers.py
| ├─ tests.py
| ├─ urls.py
| ├─ views.py
| ├─ __init__.py
| └─ __pycache__
├─ resume # 이력서 앱
│ ├─ admin.py
│ ├─ apps.py
│ ├─ create_senior_intro.py
│ ├─ migrations
│ ├─ models.py
│ ├─ resume_ocr.py
│ ├─ serializers.py
│ ├─ tests.py
│ ├─ urls.py
│ ├─ views.py
│ ├─ __init__.py
│ └─ __pycache__
├─ recommend # 인재 추천 앱
│ ├─ admin.py
│ ├─ apps.py
│ ├─ migrations
│ ├─ models.py
│ ├─ recommendation.py
│ ├─ serializers.py
│ ├─ tests.py
│ ├─ urls.py
│ ├─ views.py
│ ├─ __init__.py
│ └─ __pycache__
├─ suggest # 채용 제안 앱
| ├─ admin.py
| ├─ apps.py
| ├─ migrations
| ├─ models.py
| ├─ serializers.py
| ├─ tests.py
| ├─ urls.py
| ├─ views.py
| ├─ __init__.py
| └─ __pycache__
├─ manage.py # 도커 및 기타 패키지 설정파일
├─ db.sqlite3
├─ requirements.txt
├─ docker-compose.yml
├─ docker-compose.debug.yml
├─ Dockerfile
├─ nginx
│ ├─ Dockerfile
│ └─ nginx.conf
├─ elasticsearch
│ └─ Dockerfile
└─ scripts
└─ rebuild.sh
각 기능은 https://api.dasi-expert.com/swagger 에서 테스트해보실 수 있습니다.
- 사용자 정보 생성, 조회, 수정, 삭제
- jwt 토큰 기반 로그인 상태 관리
- 시니어 전문가 리뷰 관리
-
SeniorUserCreateView,EnterpriseUserCreateView시니어, 기업 사용자 생성
-
LoginView,LogoutView사용자 로그인, 로그아웃
-
UserView사용자 정보 조회, 수정, 삭제
-
UserSecretView채용 성사 후 사용자의 개인정보 조회
-
ProfileImageView사용자의 프로필 사진 조회 및 변경
-
TokenObtainPairView,TokenRefreshViewjwt 토큰 관리
-
CheckDuplicateView중복된 사용자 id인지 확인
-
CreateReviewView,GetReviewListView,DeleteReviewView시니어 사용자의 리뷰 등록, 목록 조회, 삭제
- 이력서 생성 및 세부 정보 생성, 조회, 수정, 삭제
- 기존 이력서에서 OCR로 텍스트 추출하여 반환
- 기본 이력서 설정, 이력서 복제, 이력서 목록 조회
-
CreateResumeAPIView,GetResumeAPIView,EditResumeAPIView,DeleteResumeAPIView이력서 생성, 조회, 수정, 삭제
-
SubmitResumeAPIView인재풀에 이력서 등록
-
SetDefaultResumeAPIView기본 이력서 설정
-
CreateResumeDetailAPIView,DeleteResumeDetailAPIView이력서 상세 항목 생성 및 삭제
-
GetResumeListAPIView이력서 목록 조회
-
ChangeResumeTitleAPIView이력서 제목 변경
-
ExtractPriorResumeAPIView기존 이력서에서 경력사항 추출
-
CreateSeniorIntroAPIView작성한 이력서 바탕으로 전문가 소개 생성
-
CopyResumeAPIView기존 이력서 복제
- 인재 추천 AI를 거쳐 추천된 이력서 목록 반환
- 인재 목록 필터링
- 이력서 상세 조회
-
MainView인재 추천 메인 화면에서 지금 떠오르는 인재 조회 (조회수 높은 순)
-
SearchView인재 추천 및 필터링
-
ResumeDetailView이력서 상세 조회
- 채용 제안 생성 및 관리
- 카카오페이와 연동하여 매칭 수수료 결제
- 채용 성사 여부 및 결제 여부 조회
-
CreateSuggestView기업 사용자가 채용 제안 전송
-
GetSeniorListView,GetInProgressSeniorListView,GetCompletedSeniorListView기업 사용자의 조건별 채용 제안 목록 조회 (전체, 진행 중, 완료됨)
-
GetSuggestDetailView채용 제안의 상세 내용 조회
-
GetNotificationCountView새로운 알림 개수 조회
-
GetEnterpriseNotificationsView기업 사용자의 알림창에서 채용 제안 목록 조회
-
GetSeniorNotificationsView시니어 사용자의 알림창에서 채용 제안 목록 조회
-
PatchNotificationView채용 제안 열람 여부 갱신
-
GetProgressView,UpdateProgressView채용 제안의 상태 조회 및 변경
- 상태 목록: 'is_pending', 'is_declined', 'is_cancelled', 'is_paid', 'is_accepted', 'is_reviewed'
-
PaymentRequestView,PaymentApproveView결제 요청 및 승인
-
GetIsPaidView결제 완료 여부 조회



