Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs : update readme #215

Open
wants to merge 52 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
1e7f120
docs : update readme
yy0ung Mar 16, 2024
7f00923
Merge pull request #214 from yy0ung/develop
yy0ung Mar 16, 2024
836e9f5
docs : update readme
yy0ung Mar 16, 2024
454b8dd
feat : 비밀번호 찾기 숨기기
yy0ung Mar 18, 2024
de38f28
feat : 400 error interceptor 구현
yy0ung Mar 18, 2024
e2e9483
Merge pull request #216 from yy0ung/feature/global
yy0ung Mar 18, 2024
9e527cd
feat : remote config 세팅 및 업데이트 알림 구현
yy0ung Mar 19, 2024
a2f1c5e
feat : 버전 정보 setting
yy0ung Mar 20, 2024
77c7b96
feat : 버전 정보 비교 로직 수정
yy0ung Mar 20, 2024
6202488
update : version 2.0.8
yy0ung Mar 20, 2024
5bafe7c
Merge pull request #217 from yy0ung/feature/global
yy0ung Mar 20, 2024
edb522d
Merge branch 'seoyamin:develop' into develop
yy0ung Mar 20, 2024
eb4befb
feat : responseCount > headCount 일 경우 표시 수정
yy0ung Mar 23, 2024
0ca9736
update : version 2.0.9
yy0ung Mar 23, 2024
a068f77
Merge pull request #218 from yy0ung/feature/global
yy0ung Mar 23, 2024
f695b09
feat : headCount 표시 수정
yy0ung Mar 23, 2024
2f3a1c0
feat : 정산 일자 안내 수정
yy0ung Mar 23, 2024
33cea5f
update : version 2.1.0
yy0ung Mar 24, 2024
5dcd3d8
Merge pull request #219 from yy0ung/feature/global
yy0ung Mar 24, 2024
fd57b49
Merge branch 'seoyamin:develop' into develop
yy0ung Mar 24, 2024
e569fd5
update : version 2.1.1
yy0ung Mar 30, 2024
2bea68c
feat : survey title 수정
yy0ung Mar 30, 2024
d5a6230
feat : text ellipsize 설정 및 화면 사이즈 대응
yy0ung Apr 11, 2024
19a5538
Merge pull request #221 from yy0ung/feature/global
yy0ung Apr 11, 2024
69ed422
feat : history test server 테스트
yy0ung Apr 18, 2024
64f0fce
update : 2.1.3 version
yy0ung Apr 18, 2024
67111ae
fix: edit history alert text
yy0ung Apr 18, 2024
eb08ae8
update: 2.1.4 version updtae
yy0ung Apr 18, 2024
b06b4ac
Merge pull request #222 from yy0ung/feature/global
yy0ung Apr 18, 2024
ed9ecc1
Merge branch 'seoyamin:develop' into develop
yy0ung Apr 18, 2024
1263a22
feat : network timeout fix
yy0ung May 17, 2024
07871e2
feat : targetInput null / empty 수정
yy0ung May 17, 2024
c308b15
Merge pull request #224 from yy0ung/develop
yy0ung Jun 5, 2024
f6cb8b0
Merge pull request #30 from yy0ung/feature/global
yy0ung Jun 5, 2024
47c37cb
chore : solve merge conflict
yy0ung Jun 5, 2024
76224b8
feat : 응답 화면 변경 안내 수정
yy0ung Jun 5, 2024
8bab45b
Merge branch 'seoyamin:develop' into develop
yy0ung Jun 5, 2024
c2a567c
Merge pull request #225 from yy0ung/feature/fix
yy0ung Jun 5, 2024
09a6344
Merge branch 'seoyamin:develop' into develop
yy0ung Jun 5, 2024
e5f60e4
feat : fcm messaging 세팅
yy0ung Jun 12, 2024
0153d02
feat : fcm token call test
yy0ung Jun 12, 2024
5c203aa
Merge pull request #31 from yy0ung/feature/fcm
yy0ung Jun 12, 2024
6d2d4f5
feat : 시스템 폰트 추가 대응
yy0ung Sep 30, 2024
891377d
Merge pull request #32 from yy0ung/feature/ui
yy0ung Sep 30, 2024
e0c50c3
feat : home 화면 알림 안내 문구 추가
yy0ung Sep 30, 2024
c09de64
feat : home dialog 추가, text resource 추출
yy0ung Sep 30, 2024
85bc3ae
Merge pull request #33 from yy0ung/feature/home
yy0ung Sep 30, 2024
7d634f8
feat : home 안내 문구 수정
yy0ung Oct 1, 2024
5c17588
feat : home 링크수정, padding 수정
yy0ung Oct 1, 2024
1021720
Merge pull request #34 from yy0ung/feature/home
yy0ung Oct 1, 2024
93bd688
update : 2.1.5 version 60 update
yy0ung Oct 1, 2024
05f885c
chore : gitignore refactor
yy0ung Oct 1, 2024
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
2 changes: 1 addition & 1 deletion .idea/deploymentTargetDropDown.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

