Skip to content
@ASSU-dev

ASSU-dev

A:SSU Oragnazation

🎓 A:SSU (숭실대학교 종합 제휴 플랫폼)

예비

"제휴의 시작부터 끝까지, A:SSU에서 한 번에!"
🏆 제5회 숭실대학교 IT 프로젝트 공모전 수상작

📱 Google Play Store | 💻 GitHub Repository | 📄 API 명세서 (Swagger)


📋 목차

  1. 프로젝트 개요
  2. 팀원 소개
  3. 주요 기능
  4. 기술 스택
  5. 시스템 아키텍처
  6. 배포
  7. 프로젝트 구조
  8. 문의

🎯 프로젝트 개요

대학교 주변 제휴 혜택은 정보가 분산되어 있어 학생은 이용이 번거롭고, 학생회는 매 학기 제휴 관리 부담이 컸으며, 제휴업체는 인증 과정의 비효율과 홍보 효과 측정의 한계를 겪고 있었습니다.

A:SSU는 제휴 계약부터 이용까지의 흐름을 하나의 시스템으로 통합해, 위치 기반 검색과 모바일 인증으로 이용 절차를 단순화하고 제휴 이용 현황을 데이터로 관리할 수 있도록 설계된 플랫폼입니다.

✨ 주요 특징

  • 🔐 다중 인증 시스템: 일반 회원가입, SSU 포털 연동, 토큰 기반 인증
  • 💬 실시간 채팅: WebSocket 기반 실시간 1:1 메시징
  • 📍 위치 기반 서비스: 공간 데이터(Spatial)를 활용한 지도 서비스 및 주변 매장 탐색
  • 🔔 푸시 알림: Firebase FCM 및 Outbox 패턴을 통한 신뢰성 있는 실시간 알림
  • 📊 관리자 백오피스: 종합적인 회원, 매장, 제휴 및 통계 관리 기능

👥 팀원 소개 (Team Members)

역할 이름 학과 / 학번 GitHub / Contact
PM / BE 이수민 컴퓨터학부 23학번 @github
PM 한태영 글로벌미디어학부 24학번 @github
BE 이호근 컴퓨터학부 21학번 @github
BE 백종원 컴퓨터학부 23학번 @github
BE / FE 김예원 컴퓨터학부 24학번 @github
BE 이서희 컴퓨터학부 24학번 @github
FE 이태건 소프트웨어학부 21학번 @github
FE 진채정 행정학부 22학번 @github
FE 김은혜 컴퓨터학부 23학번 @github
FE 천재민 소프트웨어학부 20학번 @github

✨ 주요 기능

기능 설명
👤 회원 관리 학생/파트너 회원가입 및 프로필 관리
🔐 인증/인가 JWT 기반 인증, 학생·파트너·관리자 역할 권한 관리
🏦 매장 관리 파트너 매장 등록·수정, 위치 기반 매장 검색
🤝 제휴 관리 제휴 제안·수락 및 제휴 현황 관리
💬 실시간 채팅 WebSocket / STOMP 기반 1:1 실시간 채팅
📍 위치 기반 서비스 Hibernate Spatial 기반 주변 매장 탐색 및 지도
🔔 푸시 알림 FCM 기반 실시간 알림 (Transactional Outbox 패턴 적용)
📱 디바이스 관리 FCM 토큰 관리 및 멀티 디바이스 지원
⭐ 리뷰 및 신고 매장 리뷰 작성/관리 및 부적절한 콘텐츠 신고 처리
📊 관리자 기능 사용자·매장·제휴 통합 관리 및 데이터 통계 제공
📖 API 문서화 SpringDoc OpenAPI (Swagger UI) 지원

🛠 기술 스택

항목 사용 기술 / 라이브러리
Backend Spring Boot 3.5.3, Java 17, Kotlin
Database & ORM MariaDB, Spring Data JPA (Hibernate), Hibernate Spatial
Security & Cache Spring Security, JWT, Redis
Messaging RabbitMQ, Firebase Cloud Messaging (FCM)
Storage & Real-time AWS S3, WebSocket, STOMP
API Docs & Build SpringDoc OpenAPI (Swagger), Gradle

🏗 시스템 아키텍처

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Mobile App    │    │   Web Client    │    │  Admin Panel    │
└─────────────────┘    └─────────────────┘    └─────────────────┘
         │                       │                       │
         └───────────────────────┼───────────────────────┘
                                 │
                    ┌─────────────────┐
                    │  Load Balancer  │
                    └─────────────────┘
                                 │
         ┌───────────────────────┼───────────────────────┐
         │                       │                       │
┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   App Server    │    │   App Server    │    │   App Server    │
│   (Blue/Green)  │    │   (Blue/Green)  │    │   (Blue/Green)  │
└─────────────────┘    └─────────────────┘    └─────────────────┘
         │                       │                       │
         └───────────────────────┼───────────────────────┘
                                 │
    ┌─────────────────────────────────────────────────────────┐
    │                    Data Layer                           │
    │  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐      │
    │  │   MariaDB   │  │    Redis    │  │  RabbitMQ   │      │
    │  └─────────────┘  └─────────────┘  └─────────────┘      │
    └─────────────────────────────────────────────────────────┘
                                 │
    ┌─────────────────────────────────────────────────────────┐
    │                External Services                        │
    │  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐      │
    │  │   AWS S3    │  │ Firebase FCM│  │  Kakao API  │      │
    │  └─────────────┘  └─────────────┘  └─────────────┘      │
    └─────────────────────────────────────────────────────────┘

📁 프로젝트 구조

src/main/java/com/assu/server/
├── domain/                     # 도메인별 비즈니스 로직
│   ├── admin/                  # 관리자 관리
│   ├── auth/                   # 인증 및 권한
│   ├── certification/          # 인증서 관리
│   ├── chat/                   # 실시간 채팅
│   ├── common/                 # 공통 엔티티
│   ├── deviceToken/            # 디바이스 토큰 관리
│   ├── inquiry/                # 문의 관리
│   ├── map/                    # 지도 서비스
│   ├── mapping/                # 학생-관리자 매핑
│   ├── member/                 # 회원 관리
│   ├── notification/           # 알림 시스템
│   ├── partner/                # 파트너 관리
│   ├── partnership/            # 파트너십 관리
│   ├── report/                 # 신고 처리
│   ├── review/                 # 리뷰 시스템
│   ├── store/                  # 매장 관리
│   ├── suggestion/             # 건의사항
│   ├── term/                   # 약관 관리
│   └── user/                   # 사용자 관리
├── global/                     # 전역 설정 및 유틸리티
│   ├── apiPayload/             # API 응답 형식
│   ├── config/                 # 설정 클래스
│   ├── exception/              # 예외 처리
│   └── util/                   # 유틸리티 클래스
├── infra/                      # 외부 서비스 연동
│   ├── aligo/                  # SMS 서비스
│   ├── firebase/               # FCM 푸시 알림
│   └── s3/                     # AWS S3 연동
└── ServerApplication.java      # 메인 애플리케이션

도메인별 구조

각 도메인은 다음과 같은 계층 구조를 따릅니다:

domain/example/
├── controller/                 # REST API 컨트롤러
├── service/                    # 비즈니스 로직
├── repository/                 # 데이터 액세스
├── entity/                     # JPA 엔티티
├── dto/                        # 데이터 전송 객체
├── converter/                  # DTO-Entity 변환
└── exception/                  # 도메인별 예외

🚢 배포

CI/CD 파이프라인

프로젝트는 GitHub Actions를 사용한 자동화된 CI/CD 파이프라인을 구축하고 있습니다.

CI (Continuous Integration)

트리거: develop 브랜치에 Push 또는 PR 과정: 코드 빌드 → 테스트 실행 → 정적 분석

CD (Continuous Deployment)

트리거: main 브랜치에 Push 과정: Docker 이미지 빌드 → DockerHub 푸시 → EC2 배포

Blue-Green 배포

무중단 배포를 위해 Blue-Green 배포 전략을 사용합니다.

📞 문의

프로젝트에 대한 문의사항이 있으시면 다음을 통해 연락해 주세요:

팀 이메일: assu.soongsil.cse@gmail.com A:SSU © 2026

Popular repositories Loading

  1. ASSU_BE ASSU_BE Public

    ASSU 백엔드 레포지토리 입니다.

    Java 4 2

  2. ASSU_FE_kiosk ASSU_FE_kiosk Public

    키오스크 화면

    Kotlin

  3. ASSU_FE_app ASSU_FE_app Public

    A:SSU 프론트엔드(안드로이드) 레포지토리입니다.

    Kotlin 2

  4. ASSU_FE_rn ASSU_FE_rn Public

    A:SSU 프론트엔드(리액트 네이티브) 레포지토리입니다.

    TypeScript

  5. ASSU_FE_landing ASSU_FE_landing Public

    HTML

  6. ASSU_FE_backoffice ASSU_FE_backoffice Public

    관리자용 페이지 레포지토리입니다

    TypeScript

Repositories

Showing 7 of 7 repositories

Top languages

Loading…

Most used topics

Loading…