WAP은 프로젝트, 팀 빌딩, 발표, 행사 등 다양한 활동이 이루어지지만
정보가 흩어져 운영 효율이 떨어지고, 활동 기록이 금방 사라지는 문제가 있었다.
WAPs는 동아리의 모든 활동을 ‘프로젝트 데이터 중심’으로 묶어주는 플랫폼으로,
WAP 구성원이 보다 편하게 탐색하고 참여하며 기록을 남길 수 있도록 돕는다.
🔍 프로젝트 탐색 & 아카이빙
- 프로젝트 설명, 썸네일, 참여 인원 등 한 학기의 프로젝트를 한 화면에서 파악할 수 있다.
- 이전 학기 작품도 쉽게 찾아볼 수 있는 데이터 기반 아카이빙 기능을 제공한다.
🗳️ 프로젝트 투표
- 투표 집계 및 학기별 인기 프로젝트를 확인할 수 있다.
👥 팀 빌딩
- 학기별 팀 편성 서비스를 제공한다.
- 지원과 모집을 우선순위 기반 알고리즘으로 팀 편성을 진행한다.
📅 캘린더 기능
- 행사, 일정, 발표 등 WAP의 모든 중요한 이벤트를 보여준다.
| 구분 | 기술 |
|---|---|
| Frontend | React, JavaScript, CSS |
| Backend | Java, Spring Boot, Spring Security, JPA |
| Database | MySQL |
| Infrastructure | Oracle Cloud, Grafana, Prometheus |
클라이언트와 서버는 각각 별도의 터미널에서 실행한다. 아래 명령은 저장소 루트에서 시작한다.
-
의존성을 설치한다.
cd client npm ci -
client/.env.local파일을 만들고 API 서버 주소를 설정한다.REACT_APP_API_BASE_URL=http://localhost:8080
-
개발 서버를 실행한다.
npm start
-
MySQL에 로컬 개발용
waps데이터베이스를 준비한다. -
server/.env파일에 아래 설정을 작성한다. 빈 값은 직접 작성한다.DB_HOST: "localhost" DB_PORT: "3306" DB_NAME: "waps" DB_USER: "" DB_PASSWORD: "" JWT_SECRET_KEY: "" KAKAO_REST_API_KEY: "" KAKAO_CLIENT_SECRET: "" SERVER_URL: "http://localhost:8080" SWAGGER_SERVER_URL: "http://localhost:8080" SPRING_PROFILES_ACTIVE: "local"
local프로필에서는 클라우드 스토리지를 사용하지 않아 이미지 업로드가 실제로 저장되지 않는다. 업로드 기능을 사용하려면oracle,aws,azure중 하나의 프로파일과 해당 스토리지 설정이 필요하다.KAKAO_REST_API_KEY와KAKAO_CLIENT_SECRET은 카카오디벨로퍼스의 동일한 REST API 키에 연결된 값을 사용한다. 운영 배포는 GitHub Actions Secrets에도 두 값을 등록해야 한다. 시크릿 변경 후 서버를 재배포한다. -
서버를 실행한다.
cd server ./gradlew bootRun
daimlee |
kangrae-jo |
g0rnn |
SH-MooDy |
1lisalozf |
2siyeon |
seizethedayunhui |
psvm203 |