54 changes: 45 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,55 @@
# Surveasy-app
# ✅ Surveasy 서베이지
<br>

✅ 서베이지 패널용 안드로이드 어플 workspace 입니다.
## ⚙️ 주요 기능
* 서베이지 웹에 올라오는 설문에 참여
* 참여한 설문에 해당하는 리워드 지급

<br><br>

## 📚 기술 스택

---
| 분류 | 사용기술 |
| ------------- | ----------------------------------------- |
| 아키텍처 | MVVM, Clean Architecture |
| 네트워크 통신 | Retrofit, Okhttp |
| 이미지 처리 | Glide |
| 비동기 | Coroutine, Flow |
| jetpack | Navigation, Hilt, DataBinding, viewpager2 |
| 데이터 | Datastore |
| etc | Firebase |

<br><br>

### ⚙️ 주요 기능
* 서베이지 웹에 올라오는 설문에 참여
* 참여한 설문에 해당하는 리워드 지급
* 다양한 주제의 poll에 참여


## 📲 주요 기능 동작 화면

### 로그인 / 회원가입
기존 회원 로그인 및 신규 회원 카카오 로그인|
|------|
|<img src="https://github.com/seoyamin/Surveasy-app/assets/82799840/4029d153-6ffa-44bf-a961-715032d9c9a3" width="400" heigth="1000">|

<br>

### 설문 참여
설문 상세 확인|설문 참여|
|------|---|
|<img src="https://github.com/seoyamin/Surveasy-app/assets/82799840/e8a176f0-c60d-46ea-b0dd-d8da7db23b63" width="400" heigth="1000">|<img src="https://github.com/seoyamin/Surveasy-app/assets/82799840/a48c82da-f8e3-400f-8abd-c8879c97050b" width="400" heigth="1000">|

<br>

### 📱 설치 방법
### 주요 화면

설문 리스트|정산 내역 확인|
|------|---|
|<img src="https://github.com/seoyamin/Surveasy-app/assets/82799840/bd4559f8-328e-4a7e-9480-099d3d430fd5" width="400" heigth="1000">|<img src="https://github.com/seoyamin/Surveasy-app/assets/82799840/464bdddb-4fea-4569-8094-9615561fdb51" width="400" heigth="1000">|




<br><br>

## 📱 설치 방법
* play store 에 "서베이지" 검색 후 다운로드
* https://play.google.com/store/apps/details?id=com.surveasy.surveasy

169 changes: 168 additions & 1 deletion app/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,168 @@
/build
/build

### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon


# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### macOS Patch ###
# iCloud generated files
*.icloud

### AndroidStudio ###
# Covers files to be ignored for android development using Android Studio.

# Built application files
*.apk
*.ap_
*.aab

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle
.gradle/
build/

# Signing files
.signing/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio
/*/build/
/*/local.properties
/*/out
/*/*/build
/*/*/production
captures/
.navigation/
*.ipr
*~
*.swp

# Keystore files
*.jks
*.keystore

# Google Services (e.g. APIs or Firebase)
# google-services.json

# Android Patch
gen-external-apklibs

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# NDK
obj/

# IntelliJ IDEA
*.iml
*.iws
/out/

# User-specific configurations
.idea/caches/
.idea/libraries/
.idea/shelf/
.idea/workspace.xml
.idea/tasks.xml
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
.idea/modules.xml
.idea/scopes/scope_settings.xml
.idea/dictionaries
.idea/vcs.xml
.idea/jsLibraryMappings.xml
.idea/datasources.xml
.idea/dataSources.ids
.idea/sqlDataSources.xml
.idea/dynamic.xml
.idea/uiDesigner.xml
.idea/assetWizardSettings.xml
.idea/gradle.xml
.idea/jarRepositories.xml
.idea/navEditor.xml

# Legacy Eclipse project files
.classpath
.project
.cproject
.settings/

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.war
*.ear

# virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml)
hs_err_pid*

## Plugin-specific files:

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Mongo Explorer plugin
.idea/mongoSettings.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

### AndroidStudio Patch ###

!/gradle/wrapper/gradle-wrapper.jar

