Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
d315f04
feat: main layout 분리
hyunwoo0081 Nov 4, 2025
03b9836
refactor(font): 정적 리소스 폰트 캐싱 추가
sins051301 Nov 4, 2025
2374c8a
Merge remote-tracking branch 'refs/remotes/origin/feat/mainpage' into…
sins051301 Nov 4, 2025
e62b0cd
feat: 레이아웃 적용
hyunwoo0081 Nov 4, 2025
cad38e5
Merge pull request #5 from vibe-cleaner/feat/mainpage
hyunwoo0081 Nov 4, 2025
e7d3c43
Merge remote-tracking branch 'refs/remotes/origin/develop' into refac…
sins051301 Nov 4, 2025
fcb18b6
refactor(font): 폰트 캐싱 추가 및 폴더 구조 변경
sins051301 Nov 4, 2025
64b3ed8
refactor: 대학 컴포넌트 분리
sins051301 Nov 5, 2025
b56bdea
refactor(university): 학교 관련 페이지 레이아웃 템플릿으로 모두 변경
sins051301 Nov 6, 2025
c10ddf0
refactor: 코드 중복 제거
hyunwoo0081 Nov 6, 2025
29c3473
refactor(university): 사이드바 스타일 통일
sins051301 Nov 6, 2025
bf1c4c3
Merge pull request #7 from vibe-cleaner/refactor/login-split
sins051301 Nov 6, 2025
aac3e36
refactor(style): 대학 chip 스타일 통일
sins051301 Nov 6, 2025
5337834
Merge remote-tracking branch 'origin/develop' into develop
sins051301 Nov 6, 2025
e896189
refactor(style): 대학 사이드바 수정
sins051301 Nov 7, 2025
63759c9
refactor(tailwindcss): 테일윈드 리소스 압축
sins051301 Nov 7, 2025
34b20f8
refactor(tailwindcss): 깃이그노어 추가
sins051301 Nov 7, 2025
90ba9f9
feat: csr 적용 - script type module
hyunwoo0081 Nov 7, 2025
d248ff6
refactor: script 모듈화
hyunwoo0081 Nov 10, 2025
66b65e7
Merge branch 'develop' into feat/csr
hyunwoo0081 Nov 10, 2025
414e86f
Merge pull request #9 from vibe-cleaner/feat/csr
hyunwoo0081 Nov 10, 2025
65b574a
refactor: script 모듈화
hyunwoo0081 Nov 10, 2025
2526175
Merge pull request #13 from vibe-cleaner/refactor/html-format
hyunwoo0081 Nov 10, 2025
318a6b8
fix: url.js base에 추가
hyunwoo0081 Nov 10, 2025
f7a8080
refactor(url): 중복 요청 방지
sins051301 Nov 10, 2025
fbce102
Merge pull request #14 from vibe-cleaner/refactor/nav-user
sins051301 Nov 10, 2025
906e42b
feat: api document
hyunwoo0081 Nov 10, 2025
df95c74
feat: add caching code
hyunwoo0081 Nov 13, 2025
05af542
feat: api document
hyunwoo0081 Nov 10, 2025
3fbb65d
feat: add caching code
hyunwoo0081 Nov 13, 2025
ff192e1
feat: add saveData comment
hyunwoo0081 Nov 13, 2025
2ac06cc
feat: 캐싱 요청 함수 추가
sins051301 Nov 13, 2025
e67074f
feat: add AsyncListener
hyunwoo0081 Nov 13, 2025
3d3e6f5
(fix) signup html 중국 주소 자동완성 API받아오는 오류 수정
HD152521 Nov 14, 2025
6a893a4
Merge branch 'develop' into refac/#44
HD152521 Nov 14, 2025
54dc839
(fix) 설문조사 답변 확인 페이지 디자인 수정
HD152521 Nov 14, 2025
c1467b9
feat: add test code (jest)
hyunwoo0081 Nov 14, 2025
27f27d8
(fix) 유학원 지역 선택 API 호출로 일괄 변경
HD152521 Nov 14, 2025
9f2e771
feat: fix CacheManager freezing, 테스트 가능한 구조로 변경
hyunwoo0081 Nov 14, 2025
dfb8086
feat: rollup 번들링 추가
hyunwoo0081 Nov 14, 2025
328dbdd
feat: rollup 번들링 패키지 이름 변경
hyunwoo0081 Nov 15, 2025
74d2578
feat: robot.txt 생성
hyunwoo0081 Nov 15, 2025
ac906e0
(fix) html respons 설정 완료
HD152521 Nov 17, 2025
eaf561c
Merge pull request #45 from HD152521/refac/#44
HD152521 Nov 17, 2025
bfbd037
(rafactor) 학교 게시판 유형을 기존 컨트롤러에서 구분하는 것이아니라 handler를 만들어서 책임 전가
HD152521 Nov 17, 2025
1c054a6
Merge pull request #15 from vibe-cleaner/feat/caching
hyunwoo0081 Nov 17, 2025
e997237
Merge branch 'fix/merge' into develop
sins051301 Nov 17, 2025
59b7142
Merge branch 'develop' into fix/conflict
hyunwoo0081 Nov 17, 2025
d1dd659
feat: base, script setting 1
hyunwoo0081 Nov 17, 2025
c6b83b1
feat: base, script setting
hyunwoo0081 Nov 17, 2025
1b50281
fix: api version setting
hyunwoo0081 Nov 17, 2025
e142f0e
fix: api bug fix
hyunwoo0081 Nov 17, 2025
ad87fbb
Merge pull request #47 from vibe-cleaner/develop
HD152521 Nov 18, 2025
a31f3bd
(fix) post 관련 백엔드 코드 수정 중
HD152521 Nov 18, 2025
9979af9
Merge pull request #17 from vibe-cleaner/fix/conflict
hyunwoo0081 Nov 18, 2025
165211c
Merge pull request #48 from vibe-cleaner/develop
HD152521 Nov 18, 2025
85a1b65
(fix) 프론트 작업 호환 되게 수정
HD152521 Nov 20, 2025
52b11ae
(fix) merge devleop success
HD152521 Nov 20, 2025
39adf63
(fix) 공지사항, 파일 양식 게시판 백엔드 로직 수정
HD152521 Nov 20, 2025
54484e1
(fix) 회원가입할 때 기존 유학원 정보 그대로 사용할 수 있도록 페이지 구성
HD152521 Nov 20, 2025
d7bdb18
(fix) 회원 가입 페이지 오류 수정 및 기존 유학원 로그인 구현 자잘한 버그 확인 필요
HD152521 Nov 20, 2025
6dcb6aa
(fix) 파일, 공지사항 게시판 검색 추가
HD152521 Nov 22, 2025
525588f
(fix) 전체 검색 추가
HD152521 Nov 22, 2025
0fa06f7
(fix) 소개용 께시판 request Dto생성 템플릿화 준비중
HD152521 Nov 25, 2025
96bffe3
(fix) 소개 수정 페이지 구현 완료/ 데이터 보내는거 확인 -> spring에서 받아오고 저장하는거 구현 중
HD152521 Nov 28, 2025
09994c6
(fix) intro 게시글 템플릭솨
HD152521 Dec 3, 2025
e24b241
(fix) 설문조사 로그 문항별 검색 삭제
HD152521 Dec 3, 2025
31f896d
(fix) 학사, 석/박사 과 검색하는 기능 추가
HD152521 Dec 3, 2025
640b180
(fix) 유학원 Default img 설정하기
HD152521 Dec 4, 2025
547b402
(fix) school img url 받아서 보여주는 걸로 변경
HD152521 Dec 4, 2025
a9fed83
(fix) profile주소로 이동하는 걸로 변경 그전에 프론트 바꿔주면서 바뀐듯,
HD152521 Dec 4, 2025
51265df
(fix) 프로필 기능 수정 완료
HD152521 Dec 5, 2025
d70cac3
Merge pull request #49 from HD152521/refac/#46
HD152521 Dec 5, 2025
83660c0
Update ci.yml
HD152521 Dec 5, 2025
38705ab
(fix) dockerfile 변경
HD152521 Dec 5, 2025
2582754
Merge branch 'develop' of https://github.com/HD152521/CooperationCent…
HD152521 Dec 5, 2025
6b64af8
Ci update
HD152521 Dec 5, 2025
08b9153
(fix) school별로 폴더 삭제
HD152521 Dec 8, 2025
c73813b
Merge branch 'develop' of https://github.com/HD152521/CooperationCent…
HD152521 Dec 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 28 additions & 33 deletions .github/workflows/dockerhub-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: docker-ci

