Skip to content

kw-service/kw-notice-backend-dorm

Repository files navigation

KW 알리미 Dormitory Server

This is a server that is monitoring university dormitory notices, using Spring MVC + Spring Batch(with Kotlin, Multi Module Project, Kotlin Gradle DSL).
I started the project to solve the problem that I feel uncomfortable living in the dormitory.

Purpose

  • To solve the problem that I feel uncomfortable living in the dormitory
  • To learn how to use Spring Batch, Spring JPA(with Kotlin)
  • To learn how to use Kotlin Gradle DSL
  • To learn Gradle multi-module project with Kotlin

Performance

  • Implement multi-module project with kotlin gradle DSL
  • Implement asynchronous logic with Kotlin coroutine to reduce time by up to 20x
  • Test code coverage using Jacoco is over 90 percent
  • Monitoring dormitory notice per 1 min using Spring Batch
  • Use Docker Swarm to build nondisruptive servers that don't stop servers during updates

Process Flow

Structure

version 1

version 2

Module Dependencies

Structure(with Docker Swarm)

Skill Set

Language

  • Kotlin(+Coroutine)

Backend

  • Spring MVC
  • Spring Batch
  • Spring Data JPA(mysql, h2)
  • Spring Webflux(for webclient)

Third-Party

  • Firebase Cloud Messaging

Infrastructure

  • MySQL, H2

Test

  • mockk
  • coroutine-test
  • kotest