Skip to content
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c4b2fc7
Merge branch 'develop' into feat/#5
Jul 24, 2025
d45b530
feat(#5): API 패키지 나눔
Aug 2, 2025
9d16a31
feat(#5): merge:
Aug 2, 2025
4c6e0e2
feat(#5): 과제 생성 API 제작 완료
Aug 2, 2025
edec068
feat(#5): develop merge
Aug 3, 2025
0d9cdf5
feat(#5): 파일 구조 DDD로 변경 및 필요한 기능 정리
Aug 7, 2025
cb9850f
feat(#5): 선생님 메인 페이지 제작한 과제 전체 조회
Aug 8, 2025
e766f86
feat(#5): 과제 선생님 조회 기능 개발 완료
Aug 12, 2025
5077eb8
feat(#5) : 파일 수정
Aug 12, 2025
948ed32
feat(#5): 사용자가 속한 모든 수업 과제 조회
Aug 12, 2025
1412de5
feat(#5): 사용자 인증 간편 어노테이션 생성
Aug 12, 2025
f0abc60
feat(#5): 과제 제출, 과제 제출 취소 기능 제작 완료
Aug 23, 2025
5fcb889
feat(#5): assignment 제작 완료
Aug 26, 2025
06affdd
feat(#5): Cors 오류 수정
Aug 27, 2025
9bad0f5
feat(#5): 과제 기능 사용자 인증 로직 추가
Aug 27, 2025
1aab2bd
feat(#5): CORS 전체 IP로 수정
Aug 27, 2025
b09645b
feat(#5): Code Rabitt Assignment 수정
Aug 27, 2025
b9bbe3b
feat(#5): 과제 수정 기능 엔티티 반환 변경
Aug 27, 2025
7a365d4
feat(#5): 과제 과제 다운로드 및 조회 기능 수정
Aug 27, 2025
0f3da76
feat(#5): DB 연결 URI env로 변경
Aug 27, 2025
d0864dd
feat(#5): fileType 이름 변경
Aug 27, 2025
d5f8f73
feat(#5): Assignment submissions 일대 다 관계 Ignore 추가하기
Aug 27, 2025
08b1987
feat(#5): 파일 조회 수정
Aug 28, 2025
9fb9e9c
feat(#5): aws region 수정
Aug 28, 2025
23fa07f
feat(#5): 이후 리팩작업
Aug 28, 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
16 changes: 16 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,22 @@ dependencies {
// implementation 'software.amazon.awssdk:s3'
implementation 'software.amazon.awssdk:s3:2.32.1'
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'

// QueryDSL
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta'
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
}

def querydslSrcDir = 'src/main/generated'

clean {
delete file(querydslSrcDir)
}

tasks.withType(JavaCompile).configureEach {
options.generatedSourceOutputDirectory = file(querydslSrcDir)
}

ext {
Expand Down
14 changes: 7 additions & 7 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
services:
spring:
build: .
container_name: paletto
networks:
- web-net
ports:
- 8080:8080
# spring:
# build: .
# container_name: paletto
# networks:
# - web-net
# ports:
# - 8080:8080

postgres:
image: postgres:15
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
package hello.cluebackend.domain.assignment.domain;

import static com.querydsl.core.types.PathMetadataFactory.*;

import com.querydsl.core.types.dsl.*;

import com.querydsl.core.types.PathMetadata;
import javax.annotation.processing.Generated;
import com.querydsl.core.types.Path;
import com.querydsl.core.types.dsl.PathInits;


/**
* QAssignment is a Querydsl query type for Assignment
*/
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
public class QAssignment extends EntityPathBase<Assignment> {

private static final long serialVersionUID = -473772911L;

private static final PathInits INITS = PathInits.DIRECT2;

public static final QAssignment assignment = new QAssignment("assignment");

public final QBaseEntity _super = new QBaseEntity(this);

public final NumberPath<Long> assignmentId = createNumber("assignmentId", Long.class);

public final hello.cluebackend.domain.classroom.domain.QClassRoom classRoom;

public final StringPath content = createString("content");

//inherited
public final StringPath createdBy = _super.createdBy;

//inherited
public final DateTimePath<java.time.LocalDateTime> createdDate = _super.createdDate;

public final DateTimePath<java.time.LocalDateTime> endDate = createDateTime("endDate", java.time.LocalDateTime.class);

//inherited
public final DateTimePath<java.time.LocalDateTime> lastModified = _super.lastModified;

//inherited
public final StringPath lastModifiedBy = _super.lastModifiedBy;

public final DateTimePath<java.time.LocalDateTime> startDate = createDateTime("startDate", java.time.LocalDateTime.class);

public final ListPath<hello.cluebackend.domain.submission.domain.Submission, hello.cluebackend.domain.submission.domain.QSubmission> submissions = this.<hello.cluebackend.domain.submission.domain.Submission, hello.cluebackend.domain.submission.domain.QSubmission>createList("submissions", hello.cluebackend.domain.submission.domain.Submission.class, hello.cluebackend.domain.submission.domain.QSubmission.class, PathInits.DIRECT2);

public final StringPath title = createString("title");

public final hello.cluebackend.domain.user.domain.QUserEntity user;

public QAssignment(String variable) {
this(Assignment.class, forVariable(variable), INITS);
}

public QAssignment(Path<? extends Assignment> path) {
this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
}

public QAssignment(PathMetadata metadata) {
this(metadata, PathInits.getFor(metadata, INITS));
}

public QAssignment(PathMetadata metadata, PathInits inits) {
this(Assignment.class, metadata, inits);
}

public QAssignment(Class<? extends Assignment> type, PathMetadata metadata, PathInits inits) {
super(type, metadata, inits);
this.classRoom = inits.isInitialized("classRoom") ? new hello.cluebackend.domain.classroom.domain.QClassRoom(forProperty("classRoom")) : null;
this.user = inits.isInitialized("user") ? new hello.cluebackend.domain.user.domain.QUserEntity(forProperty("user")) : null;
}

}

Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package hello.cluebackend.domain.assignment.domain;

import static com.querydsl.core.types.PathMetadataFactory.*;

import com.querydsl.core.types.dsl.*;

import com.querydsl.core.types.PathMetadata;
import javax.annotation.processing.Generated;
import com.querydsl.core.types.Path;
import com.querydsl.core.types.dsl.PathInits;


/**
* QAssignmentAttachment is a Querydsl query type for AssignmentAttachment
*/
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
public class QAssignmentAttachment extends EntityPathBase<AssignmentAttachment> {

private static final long serialVersionUID = 788938900L;

private static final PathInits INITS = PathInits.DIRECT2;

public static final QAssignmentAttachment assignmentAttachment = new QAssignmentAttachment("assignmentAttachment");

public final QBaseEntity _super = new QBaseEntity(this);

public final QAssignment assignment;

public final NumberPath<Long> assignmentAttachmentId = createNumber("assignmentAttachmentId", Long.class);

public final StringPath contentType = createString("contentType");

//inherited
public final StringPath createdBy = _super.createdBy;

//inherited
public final DateTimePath<java.time.LocalDateTime> createdDate = _super.createdDate;

//inherited
public final DateTimePath<java.time.LocalDateTime> lastModified = _super.lastModified;

//inherited
public final StringPath lastModifiedBy = _super.lastModifiedBy;

public final StringPath originalFileName = createString("originalFileName");

public final NumberPath<Long> size = createNumber("size", Long.class);

public final EnumPath<fileType> type = createEnum("type", fileType.class);

public final StringPath value = createString("value");

public QAssignmentAttachment(String variable) {
this(AssignmentAttachment.class, forVariable(variable), INITS);
}

public QAssignmentAttachment(Path<? extends AssignmentAttachment> path) {
this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
}

public QAssignmentAttachment(PathMetadata metadata) {
this(metadata, PathInits.getFor(metadata, INITS));
}

public QAssignmentAttachment(PathMetadata metadata, PathInits inits) {
this(AssignmentAttachment.class, metadata, inits);
}

public QAssignmentAttachment(Class<? extends AssignmentAttachment> type, PathMetadata metadata, PathInits inits) {
super(type, metadata, inits);
this.assignment = inits.isInitialized("assignment") ? new QAssignment(forProperty("assignment"), inits.get("assignment")) : null;
}

}

Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package hello.cluebackend.domain.assignment.domain;

import static com.querydsl.core.types.PathMetadataFactory.*;

import com.querydsl.core.types.dsl.*;

import com.querydsl.core.types.PathMetadata;
import javax.annotation.processing.Generated;
import com.querydsl.core.types.Path;


/**
* QBaseEntity is a Querydsl query type for BaseEntity
*/
@Generated("com.querydsl.codegen.DefaultSupertypeSerializer")
public class QBaseEntity extends EntityPathBase<BaseEntity> {

private static final long serialVersionUID = 1570896856L;

public static final QBaseEntity baseEntity = new QBaseEntity("baseEntity");

public final StringPath createdBy = createString("createdBy");

public final DateTimePath<java.time.LocalDateTime> createdDate = createDateTime("createdDate", java.time.LocalDateTime.class);

public final DateTimePath<java.time.LocalDateTime> lastModified = createDateTime("lastModified", java.time.LocalDateTime.class);

public final StringPath lastModifiedBy = createString("lastModifiedBy");

public QBaseEntity(String variable) {
super(BaseEntity.class, forVariable(variable));
}

public QBaseEntity(Path<? extends BaseEntity> path) {
super(path.getType(), path.getMetadata());
}

public QBaseEntity(PathMetadata metadata) {
super(BaseEntity.class, metadata);
}

}

Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package hello.cluebackend.domain.classroom.domain;

import static com.querydsl.core.types.PathMetadataFactory.*;

import com.querydsl.core.types.dsl.*;

import com.querydsl.core.types.PathMetadata;
import javax.annotation.processing.Generated;
import com.querydsl.core.types.Path;
import com.querydsl.core.types.dsl.PathInits;


/**
* QClassRoom is a Querydsl query type for ClassRoom
*/
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
public class QClassRoom extends EntityPathBase<ClassRoom> {

private static final long serialVersionUID = 1743497663L;

public static final QClassRoom classRoom = new QClassRoom("classRoom");

public final NumberPath<Long> classRoomId = createNumber("classRoomId", Long.class);

public final ListPath<hello.cluebackend.domain.classroomuser.domain.ClassRoomUser, hello.cluebackend.domain.classroomuser.domain.QClassRoomUser> classRoomUserList = this.<hello.cluebackend.domain.classroomuser.domain.ClassRoomUser, hello.cluebackend.domain.classroomuser.domain.QClassRoomUser>createList("classRoomUserList", hello.cluebackend.domain.classroomuser.domain.ClassRoomUser.class, hello.cluebackend.domain.classroomuser.domain.QClassRoomUser.class, PathInits.DIRECT2);

public final StringPath code = createString("code");

public final DateTimePath<java.time.LocalDateTime> createdAt = createDateTime("createdAt", java.time.LocalDateTime.class);

public final StringPath description = createString("description");

public final ListPath<hello.cluebackend.domain.directory.domain.Directory, hello.cluebackend.domain.directory.domain.QDirectory> directoryList = this.<hello.cluebackend.domain.directory.domain.Directory, hello.cluebackend.domain.directory.domain.QDirectory>createList("directoryList", hello.cluebackend.domain.directory.domain.Directory.class, hello.cluebackend.domain.directory.domain.QDirectory.class, PathInits.DIRECT2);

public final ListPath<hello.cluebackend.domain.document.domain.Document, hello.cluebackend.domain.document.domain.QDocument> documentList = this.<hello.cluebackend.domain.document.domain.Document, hello.cluebackend.domain.document.domain.QDocument>createList("documentList", hello.cluebackend.domain.document.domain.Document.class, hello.cluebackend.domain.document.domain.QDocument.class, PathInits.DIRECT2);

public final BooleanPath isActivation = createBoolean("isActivation");

public final StringPath name = createString("name");

public final StringPath sort = createString("sort");

public final StringPath target = createString("target");

public QClassRoom(String variable) {
super(ClassRoom.class, forVariable(variable));
}

public QClassRoom(Path<? extends ClassRoom> path) {
super(path.getType(), path.getMetadata());
}

public QClassRoom(PathMetadata metadata) {
super(ClassRoom.class, metadata);
}

}

Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package hello.cluebackend.domain.classroomuser.domain;

import static com.querydsl.core.types.PathMetadataFactory.*;

import com.querydsl.core.types.dsl.*;

import com.querydsl.core.types.PathMetadata;
import javax.annotation.processing.Generated;
import com.querydsl.core.types.Path;
import com.querydsl.core.types.dsl.PathInits;


/**
* QClassRoomUser is a Querydsl query type for ClassRoomUser
*/
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
public class QClassRoomUser extends EntityPathBase<ClassRoomUser> {

private static final long serialVersionUID = 338153279L;

private static final PathInits INITS = PathInits.DIRECT2;

public static final QClassRoomUser classRoomUser = new QClassRoomUser("classRoomUser");

public final hello.cluebackend.domain.classroom.domain.QClassRoom classRoom;

public final NumberPath<Long> classRoomUserId = createNumber("classRoomUserId", Long.class);

public final hello.cluebackend.domain.user.domain.QUserEntity user;

public QClassRoomUser(String variable) {
this(ClassRoomUser.class, forVariable(variable), INITS);
}

public QClassRoomUser(Path<? extends ClassRoomUser> path) {
this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
}

public QClassRoomUser(PathMetadata metadata) {
this(metadata, PathInits.getFor(metadata, INITS));
}

public QClassRoomUser(PathMetadata metadata, PathInits inits) {
this(ClassRoomUser.class, metadata, inits);
}

public QClassRoomUser(Class<? extends ClassRoomUser> type, PathMetadata metadata, PathInits inits) {
super(type, metadata, inits);
this.classRoom = inits.isInitialized("classRoom") ? new hello.cluebackend.domain.classroom.domain.QClassRoom(forProperty("classRoom")) : null;
this.user = inits.isInitialized("user") ? new hello.cluebackend.domain.user.domain.QUserEntity(forProperty("user")) : null;
}

}

Loading