on:
push:
branches: [ "develop", "main" ] # develop: 빌드만, main: 빌드+푸시
branches: [ "develop", "main" ]
pull_request:
branches: [ "main" ] # main 대상 PR 생성/업데이트 시 빌드+푸시
branches: [ "main" ]

jobs:
build-and-push:
Expand All @@ -17,67 +17,62 @@ jobs:
- name: Checkout source
uses: actions/checkout@v4

# Node 설치 (JS/CSS 빌드를 위한)
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"

- name: Install npm dependencies
run: |
if [ -f package.json ]; then
npm install
fi

# JDK 설치
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
cache: gradle

# Spring Boot 빌드 (JS/CSS 포함)
- name: Build Spring Boot JAR
run: ./gradlew clean bootJar --no-daemon

- name: Docker metadata (이미지 태그 자동 생성)
# 🤝 Dockerfile에 COPY app.jar 하기 위해 파일명 통일
- name: Prepare JAR for docker build
run: cp build/libs/*.jar app.jar

# Docker metadata
- name: Docker metadata
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}
tags: |
# 공통
type=sha,format=short
# 브랜치 push 시 (develop/main)
type=ref,event=branch
# PR 시 (main 대상)
type=ref,event=pr
# main push일 때 latest 추가
type=raw,value=latest,enable=${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}

# ✅ DockerHub 로그인: main push 또는 main 대상 PR에서만
# 로그인 (main push 또는 main PR일 때만)
- name: Login to DockerHub
if: github.ref == 'refs/heads/main' || (github.event_name == 'pull_request' && github.base_ref == 'main')
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

# 🚫 Alibaba Cloud ACR 관련 단계 (나중 대비용 주석 유지)
# - name: Login to Alibaba Cloud ACR
# if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.base_ref == 'main')
# uses: docker/login-action@v3
# with:
# registry: cooperation-center-registry.cn-beijing.cr.aliyuncs.com
# username: ${{ secrets.ACR_USERNAME }}
# password: ${{ secrets.ACR_PASSWORD }}

# - name: (옵션) Build & Push to ACR
# uses: docker/build-push-action@v6
# with:
# context: .
# push: true
# tags: |
# cooperation-center-registry.cn-beijing.cr.aliyuncs.com/${{ secrets.ACR_NAMESPACE }}/${{ github.event.repository.name }}:${{ github.sha }}
# cooperation-center-registry.cn-beijing.cr.aliyuncs.com/${{ secrets.ACR_NAMESPACE }}/${{ github.event.repository.name }}:pr-${{ github.event.pull_request.number }}
# cooperation-center-registry.cn-beijing.cr.aliyuncs.com/${{ secrets.ACR_NAMESPACE }}/${{ github.event.repository.name }}:latest

# ✅ Build & Push (조건부 푸시)
- name: Build and (conditionally) Push Docker image (Docker Hub)
# 이미지 빌드 & 푸시
- name: Build and Push Docker Image
uses: docker/build-push-action@v6
with:
context: .
# develop push: false (빌드만)
# main push: true (푸시)
# main 대상 PR: true (푸시)
push: ${{ (github.event_name == 'push' && github.ref == 'refs/heads/main') || (github.event_name == 'pull_request' && github.base_ref == 'main') }}
push: ${{ (github.event_name == 'push' && github.ref == 'refs/heads/main')
|| (github.event_name == 'pull_request' && github.base_ref == 'main') }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,4 @@ out/

### VS Code ###
.vscode/
/node_modules
15 changes: 7 additions & 8 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
# --- build stage ---
FROM eclipse-temurin:17-jdk AS build
WORKDIR /src
COPY . .
RUN ./gradlew clean bootJar --no-daemon

# --- run stage ---
# --- run stage only ---
FROM eclipse-temurin:17-jre

WORKDIR /app
COPY --from=build /src/build/libs/*.jar app.jar

# GitHub Actions에서 만든 jar 파일을 COPY
COPY app.jar app.jar

ENV JAVA_OPTS="-XX:MaxRAMPercentage=75"
EXPOSE 8080

HEALTHCHECK --interval=30s --timeout=3s --retries=3 \
CMD wget -qO- http://127.0.0.1:8080/check/health || exit 1

USER 1000
ENTRYPOINT ["sh","-c","java $JAVA_OPTS -jar app.jar"]
88 changes: 88 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# API Documentation

이 문서는 Cooperation Center 프로젝트의 API를 역할과 기능 중심으로 정리합니다.

## 1. 사용자 / 인증 (User / Authentication)

| 기능 | HTTP Method | API Endpoint | 정의 위치 (Controller) | 프론트엔드 사용처 |
| --- | --- | --- | --- | --- |
| 회원가입 | `POST` | `/api/v1/member/signup` | `MemberRestController.java` | `homepage/user/signup.html` |
| 아이디(이메일) 중복 확인 | `GET` | `/api/v1/member/check-id` | `MemberRestController.java` | `homepage/user/signup.html` (동적 URL) |
| 로그인 | `POST` | `/api/v1/member/login` | `MemberRestController.java` | `homepage/user/login.html` |
| 로그아웃 | `POST` | `/api/v1/member/logout` | `MemberRestController.java` | - |
| 토큰 재발급 | `POST` | `/api/v1/member/refresh` | `MemberRestController.java` | - |
| 비밀번호 재설정 이메일 발송 | `POST` | `/api/v1/member/reset/email` | `MemberRestController.java` | `homepage/user/forgetPassword.html` |
| 비밀번호 재설정 | `POST` | `/api/v1/member/reset/password` | `MemberRestController.java` | `homepage/user/resetPassword.html` |
| 회원 정보 수정 | `PATCH` | `/api/v1/profile/member` | `MemberProfileRestController.java` | `homepage/user/member/profile.html` |
| 유학원 정보 수정 | `PATCH` | `/api/v1/profile/agency` | `MemberProfileRestController.java` | `homepage/user/member/profile.html` |
| 사업자등록증 수정 | `PATCH` | `/api/v1/profile/businessCert` | `MemberProfileRestController.java` | `homepage/user/member/profile.html` |
| 유학원 대표사진 수정 | `PATCH` | `/api/v1/profile/agencyPicture` | `MemberProfileRestController.java` | `homepage/user/member/profile.html` |
| **[관리자]** 로그인 페이지 | `GET` | `/admin/login` | `MemberAdminController.java` | - |
| **[관리자]** 로그인 | `POST` | `/api/v1/admin/login` | `MemberAdminRestController.java` | `adminpage/user/login.html` |
| **[관리자]** 로그아웃 | `GET` | `/admin/logout` | `MemberAdminController.java` | - |
| **[관리자]** 로그인 기록 조회 | `GET` | `/api/v1/admin/login/log` | `MemberAdminRestController.java` | `adminpage/user/index.html` |
| **[관리자]** 회원가입 승인 | `POST` | `/api/v1/admin/accept/{memberEmail}` | `MemberAdminRestController.java` | `adminpage/user/index.html` |
| **[관리자]** 회원가입 보류 | `POST` | `/api/v1/admin/pending/{memberEmail}` | `MemberAdminRestController.java` | - |
| **[관리자]** 회원 상세 정보 조회 | `GET` | `/api/v1/admin/detail/{memberEmail}` | `MemberAdminRestController.java` | `adminpage/user/member/manageUser.html` |

## 2. 학생 데이터 (Student Data)

| 기능 | HTTP Method | API Endpoint | 정의 위치 (Controller) | 프론트엔드 사용처 |
| --- | --- | --- | --- | --- |
| **[관리자]** 모든 학생 정보 조회 | `GET` | `/api/v1/admin/students` | `StudentAdminRestController.java` | - |
| **[관리자]** 학생 상세 정보 조회 | `GET` | `/api/v1/admin/students/{id}` | `StudentAdminRestController.java` | `adminpage/user/student/studentList.html` |
| **[관리자]** 학생 정보 Excel 다운로드 | `GET` | `/api/v1/admin/students/download` | `StudentAdminRestController.java` | `adminpage/user/student/studentList.html` |

## 3. 설문조사 (Survey)

| 기능 | HTTP Method | API Endpoint | 정의 위치 (Controller) | 프론트엔드 사용처 |
| --- | --- | --- | --- | --- |
| 설문조사 목록 조회 | `GET` | `/api/v1/survey/list` | `SurveyRestController.java` | `adminpage/user/student/studentList.html` |
| 설문조사 상세 조회 | `GET` | `/{surveyId}` | `SurveyRestController.java` | `homepage/user/survey/survey-answer.html` |
| 설문조사 답변 제출 | `POST` | `/api/v1/survey/answer` | `SurveyRestController.java` | `homepage/user/survey/survey-answer.html` |
| QR 코드 생성 | `GET` | `/api/v1/survey/qr` | `SurveyRestController.java` | `homepage/user/survey/survey-list-admin.html` |
| **[관리자]** 설문조사 생성 | `POST` | `/api/v1/survey/admin/make` | `SurveyRestController.java` | `homepage/user/survey/survey-make.html` |
| **[관리자]** 설문조사 수정 | `PATCH` | `/api/v1/survey/admin/edit` | `SurveyRestController.java` | `homepage/user/survey/survey-make.html` |
| **[관리자]** 설문조사 삭제 | `DELETE` | `/api/v1/survey/admin/{surveyId}` | `SurveyRestController.java` | `homepage/user/survey/survey-list-admin.html` |
| **[관리자]** 설문조사 복사 | `POST` | `/api/v1/survey/admin/copy/{surveyId}` | `SurveyRestController.java` | `homepage/user/survey/survey-list-admin.html` |
| **[관리자]** 설문조사 템플릿 조회 | `GET` | `/api/v1/survey/admin/template` | `SurveyRestController.java` | `homepage/user/survey/survey-make.html` |
| **[관리자]** 설문조사 답변 로그 조회 | `GET` | `/api/v1/survey/admin/answer/{surveyId}` | `SurveyRestController.java` | - |
| **[관리자]** 답변 로그 CSV 추출 | `POST` | `/api/v1/survey/admin/log/csv` | `SurveyRestController.java` | `homepage/user/survey/survey-answer-log.html` |
| **[관리자]** 답변 로그 전체 CSV 추출 | `POST` | `/api/v1/survey/admin/log/{surveyId}` | `SurveyRestController.java` | `homepage/user/survey/survey-answer-log.html` |
| **[관리자]** 학생별 파일 다운로드 | `POST` | `/api/v1/survey/admin/log/file/student/{surveyId}` | `SurveyRestController.java` | `homepage/user/survey/survey-answer-log.html` |
| **[관리자]** 문항별 파일 다운로드 | `POST` | `/api/v1/survey/admin/log/file/survey/{surveyId}` | `SurveyRestController.java` | `homepage/user/survey/survey-answer-log.html` |
| **[관리자]** 폴더 관리 | `GET`, `POST`, `PATCH`, `DELETE` | `/api/v1/survey/admin/folders` | `SurveyRestController.java` | `homepage/user/survey/survey-folder-list.html` |

## 4. 학교 / 게시판 (School / Board)

| 기능 | HTTP Method | API Endpoint | 정의 위치 (Controller) | 프론트엔드 사용처 |
| --- | --- | --- | --- | --- |
| **[관리자]** 학교 정보 저장 | `POST` | `/api/v1/admin/school/save` | `SchoolAdminRestController.java` | - |
| **[관리자]** 게시판 생성/삭제 | `POST`, `DELETE` | `/api/v1/admin/school/board` | `SchoolAdminRestController.java` | `adminpage/user/school/manageSchool.html` |
| **[관리자]** 게시글 관리 | `POST`, `PATCH`, `DELETE`, `GET` | `/api/v1/admin/school/post` | `SchoolAdminRestController.java` | `adminpage/user/school/manageSchool.html` |
| **[관리자]** 게시글 목록 조회 | `GET` | `/api/v1/admin/school/posts` | `SchoolAdminRestController.java` | `adminpage/user/school/manageSchool.html` |
| **[관리자]** 파일 게시글 관리 | `POST`, `GET`, `PATCH`, `DELETE` | `/api/v1/admin/school/file` | `SchoolAdminRestController.java` | `adminpage/user/school/manageSchool.html` |
| **[관리자]** 학사일정 관리 | `POST`, `GET`, `PATCH`, `DELETE` | `/api/v1/admin/school/schedule` | `SchoolAdminRestController.java` | `adminpage/user/school/manageSchool.html` |
| **[관리자]** 학사일정 목록 조회 | `GET` | `/api/v1/admin/school/schedules` | `SchoolAdminRestController.java` | `adminpage/user/school/manageSchool.html` |

## 5. 유학원 (Agency)

| 기능 | HTTP Method | API Endpoint | 정의 위치 (Controller) | 프론트엔드 사용처 |
| --- | --- | --- | --- | --- |
| 유학원 지역 목록 조회 | `GET` | `/api/v1/agency/region` | `AgencyRestController.java` | `homepage/user/member/profile.html` |

## 6. 파일 관리 (File Management)

| 기능 | HTTP Method | API Endpoint | 정의 위치 (Controller) | 프론트엔드 사용처 |
| --- | --- | --- | --- | --- |
| 이미지 조회 | `GET` | `/api/v1/file/img/{type}/{fileId}` | `FileRestController.java` | `adminpage/user/school/manageSchool.html` (SunEditor), `homepage/user/school/school-board.html` |
| 파일 다운로드 | `GET` | `/api/v1/file/{type}/{fileId}` | `FileRestController.java` | `homepage/user/school/school-board.html` |
| PDF 조회 | `GET` | `/api/v1/file/pdf/{type}/{fileId}` | `FileRestController.java` | - |
| 파일 업로드 | `POST` | `/api/v1/file/{type}` | `FileRestController.java` | - |
| OSS 파일 업로드 | `POST` | `/api/v1/oss/upload` | `OssController.java` | - |

## 7. 외부 연동 (External Integration)

| 기능 | HTTP Method | API Endpoint | 정의 위치 (Controller) | 프론트엔드 사용처 |
| --- | --- | --- | --- | --- |
| 주소 검색 제안 (Tencent) | `GET` | `/api/v1/tencent/address` | `MemberAddressController.java` | `homepage/user/member/profile.html`, `homepage/user/signup.html` |
3 changes: 3 additions & 0 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
presets: [['@babel/preset-env', {targets: {node: 'current'}}]],
};
19 changes: 19 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ plugins {
id 'java'
id 'org.springframework.boot' version '3.5.0'
id 'io.spring.dependency-management' version '1.1.7'
id 'com.github.node-gradle.node' version '7.0.2'
}

group = 'com.cooperation.project'
Expand Down Expand Up @@ -67,6 +68,24 @@ dependencies {

}

node {
version = '20.17.0'
download = true
workDir = file("${project.buildDir}/nodejs")
npmWorkDir = file("${project.buildDir}/npm")
nodeProjectDir = file("${project.projectDir}")
}

tasks.register('bundlingJsCss', com.github.gradle.node.npm.task.NpmTask) {
group = 'build'
description = 'Bundling JavaScript and Tailwind CSS using npm/rollup'
args = ['run', 'build']
}

tasks.named('processResources') {
dependsOn(tasks.named('bundlingJsCss'))
}

tasks.named('test') {
useJUnitPlatform()
}
Expand Down
Loading