You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
cd nupjuk-backend
npm install
cp .env.example .env # 아래 환경 변수 표 참고하여 값 채우기
npm run seed # 초기 Admin 계정 + KAIST 마커 데이터 생성
npm run dev # http://localhost:3000
2. Frontend
cd nupjuk-frontend
npm install
npm run dev # http://localhost:5173
백엔드와 프론트엔드를 각각 별도 터미널에서 실행해야 합니다.
초기 Admin 계정
항목
값
ID
admin
PW
admin1234!
npm run seed로 자동 생성됩니다. 로그인 후 비밀번호를 변경하세요.
환경 변수 (nupjuk-backend/.env)
변수
필수
설명
PORT
-
서버 포트 (기본: 3000)
MONGODB_URI
O
MongoDB 연결 URI
JWT_SECRET
O
JWT 서명 시크릿
PASSWORD_PEPPER
O
비밀번호 해싱용 pepper
BASE_URL
-
이미지 URL prefix (기본: http://localhost:3000)
SMTP_HOST
-
이메일 SMTP 호스트 (기본: smtp.gmail.com)
SMTP_PORT
-
SMTP 포트 (기본: 587)
SMTP_USER
-
SMTP 계정 (없으면 이메일 미발송, 콘솔 로그만 출력)
SMTP_PASS
-
SMTP 비밀번호 / 앱 비밀번호
SMTP_FROM
-
발신자 표시 (기본: SMTP_USER)
API 엔드포인트
Public (인증 불필요)
Method
Path
설명
GET
/health
서버 상태 확인
GET
/api/markers
마커 목록 (?category=dining&query=카이마루&includeChildren=true)
GET
/api/markers/:id
마커 상세 + 자식 마커
GET
/api/markers/:id/dynamic
동적 정보 (bus / dining / event)
Auth
Method
Path
설명
POST
/api/auth/login
로그인 → JWT 반환 (7일 유효)
POST
/api/auth/register-request
매니저 가입 요청 (@kaist.ac.kr만 허용)
POST
/api/auth/forgot-password-request
비밀번호 재설정 요청 (항상 200 반환)
Manager (JWT 필요)
Method
Path
설명
GET
/api/admin/markers
전체 마커 목록 (?category=&status=&ownership=mine&query=)