# End of https://www.toptal.com/developers/gitignore/api/macos,androidstudio
10 changes: 8 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ android {
applicationId = "com.surveasy.surveasy"
minSdk = 24
targetSdk = 34
versionCode = 46
versionName = "2.0.6"
versionCode = 60
versionName = "2.1.5"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

Expand Down Expand Up @@ -105,10 +105,16 @@ dependencies {
implementation("com.google.firebase:firebase-auth-ktx:22.1.2")
implementation("com.google.firebase:firebase-analytics")
implementation("com.google.firebase:firebase-storage-ktx")
implementation("com.google.firebase:firebase-config-ktx")
implementation("com.google.firebase:firebase-messaging-ktx")

// indicator
implementation("com.tbuonomo:dotsindicator:4.2")

// kakao
implementation("com.kakao.sdk:v2-user:2.11.2")

//inapp update
implementation("com.google.android.play:app-update-ktx:2.1.0")

}
Binary file modified app/release/app-release.aab
Binary file not shown.
9 changes: 9 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
Expand Down Expand Up @@ -87,6 +88,14 @@
android:name=".presentation.intro.IntroActivity"
android:exported="true"
android:windowSoftInputMode="adjustPan" />

<service
android:name=".app.MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
</application>

</manifest>
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.surveasy.surveasy.app

import android.util.Log
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage

class MyFirebaseMessagingService : FirebaseMessagingService() {
override fun onMessageReceived(message: RemoteMessage) {
super.onMessageReceived(message)
}

override fun onNewToken(token: String) {
super.onNewToken(token)
Log.d("TAG", "onNewToken: $token")
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.surveasy.surveasy.app.di

import com.google.firebase.Firebase
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.messaging.FirebaseMessaging
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
Expand All @@ -20,4 +21,8 @@ object FirebaseModule {
@Provides
@Singleton
fun provideFirebaseStorage(): Firebase = Firebase

@Provides
@Singleton
fun provideFirebaseMessaging(): FirebaseMessaging = FirebaseMessaging.getInstance()
}
11 changes: 5 additions & 6 deletions app/src/main/java/com/surveasy/surveasy/app/di/NetworkModule.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.surveasy.surveasy.app.di

import com.surveasy.surveasy.BuildConfig
import com.surveasy.surveasy.app.DataStoreManager
import com.surveasy.surveasy.data.config.AccessTokenInterceptor
import com.surveasy.surveasy.data.config.BearerInterceptor
import com.surveasy.surveasy.data.config.RetryInterceptor
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
Expand All @@ -23,12 +23,15 @@ object NetworkModule {
fun provideOkHttpClient(
httpLoggingInterceptor: HttpLoggingInterceptor,
accessTokenInterceptor: AccessTokenInterceptor,
bearerInterceptor: BearerInterceptor
bearerInterceptor: BearerInterceptor,
retryInterceptor: RetryInterceptor,
): OkHttpClient {

return OkHttpClient.Builder()
.readTimeout(10000, TimeUnit.MILLISECONDS)
.connectTimeout(10000, TimeUnit.MILLISECONDS)
.writeTimeout(10000, TimeUnit.MILLISECONDS)
.addInterceptor(retryInterceptor)
.addInterceptor(httpLoggingInterceptor)
.addNetworkInterceptor(accessTokenInterceptor)
.addInterceptor(bearerInterceptor)
Expand All @@ -43,10 +46,6 @@ object NetworkModule {
}
}

@Provides
fun provideAccessTokenInterceptor(dataStoreManager: DataStoreManager): AccessTokenInterceptor =
AccessTokenInterceptor(dataStoreManager)

@Provides
fun provideRetrofit(okHttpClient: OkHttpClient): Retrofit {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.surveasy.surveasy.app.di

import com.google.firebase.Firebase
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.messaging.FirebaseMessaging
import com.surveasy.surveasy.data.remote.SurveasyApi
import com.surveasy.surveasy.data.repository.FirebaseRepositoryImpl
import com.surveasy.surveasy.data.repository.PanelRepositoryImpl
Expand All @@ -25,8 +26,12 @@ object RepositoryModule {

@Singleton
@Provides
fun provideFirebaseRepository(fbAuth: FirebaseAuth, fb: Firebase): FirebaseRepository =
FirebaseRepositoryImpl(fbAuth, fb)
fun provideFirebaseRepository(
fbAuth: FirebaseAuth,
fb: Firebase,
fcm: FirebaseMessaging
): FirebaseRepository =
FirebaseRepositoryImpl(fbAuth, fb, fcm)

@Singleton
@Provides
Expand Down
Loading