diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 00000000..b6110a7b
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,38 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: "[BUG]"
+labels: bug
+assignees: ''
+
+---
+
+## Description
+
+
+## To Reproduce
+
+
+## Expected behavior
+
+
+## Error Log
+```
+```
+
+## Screenshots
+
+
+## Development Environment
+ - OS:
+ - Output of `flutter doctor`:
+
+## Test Environment
+ - Device(OS):
+ - App Version or Comit Hash:
+
+## Additional context
+
diff --git a/.github/ISSUE_TEMPLATE/custom.md b/.github/ISSUE_TEMPLATE/custom.md
new file mode 100644
index 00000000..48d5f81f
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/custom.md
@@ -0,0 +1,10 @@
+---
+name: Custom issue template
+about: Describe this issue template's purpose here.
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 00000000..33ebfd58
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,20 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+title: "[Feature]"
+labels: enhancement
+assignees: ''
+
+---
+
+## Related Problem
+
+
+## Describe the Solution
+
+
+## Describe Alternatives
+
+
+## Additional Context
+
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
new file mode 100644
index 00000000..4a4d405c
--- /dev/null
+++ b/.github/pull_request_template.md
@@ -0,0 +1,35 @@
+## Overview
+
+
+## Changes
+
+
+## Implementaion Method
+
+
+## After Changes
+
+
+## Related Issues
+
+
+## Rollback Scenario
+
+
+## TODO
+
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 381cd090..4bbb2c7d 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -4,7 +4,7 @@ on:
push:
branches: [dev, main]
pull_request:
- branches: [dev]
+ branches: [dev, main]
env:
FLUTTER_VERSION: "3.13"
@@ -34,6 +34,10 @@ jobs:
echo "keyAlias=ci" >> android/key.properties
- name: Install dependencies
run: flutter pub get
+ - name: Create .env files
+ run: |
+ echo "${{ secrets.ENV_PRODUCTION_FILE_CONTENT }}" > .env.production
+ echo "${{ secrets.ENV_DEVELOPMENT_FILE_CONTENT }}" > .env.development
- name: Build APK
run: flutter build apk --release --no-tree-shake-icons
@@ -57,5 +61,9 @@ jobs:
${{ runner.os }}-pods-
- name: Install dependencies
run: flutter pub get
+ - name: Create .env files
+ run: |
+ echo "${{ secrets.ENV_PRODUCTION_FILE_CONTENT }}" > .env.production
+ echo "${{ secrets.ENV_DEVELOPMENT_FILE_CONTENT }}" > .env.development
- name: Build iOS
run: flutter build ios --release --no-codesign --no-tree-shake-icons
diff --git a/.gitignore b/.gitignore
index 8845805b..b92fa03e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -56,3 +56,6 @@ ios/fastlane/README.md
ios/fastlane/.env.default
ios/Runner.app.dSYM.zip
ios/Runner.ipa
+
+.env
+.env.*
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index fdfdaae7..a49add29 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,6 +1,5 @@
# 기여하기
-
-## Release 절차(~ 2024.02.24 )
+## How to release( ~ 2024.02.24 )
1. [Releases](https://github.com/sparcs-kaist/new-ara-app/releases)에 갑니다.
2. 이번 버전에서 변경된 사항을 Changes에 작성합니다.드래프트로 올립니다.
@@ -9,14 +8,16 @@
5. github release 페이지에서 드래프트를 풉니다.
~~버전을 하나 올린 후 `flutter build ios`를 반드시 실행해 주도록 합니다~~
+
ios FastFile에 `sh "flutter build ios --release --no-codesign --no-tree-shake-icons"` 추가해서 fastlane시 항상 자동으로 빌드하도록 수정했습니다.
-## Release 절차( 2024.02.25 ~)
-릴리즈 노트를 자동으로 작성하는 cd 코드를 main 브랜치에 추가했습니다.
+## How to release( 2024.02.25 ~ )
+릴리즈 노트를 자동으로 작성하는 cd 코드를 추가했습니다.
1. `pubspec.yaml`의 버전을 하나 올리는 커밋을 원격 저장소에 Pull Request하고 Merge 합니다.
-2. fastlane으로 Android와 iOS에 deploy를 합니다.
+2. 아래 **How to deploy** 항목을 보고 Android와 iOS에 deploy를 합니다.
3. [Releases](https://github.com/sparcs-kaist/new-ara-app/releases) 페이지에서 자동으로 등록된 릴리즈 노트의 내용을 수정합니다.
+---
## How to deploy
### Fastlane 설정
@@ -41,14 +42,14 @@ bundle install
- `android/fastlane/newara-fastlane.json` : Google Play 서비스 계정 JSON 파일
- `android/fastlane/upload-keystore.jks` : Android App Signing Key for Upload Google Play
-
+
- `android/fastlane/.env` : 아래와 같이 각자 개인이 발급 받은 GITHUB_API_TOKEN을 추가합니다.
```env
GITHUB_API_TOKEN=****************************************
```
-GITHUB_API_TOKEN 발급 받는 법: https://lifefun.tistory.com/161
-
+[GITHUB_API_TOKEN 발급 받는 법](https://docs.github.com/ko/enterprise-server@3.9/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) 상단 우측에 한국어 버젼 선택 가능
+
- `android/key.properties` : 아래와 같이 Signing Key 정보를 입력합니다.
@@ -68,38 +69,67 @@ FASTLANE_PASSWORD=********
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD=****-****-****-****
GITHUB_API_TOKEN=****************************************
```
+[APPLE application specific password(앱 암호) 발급 받는 법](https://support.apple.com/ko-kr/102654)
+
+
-- `ios/fastlane/Appfile` : 아래와 같이 Apple ID 계정 정보를 입력합니다.
+- `ios/fastlane/Appfile` : 아래와 같이 Applefile이 되어있나 확인합니다.
```env
app_identifier("org.sparcs.new-ara-app") # The bundle identifier of your app
-apple_id("****@****.***") # Your Apple Developer Portal username
+apple_id(ENV["FASTLANE_USER"]) # It automatically references .env.deault file
itc_team_name("SPARCS") # App Store Connect Team Name
team_id("N5V8W52U3U") # Developer Portal Team ID
```
-### 알파 버전 배포
+### 알파 버전 배포 명령어
- Android: Google Play 스토어 `비공개 테스트 - Alpha` 트랙으로 업로드
-- iOS: TestFlight로 업로드
+- iOS: `TestFlight`로 업로드
-아래 명령어 시 `pubspec.yaml`에 있는 버젼 정보와 현재 시각으로 지정된 빌드 정보 기준으로 업로드 됩니다.
-**앱에서 백엔드 대상이 prod가 맞는지 배포 전 꼭 확인 하세요!**
+**앱에서 배포 서버는 production을 기본으로 합니다**
+
+프로젝트 루트 디렉토리에서 아래 명령어 시 `pubspec.yaml`에 있는 버젼 정보와 현재 시각으로 지정된 빌드 정보 기준으로 업로드 됩니다.
```bash
-cd android && bundle exec fastlane alpha && cd ../ios && bundle exec fastlane alpha
+cd android && bundle exec fastlane alpha env:production && cd ../ios && bundle exec fastlane alpha env:production
```
+
아래 예시처럼 하나의 플랫폼에도 배포가 가능합니다.
```bash
-cd ios && bundle exec fastlane alpha
+cd ios && bundle exec fastlane alpha env:production
+```
+
+
+
+아래 예시처럼 dev 서버와 연결된 앱 배포도 가능합니다.
+
+```bash
+cd ios && bundle exec fastlane alpha env:development
+```
+
+
+아래 예시처럼 개별 fastlane 실행도 가능합니다. 아래는 깃허브 태그를 만드는 fastlane입니다.
+```base
+bundle exec fastlane create_release_note short_name:prod
```
### 배포 후 작업
- `pubspec.yaml` 변경 사항을 Discard 합니다.
- iOS Xcode 프로젝트 관련 파일들( `ios/Runner.xcodeproj/project.pbxproj`, `ios/Runner/Info.plist` )의 변경사항을 Discard 합니다.
+## English translation
+- 외부 패키지 사용했으니 자세한 내용은 [easy_localization](https://pub.dev/packages/easy_localization) 문서 읽어주시기 바랍니다.
+
+- `assets/translations`에 번역 파일을 json 형식으로 저장하고 있습니다.
+- json 수정할 때마다 프로젝트의 root 디렉토리에서 **아래 명령어** 실행 후 dart 파일 내에서 `LocaleKeys.****` 같은 클래스 형식으로 가능합니다.
+```
+dart run easy_localization:generate -S "assets/translations" -O "lib/translations" && dart run easy_localization:generate -S "assets/translations" -O "lib/translations" -f keys -o locale_keys.g.dart
+```
+
+
diff --git a/README.md b/README.md
index c436e9a2..a929a183 100644
--- a/README.md
+++ b/README.md
@@ -3,9 +3,9 @@
@@ -19,6 +19,7 @@
alt="Release version"
/>
+
+
+## How to Download
+The SPARCS NewAra App is available for both Android and iOS. Follow the instructions below to download and install the app on your device.
+
+### Android
+1. Visit the Google Play Store on your Android device.
+2. Search for "Ara for KAIST".
+3. Tap "Install" to download and install the app.
+
+[Play Store Link: Ara for KAIST](https://play.google.com/store/apps/details?id=org.sparcs.newara)
+
+### iOS
+1. Open the App Store on your iOS device.
+2. Search for "Ara for KAIST".
+3. Tap "Get" to download and install the app.
+
+[App Store Link: Ara for KAIST](https://apps.apple.com/kr/app/ara-for-kaist/id6457209147)
+
+## How to develop
+### run
+
+`FLUTTER_VERSION: "3.13"`, `JAVA_VERSION: "11"`
+
+
+- `.env.development` : 프로젝트 루트 디렉토리에 `.env.development` 파일을 생성하고 아래와 같이 정보를 입력합니다.
+```env
+NEW_ARA_DEFAULT_URL=https://newara.dev.sparcs.org
+NEW_ARA_AUTHORITY=newara.dev.sparcs.org
+SPARCS_SSO_DEFAULT_URL=https://sparcssso.kaist.ac.kr
+```
+
+
+- `.env.production` : 프로젝트 루트 디렉토리에 `.env.production` 파일을 생성하고 아래와 같이 정보를 입력합니다.
+```env
+NEW_ARA_DEFAULT_URL=https://newara.sparcs.org
+NEW_ARA_AUTHORITY=newara.sparcs.org
+SPARCS_SSO_DEFAULT_URL=https://sparcssso.kaist.ac.kr
+```
+
+
+
+#### Terminal
+
+- `development`와 `production` 둘 중 하나를 선택해서 실행합니다.
+- 지정하지 않을 시 `development`로 자동 실행됩니다.
+
+ex) **`flutter run --dart-define=ENV=development`**
+
+ex) **`flutter run --dart-define=ENV=production`**
+
+#### VSCode
+
+[VSCode에서 디버깅 방법](https://code.visualstudio.com/docs/editor/debugging)
+
+- `launch.json`의 `configurations`에 아래 내용을 추가하면 `development`과 `production`을 전환하기 편합니다.
+```
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "new-ara-app(Delevopment)",
+ "request": "launch",
+ "type": "dart",
+ "args": [
+ "--dart-define=ENV=development"
+ ]
+ },
+ {
+ "name": "new-ara-app(Production)",
+ "request": "launch",
+ "type": "dart",
+ "args": [
+ "--dart-define=ENV=production"
+ ],
+ },
+ ]
+}
+```
+
+## How to Deploy
+- [CONTRIBUTING.md](https://github.com/sparcs-kaist/new-ara-app/blob/dev/CONTRIBUTING.md) 참조
diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml
new file mode 100644
index 00000000..8d86db05
--- /dev/null
+++ b/android/app/src/main/res/values/colors.xml
@@ -0,0 +1,3 @@
+
+ #FFFFFF
+
\ No newline at end of file
diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml
index cc10614f..b3eb1941 100644
--- a/android/app/src/main/res/values/styles.xml
+++ b/android/app/src/main/res/values/styles.xml
@@ -2,7 +2,7 @@
-
+
+
+
diff --git a/android/fastlane/Fastfile b/android/fastlane/Fastfile
index 170def09..ca413ca8 100644
--- a/android/fastlane/Fastfile
+++ b/android/fastlane/Fastfile
@@ -27,7 +27,7 @@ platform :android do
end
desc "Create a release note on GitHub."
- lane :create_release_note do
+ lane :create_release_note do |options|
# YAML에서 버전 정보를 추출
@@ -46,9 +46,9 @@ platform :android do
http_method: "POST",
path: "/repos/sparcs-kaist/new-ara-app/releases",
body: {
- tag_name: "Android-v#{version_number}-#{version_code}",
+ tag_name: "Android-v#{version_number}-#{version_code}-#{options[:short_name]}",
target_commitish: current_commit_hash,
- name: "Android-v#{version_number}-#{version_code}",
+ name: "Android-v#{version_number}-#{version_code}-#{options[:short_name]}",
body: "Write here the content of release notes...",
draft: false,
prerelease: false
@@ -58,13 +58,30 @@ platform :android do
end
desc "Deploy a alpha version to the Google Play"
- lane :alpha do
+ lane :alpha do |options|
+ unless ["production", "development"].include?(options[:env])
+ UI.user_error!("Invalid env given, pass using `env: 'production'` or `env: 'development'`")
+ end
+
+ short_name = ""
+ long_name = ""
+
+ if(options[:env] == "production")
+ # 배포용
+ short_name = "prod"
+ long_name = "production"
+ else
+ # 개발용
+ short_name = "dev"
+ long_name = "development"
+ end
+
set_timestamp_version
- sh "flutter build appbundle --no-tree-shake-icons"
+ sh "flutter build appbundle --no-tree-shake-icons --dart-define=ENV=#{long_name}"
upload_to_play_store(
aab: "../build/app/outputs/bundle/release/app-release.aab",
track: "alpha",
)
- create_release_note
+ create_release_note(short_name: short_name)
end
end
diff --git a/assets/fonts/NotoSansKR-Black.otf b/assets/fonts/NotoSansKR-Black.otf
deleted file mode 100644
index 5599581d..00000000
Binary files a/assets/fonts/NotoSansKR-Black.otf and /dev/null differ
diff --git a/assets/fonts/NotoSansKR-Bold.otf b/assets/fonts/NotoSansKR-Bold.otf
deleted file mode 100644
index be388bf5..00000000
Binary files a/assets/fonts/NotoSansKR-Bold.otf and /dev/null differ
diff --git a/assets/fonts/NotoSansKR-Light.otf b/assets/fonts/NotoSansKR-Light.otf
deleted file mode 100644
index 548e667e..00000000
Binary files a/assets/fonts/NotoSansKR-Light.otf and /dev/null differ
diff --git a/assets/fonts/NotoSansKR-Medium.otf b/assets/fonts/NotoSansKR-Medium.otf
deleted file mode 100644
index 5ddbbc03..00000000
Binary files a/assets/fonts/NotoSansKR-Medium.otf and /dev/null differ
diff --git a/assets/fonts/NotoSansKR-Regular.otf b/assets/fonts/NotoSansKR-Regular.otf
deleted file mode 100644
index 7c5c2fae..00000000
Binary files a/assets/fonts/NotoSansKR-Regular.otf and /dev/null differ
diff --git a/assets/fonts/NotoSansKR-Thin.otf b/assets/fonts/NotoSansKR-Thin.otf
deleted file mode 100644
index 1299fef0..00000000
Binary files a/assets/fonts/NotoSansKR-Thin.otf and /dev/null differ
diff --git a/assets/fonts/Pretendard-Black.otf b/assets/fonts/Pretendard-Black.otf
new file mode 100644
index 00000000..a0d849e7
Binary files /dev/null and b/assets/fonts/Pretendard-Black.otf differ
diff --git a/assets/fonts/Pretendard-Bold.otf b/assets/fonts/Pretendard-Bold.otf
new file mode 100644
index 00000000..8e5e30a2
Binary files /dev/null and b/assets/fonts/Pretendard-Bold.otf differ
diff --git a/assets/fonts/Pretendard-ExtraBold.otf b/assets/fonts/Pretendard-ExtraBold.otf
new file mode 100644
index 00000000..388f3ca4
Binary files /dev/null and b/assets/fonts/Pretendard-ExtraBold.otf differ
diff --git a/assets/fonts/Pretendard-ExtraLight.otf b/assets/fonts/Pretendard-ExtraLight.otf
new file mode 100644
index 00000000..40c8b69c
Binary files /dev/null and b/assets/fonts/Pretendard-ExtraLight.otf differ
diff --git a/assets/fonts/Pretendard-Light.otf b/assets/fonts/Pretendard-Light.otf
new file mode 100644
index 00000000..228679e9
Binary files /dev/null and b/assets/fonts/Pretendard-Light.otf differ
diff --git a/assets/fonts/Pretendard-Medium.otf b/assets/fonts/Pretendard-Medium.otf
new file mode 100644
index 00000000..05750698
Binary files /dev/null and b/assets/fonts/Pretendard-Medium.otf differ
diff --git a/assets/fonts/Pretendard-Regular.otf b/assets/fonts/Pretendard-Regular.otf
new file mode 100644
index 00000000..08bf4cfc
Binary files /dev/null and b/assets/fonts/Pretendard-Regular.otf differ
diff --git a/assets/fonts/Pretendard-SemiBold.otf b/assets/fonts/Pretendard-SemiBold.otf
new file mode 100644
index 00000000..e7e36abc
Binary files /dev/null and b/assets/fonts/Pretendard-SemiBold.otf differ
diff --git a/assets/fonts/Pretendard-Thin.otf b/assets/fonts/Pretendard-Thin.otf
new file mode 100644
index 00000000..77e792d7
Binary files /dev/null and b/assets/fonts/Pretendard-Thin.otf differ
diff --git a/assets/icons/comment.svg b/assets/icons/comment.svg
index 1bf3ae64..e8f113a6 100644
--- a/assets/icons/comment.svg
+++ b/assets/icons/comment.svg
@@ -1,10 +1,3 @@
-