OSAM 국방 모바일 반납
  • 국방 모바일 반납
  • ABOUT PROJECT
    • 개발 동기
    • 개발 목표
    • 개발 일정
  • HOW TO COLLABORATE
    • Notion
    • Git Workflow
    • Git Contribution
    • CI/CD
    • API Documenation
  • Technical Note
    • 시스템 구성
    • 작동 시나리오
    • 분야별 기능
      • WEB 기능
      • APP 기능
      • IoT 기능
    • Time-based OTP 인증
  • HOW TO BUILD
    • WEB
    • APP
    • IoT
  • HOW TO USE
    • 관리자 설정
    • 기기 등록
    • 기기 반납
    • 현황 파악
  • ADVANCED
    • QR코드 색상암호화
    • 1:N 반납기
    • 아두이노 미사용
    • 관리자용 APP
    • 본 프로젝트에 대한 비평
  • License
    • WEB License
    • APP License
    • IoT License
Powered by GitBook
On this page
  • Demo Page
  • Repository
  • ER-Diagram
  • Project hierarchy
  • 실시간 기기 반납 현황 페이지
  • 반납 상태 표시
  • 병사 반납 기록 정렬
  • 전체/비정상 반납 기록 페이지
  • 전체 반납 기록 페이지
  • 비정상 반납 기록 페이지
  • 더보기 페이지
  • 관리자 정보 페이지
  • 병사 기기 페이지
  • 사용 라이브러리

Was this helpful?

  1. Technical Note
  2. 분야별 기능

WEB 기능

Previous분야별 기능NextAPP 기능

Last updated 4 years ago

Was this helpful?

Demo Page

Repository

​​g

ER-Diagram

Project hierarchy

├─.github
│  └─workflows                     // Github Actions workflow file
└─src
    ├─main
    │  ├─java
    │  │  └─dev
    │  │      └─riyenas
    │  │          └─osam
    │  │              ├─config     // Java Config
    │  │              ├─domain     // Repository Layer, Domain Model
    │  │              ├─error      // Global Exception Handler
    │  │              ├─service    // Service Layer
    │  │              └─web        // Web Layer
    │  │                  └─dto    // DTO(Data Transfer Object)
    │  └─resources
    │      ├─static                // Front-end static resources file
    │      └─templates             // Front-end mustache files (web page)
    │          └─layout            // Common mustache files used for dashboards
    └─test
        ├─java
        │  └─dev
        │      └─riyenas
        │          └─osam          // JUnit5 test files
        └─resources                // apllication.yml file for testing

실시간 기기 반납 현황 페이지

반납 상태 표시

병사들의 반납 정보를 아래와 같은 카드 형태로 보여준다. 반납 상태에 대한 정보는 아래 Enum으로 정의하였다.

package dev.riyenas.osam.domain.log;

public enum ReturnState {
    PASS("정상반납", "bg-success", 4L),
    NON_PASS("미반납", "bg-danger", 1L),
    TIME_DELAY("지연반납", "bg-warning", 2L),
    WEIGHT_FAULT("무게이상", "bg-yellow", 3L);

    ReturnState(String state, String icon, Long order) {
        this.state = state;
        this.icon = icon;
        this.order = order;
    }

    private final String state;
    private final String icon;
    private final Long order;

    public String getState() {
        return state;
    }

    public String getIcon() {
        return icon;
    }

    public Long getOrder() {
        return order;
    }
}

병사 반납 기록 정렬

미반납, 지연반납, 무게 이상, 정상반납 순으로 정렬하여 관리자의 관심사에 맞춰 정보를 제공하도록 설계하였다.

전체/비정상 반납 기록 페이지

전체 반납 기록 페이지

모바일 기기를 반납 기록에서 반납 상태 전체(PASS, TIME_DELAY, WEIGHT_FAULT)에 대한 반납 기록을 보여주는 페이지입니다.

비정상 반납 기록 페이지

모바일 기기를 반납 기록에서 비정상 반납 상태(TIME_DELAY, WEIGHT_FAULT)에 대한 반납 기록을 보여주는 페이지입니다.

더보기 페이지

반납시 촬영한 모바일 기기 사진과 추가적인 정보를 제공합니다.

관리자 정보 페이지

관리자 페이지는 관리자를 추가할 수 있으며 병사들이 회원가입을 할 수 있도록 8자리의 회원가입 코드를 생성하여 저장합니다.

관리자는 관리자 명, 소속, 불출 시간, 반납 시간을 설정 할 수 있으며 관리자의 회원가입 코드를 받아 가입한 병사들은 반납기에 기기를 반납할 때 관리자가 지정한 불출 시간과 반납 시간을 적용받습니다.

병사 기기 페이지

국방 모바일 보안에 가입된 모바일 기기의 정보를 보여주는 페이지입니다.

병사의 경우 앱으로 회원 가입과 동시에 40자리 숫자로 되어 있는 UUID값을 발급받는데 이는 아래와 같은 코드로 생성됩니다. 또한 생성된 UUID값은 Time-based OTP를 생성하는데 필요한 SEED 값으로 사용합니다.

@Builder
public Device(Long id, String guid, String type, String manufacturer) {
    this.id = id;
    this.type = type;
    this.manufacturer = manufacturer;
    this.guid = guid;
    this.uuid = String.format("%040d",
            new BigInteger(UUID.randomUUID().toString().replace("-", ""), 16)
    );
}

사용 라이브러리

Package

Licenses

Apache Commons Lang (3.0)

Apache-2.0

Bridge method injection annotations (1.13)

MIT

commons-io (1.3.2)

Apache-2.0

FindBugs-jsr305 (1.3.9)

Apache-2.0

H2 Database Engine (1.4.200)

MPL-2.0, MPL-2.0

Jackson-dataformat-YAML (2.10.3)

Apache-2.0

lang (0.2.4)

Apache-2.0

Project Lombok (1.18.12)

MIT

Querydsl - APT support (4.1.4)

Apache-2.0

Querydsl - JPA support (4.3.1)

Apache-2.0

Spring Boot Batch Starter (2.3.4.RELEASE)

Apache-2.0

Spring Boot Data JPA Starter (2.3.4.RELEASE)

Apache-2.0

Spring Boot Developer Tools (2.3.4.RELEASE)

Apache-2.0

Spring Boot Log4J2 Starter (2.3.4.RELEASE)

Apache-2.0

Spring Boot Mustache Starter (2.3.4.RELEASE)

Apache-2.0

Spring Boot Validation Starter (2.3.4.RELEASE)

Apache-2.0

Spring Boot Web Starter (2.3.4.RELEASE)

Apache-2.0

Spring Commons Logging Bridge (5.2.9.RELEASE)

Apache-2.0

springfox-swagger-ui (2.9.2)

Apache-2.0

springfox-swagger2 (2.9.2)

Apache-2.0

ZXing Java SE extensions (3.4.1)

Apache-2.0

프로젝트 라이센스와, 사용된 3rd-Party Software라이브러리 라이센스에 대한 내용은 아래 페이지 참고

WEB License
https://osam.riyenas.dev/
https://github.com/osamhack2020/WEB_KookMoBan_PonJohmNaimann