refactor: restructure monorepo to align with industry standards
This commit restructures the monorepo to improve organization, maintainability, and scalability. The changes include: - Moving mobile apps from `mobile-apps/` to `apps/mobile-*`. - Moving the web dashboard from `admin-web/` and `frontend-web/` to `apps/web-dashboard/`. - Moving Firebase-related files to the root `firebase/` directory. - Adding a `.geminiignore` file to exclude unnecessary files from Gemini analysis. - Updating `.gitignore` to reflect the new structure and exclude sensitive files. - Updating `codemagic.yaml` to reflect the new app locations. - Adding a `make help` command to the root directory. - Adding a `make install-git-hooks` command to install git hooks. - Adding a `docs/02-codemagic-env-vars.md` file to document Codemagic environment variables. - Adding a `docs/03-contributing.md` file to document contribution guidelines. - Adding prototype placeholders to the internal launchpad. - Updating the `README.md` file to reflect the new structure and provide updated instructions. These changes improve the overall structure of the monorepo and make it easier to develop, maintain, and scale the KROW Workforce platform.
This commit is contained in:
101
docs/02-codemagic-env-vars.md
Normal file
101
docs/02-codemagic-env-vars.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# Codemagic Environment Variables
|
||||
|
||||
This document outlines the environment variables required for the Codemagic CI/CD pipelines defined in `codemagic.yaml`. These variables should be configured in your Codemagic project under **Environment variables**.
|
||||
|
||||
## Client App (`client-app`)
|
||||
|
||||
---
|
||||
|
||||
### Group: `client_app_dev_credentials`
|
||||
|
||||
| Variable Name | Example Value | Secure | Description |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| `FLAVOR` | `dev` | No | The Flutter flavor to use for the build. |
|
||||
| `FIREBASE_APP_ID_ANDROID` | `1:DEV_ANDROID_APP_ID` | No | The Firebase App ID for the Android app (Dev). |
|
||||
| `FIREBASE_APP_ID_IOS` | `1:DEV_IOS_APP_ID` | No | The Firebase App ID for the iOS app (Dev). |
|
||||
| `FIREBASE_TESTER_GROUPS` | `developers` | No | Comma-separated list of Firebase tester groups. |
|
||||
| `FIREBASE_TOKEN` | `(your_firebase_token)` | Yes | Your Firebase CLI token. |
|
||||
| `GOOGLE_SERVICES_JSON` | `(contents of google-services.json)` | Yes | Contents of your `google-services.json` file for Android (Dev). |
|
||||
| `GOOGLE_SERVICE_INFO_PLIST` | `(contents of GoogleService-Info.plist)` | Yes | Contents of your `GoogleService-Info.plist` file for iOS (Dev). |
|
||||
| `KEYSTORE_PASSWORD` | `(your_keystore_password)` | Yes | Password for the Android keystore. |
|
||||
| `KEY_ALIAS` | `(your_key_alias)` | Yes | Alias for the key in the Android keystore. |
|
||||
| `KEY_PASSWORD` | `(your_key_password)` | Yes | Password for the key in the Android keystore. |
|
||||
|
||||
### Group: `client_app_staging_credentials`
|
||||
|
||||
| Variable Name | Example Value | Secure | Description |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| `FLAVOR` | `staging` | No | The Flutter flavor to use for the build. |
|
||||
| `FIREBASE_APP_ID_ANDROID` | `1:STAGING_ANDROID_APP_ID` | No | The Firebase App ID for the Android app (Staging). |
|
||||
| `FIREBASE_APP_ID_IOS` | `1:STAGING_IOS_APP_ID` | No | The Firebase App ID for the iOS app (Staging). |
|
||||
| `FIREBASE_TESTER_GROUPS` | `qa-team, stakeholders` | No | Comma-separated list of Firebase tester groups. |
|
||||
| `FIREBASE_TOKEN` | `(your_firebase_token)` | Yes | Your Firebase CLI token. |
|
||||
| `GOOGLE_SERVICES_JSON` | `(contents of google-services.json)` | Yes | Contents of your `google-services.json` file for Android (Staging). |
|
||||
| `GOOGLE_SERVICE_INFO_PLIST` | `(contents of GoogleService-Info.plist)` | Yes | Contents of your `GoogleService-Info.plist` file for iOS (Staging). |
|
||||
| `KEYSTORE_PASSWORD` | `(your_keystore_password)` | Yes | Password for the Android keystore. |
|
||||
| `KEY_ALIAS` | `(your_key_alias)` | Yes | Alias for the key in the Android keystore. |
|
||||
| `KEY_PASSWORD` | `(your_key_password)` | Yes | Password for the key in the Android keystore. |
|
||||
|
||||
### Group: `client_app_prod_credentials`
|
||||
|
||||
| Variable Name | Example Value | Secure | Description |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| `FLAVOR` | `prod` | No | The Flutter flavor to use for the build. |
|
||||
| `FIREBASE_APP_ID_ANDROID` | `1:PROD_ANDROID_APP_ID` | No | The Firebase App ID for the Android app (Prod). |
|
||||
| `FIREBASE_APP_ID_IOS` | `1:PROD_IOS_APP_ID` | No | The Firebase App ID for the iOS app (Prod). |
|
||||
| `FIREBASE_TESTER_GROUPS` | `(empty or specific group)` | No | Comma-separated list of Firebase tester groups. |
|
||||
| `FIREBASE_TOKEN` | `(your_firebase_token)` | Yes | Your Firebase CLI token. |
|
||||
| `GOOGLE_SERVICES_JSON` | `(contents of google-services.json)` | Yes | Contents of your `google-services.json` file for Android (Prod). |
|
||||
| `GOOGLE_SERVICE_INFO_PLIST` | `(contents of GoogleService-Info.plist)` | Yes | Contents of your `GoogleService-Info.plist` file for iOS (Prod). |
|
||||
| `KEYSTORE_PASSWORD` | `(your_keystore_password)` | Yes | Password for the Android keystore. |
|
||||
| `KEY_ALIAS` | `(your_key_alias)` | Yes | Alias for the key in the Android keystore. |
|
||||
| `KEY_PASSWORD` | `(your_key_password)` | Yes | Password for the key in the Android keystore. |
|
||||
|
||||
## Staff App (`staff-app`)
|
||||
|
||||
---
|
||||
|
||||
### Group: `staff_app_dev_credentials`
|
||||
|
||||
| Variable Name | Example Value | Secure | Description |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| `FLAVOR` | `dev` | No | The Flutter flavor to use for the build. |
|
||||
| `FIREBASE_APP_ID_ANDROID` | `1:DEV_ANDROID_APP_ID` | No | The Firebase App ID for the Android app (Dev). |
|
||||
| `FIREBASE_APP_ID_IOS` | `1:DEV_IOS_APP_ID` | No | The Firebase App ID for the iOS app (Dev). |
|
||||
| `FIREBASE_TESTER_GROUPS` | `developers` | No | Comma-separated list of Firebase tester groups. |
|
||||
| `FIREBASE_TOKEN` | `(your_firebase_token)` | Yes | Your Firebase CLI token. |
|
||||
| `GOOGLE_SERVICES_JSON` | `(contents of google-services.json)` | Yes | Contents of your `google-services.json` file for Android (Dev). |
|
||||
| `GOOGLE_SERVICE_INFO_PLIST` | `(contents of GoogleService-Info.plist)` | Yes | Contents of your `GoogleService-Info.plist` file for iOS (Dev). |
|
||||
| `KEYSTORE_PASSWORD` | `(your_keystore_password)` | Yes | Password for the Android keystore. |
|
||||
| `KEY_ALIAS` | `(your_key_alias)` | Yes | Alias for the key in the Android keystore. |
|
||||
| `KEY_PASSWORD` | `(your_key_password)` | Yes | Password for the key in the Android keystore. |
|
||||
|
||||
### Group: `staff_app_staging_credentials`
|
||||
|
||||
| Variable Name | Example Value | Secure | Description |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| `FLAVOR` | `staging` | No | The Flutter flavor to use for the build. |
|
||||
| `FIREBASE_APP_ID_ANDROID` | `1:STAGING_ANDROID_APP_ID` | No | The Firebase App ID for the Android app (Staging). |
|
||||
| `FIREBASE_APP_ID_IOS` | `1:STAGING_IOS_APP_ID` | No | The Firebase App ID for the iOS app (Staging). |
|
||||
| `FIREBASE_TESTER_GROUPS` | `qa-team, stakeholders` | No | Comma-separated list of Firebase tester groups. |
|
||||
| `FIREBASE_TOKEN` | `(your_firebase_token)` | Yes | Your Firebase CLI token. |
|
||||
| `GOOGLE_SERVICES_JSON` | `(contents of google-services.json)` | Yes | Contents of your `google-services.json` file for Android (Staging). |
|
||||
| `GOOGLE_SERVICE_INFO_PLIST` | `(contents of GoogleService-Info.plist)` | Yes | Contents of your `GoogleService-Info.plist` file for iOS (Staging). |
|
||||
| `KEYSTORE_PASSWORD` | `(your_keystore_password)` | Yes | Password for the Android keystore. |
|
||||
| `KEY_ALIAS` | `(your_key_alias)` | Yes | Alias for the key in the Android keystore. |
|
||||
| `KEY_PASSWORD` | `(your_key_password)` | Yes | Password for the key in the Android keystore. |
|
||||
|
||||
### Group: `staff_app_prod_credentials`
|
||||
|
||||
| Variable Name | Example Value | Secure | Description |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| `FLAVOR` | `prod` | No | The Flutter flavor to use for the build. |
|
||||
| `FIREBASE_APP_ID_ANDROID` | `1:PROD_ANDROID_APP_ID` | No | The Firebase App ID for the Android app (Prod). |
|
||||
| `FIREBASE_APP_ID_IOS` | `1:PROD_IOS_APP_ID` | No | The Firebase App ID for the iOS app (Prod). |
|
||||
| `FIREBASE_TESTER_GROUPS` | `(empty or specific group)` | No | Comma-separated list of Firebase tester groups. |
|
||||
| `FIREBASE_TOKEN` | `(your_firebase_token)` | Yes | Your Firebase CLI token. |
|
||||
| `GOOGLE_SERVICES_JSON` | `(contents of google-services.json)` | Yes | Contents of your `google-services.json` file for Android (Prod). |
|
||||
| `GOOGLE_SERVICE_INFO_PLIST` | `(contents of GoogleService-Info.plist)` | Yes | Contents of your `GoogleService-Info.plist` file for iOS (Prod). |
|
||||
| `KEYSTORE_PASSWORD` | `(your_keystore_password)` | Yes | Password for the Android keystore. |
|
||||
| `KEY_ALIAS` | `(your_key_alias)` | Yes | Alias for the key in the Android keystore. |
|
||||
| `KEY_PASSWORD` | `(your_key_password)` | Yes | Password for the key in the Android keystore. |
|
||||
Reference in New Issue
Block a user