Skip to content

leesumin0526/ASSU_FE_app

 
 

Repository files navigation

A:SSU Frontend App

숭실대학교 학생들을 위한 종합 서비스 플랫폼 ASSU의 Android 애플리케이션입니다.

image

🏆 제5회 숭실대학교 IT 프로젝트 공모전 수상작 🏆

"제휴의 시작부터 끝까지, A:SSU에서 한 번에!"

📱 Google Play Store | 💻 GitHub

📋 목차

🎯 프로젝트 개요

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

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

주요 특징

  • 📱 네이티브 Android 앱: Kotlin 기반의 고성능 모바일 애플리케이션
  • 🔐 다중 인증 시스템: 일반 회원가입, SSU 포털 연동, JWT 토큰 기반 인증
  • 💬 실시간 채팅: STOMP 프로토콜 기반 실시간 메시징
  • 📍 위치 기반 서비스: Kakao Map을 활용한 주변 매장 탐색
  • 🔔 푸시 알림: Firebase FCM을 통한 실시간 알림
  • 📷 QR 코드 인증: 매장 방문 인증 및 혜택 이용

✨ 주요 기능

기능 설명
👤 회원 관리 학생/파트너 회원가입, 로그인, 프로필 관리
🔔 푸시 알림 FCM 기반 실시간 알림 수신 및 관리
📱 멀티 디바이스 여러 기기에서 동시 로그인 지원
🏦 매장 탐색 위치 기반 주변 매장 검색 및 상세 정보 조회
🔐 QR 인증 QR 코드 스캔을 통한 매장 방문 인증
🤝 제휴 혜택 제휴 매장 혜택 조회 및 이용
💬 실시간 채팅 매장과의 1:1 실시간 채팅
📍 지도 서비스 Kakao Map 기반 매장 위치 확인
⭐ 리뷰 시스템 매장 리뷰 작성, 조회, 관리
📊 이용 현황 개인 제휴 이용 통계 및 히스토리
🛡️ 신고 기능 부적절한 콘텐츠 신고
📷 카메라 기능 프로필 사진, 리뷰 사진 촬영 및 업로드

🛠 기술 스택

항목 사용 기술 / 라이브러리
플랫폼 Android
언어 Kotlin
최소 SDK API 24 (Android 7.0)
타겟 SDK API 35 (Android 14)
컴파일 SDK API 36
빌드 도구 Gradle 8.11.1, AGP 8.10.0
아키텍처 MVVM, Hilt DI
UI View Binding, Data Binding
네비게이션 Navigation Component
네트워크 Retrofit2, OkHttp3, Moshi
비동기 처리 Kotlin Coroutines
이미지 로딩 Glide, Coil
카메라 CameraX
지도 Kakao Map SDK
푸시 알림 Firebase Cloud Messaging
실시간 통신 STOMP, RxJava2
데이터 저장 DataStore Preferences
페이징 Paging 3
QR 코드 ZXing
차트 MPAndroidChart
위치 서비스 Google Play Services Location
시간 처리 ThreeTenABP
테스트 JUnit, Espresso, MockWebServer

🏗 앱 아키텍처

┌─────────────────────────────────────────────────────────┐
│                    Presentation Layer                   │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐      │
│  │  Activity   │  │  Fragment   │  │   Adapter   │      │
│  └─────────────┘  └─────────────┘  └─────────────┘      │
└─────────────────────────────────────────────────────────┘
                                │
┌─────────────────────────────────────────────────────────┐
│                    Business Layer                       │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐      │
│  │  ViewModel  │  │  UseCase    │  │ Repository  │      │
│  └─────────────┘  └─────────────┘  └─────────────┘      │
└─────────────────────────────────────────────────────────┘
                                │
┌─────────────────────────────────────────────────────────┐
│                     Data Layer                          │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐      │
│  │ Remote API  │  │Local Storage│  │   External  │      │
│  │ (Retrofit)  │  │(DataStore)  │  │  Services   │      │
│  └─────────────┘  └─────────────┘  └─────────────┘      │
└─────────────────────────────────────────────────────────┘
                                │
┌─────────────────────────────────────────────────────────┐
│                 External Services                       │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐      │
│  │Backend API  │  │Firebase FCM │  │  Kakao Map  │      │
│  └─────────────┘  └─────────────┘  └─────────────┘      │
└─────────────────────────────────────────────────────────┘

📁 프로젝트 구조

app/src/main/java/com/ssu/assu/
├── data/                       # 데이터 계층
│   ├── api/                     # API 인터페이스
│   ├── model/                   # 데이터 모델
│   ├── repository/              # 리포지토리 구현
│   └── local/                   # 로컬 데이터 저장
├── domain/                     # 도메인 계층
│   ├── model/                   # 도메인 모델
│   ├── repository/              # 리포지토리 인터페이스
│   └── usecase/                 # 비즈니스 로직
├── presentation/               # 프레젠테이션 계층
│   ├── ui/                      # UI 컴포넌트
│   │   ├── auth/                # 인증 관련 화면
│   │   ├── main/                # 메인 화면
│   │   ├── map/                 # 지도 화면
│   │   ├── chat/                # 채팅 화면
│   │   ├── profile/             # 프로필 화면
│   │   └── store/               # 매장 관련 화면
│   ├── viewmodel/               # ViewModel
│   └── adapter/                 # RecyclerView 어댑터
├── di/                         # 의존성 주입
├── util/                       # 유틸리티 클래스
├── service/                    # 백그라운드 서비스
│   ├── fcm/                     # FCM 서비스
│   └── location/                # 위치 서비스
└── Application.kt              # 애플리케이션 클래스

주요 모듈별 역할

  • data: 외부 API 통신, 로컬 데이터 저장 관리
  • domain: 비즈니스 로직과 도메인 모델 정의
  • presentation: UI 관련 컴포넌트와 사용자 상호작용 처리
  • di: Hilt를 사용한 의존성 주입 설정
  • util: 공통 유틸리티 함수 및 확장 함수
  • service: FCM, 위치 서비스 등 백그라운드 작업

📞 문의

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


A:SSU © 2026

About

제 5회 숭실대학교 IT 프로젝트 공모전 수상작 A:SSU의 프론트엔드 레포지토리입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Kotlin 100.0%