Compare commits
2 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3d5fdde322 | ||
|
|
fd003b0100 |
8 changed files with 94 additions and 101 deletions
|
|
@ -1,66 +0,0 @@
|
|||
# Contributing to MIH Project
|
||||
|
||||
Thank you for your interest in contributing to the MIH Project! To help us maintain a clean, stable, and secure codebase, please review and follow these contribution guidelines.
|
||||
|
||||
---
|
||||
|
||||
## 1. Important Repository Notice (GitHub Users)
|
||||
|
||||
> ⚠️ **CRITICAL NOTE:** If you are viewing or found this repository on GitHub, please be aware that this is a **read-only mirror** used strictly for backup purposes.
|
||||
>
|
||||
> **No Pull Requests (PRs) or Issues will be accepted or reviewed on GitHub.**
|
||||
|
||||
To contribute, you must use our active development repository hosted on **MIH Git**:
|
||||
🔗 [Active MIH Git Repo](https://git.mzansi-innovation-hub.co.za/yaso_meth/mih-project)
|
||||
|
||||
Please conduct all development, issue tracking, and collaboration on the MIH Git platform.
|
||||
|
||||
---
|
||||
|
||||
## 2. Branching Strategy & Pull/Merge Request Rules
|
||||
|
||||
To ensure production stability, we enforce strict branching rules. Please ensure your contributions align with the following structure:
|
||||
|
||||
* **Do NOT target the `main` branch:** Pull or Merge Requests made directly against the `main` branch will be automatically rejected or closed.
|
||||
* **Target the Latest Version Branch:** All bug fixes, features, and documentation updates must be made against the active version branch (e.g., branch naming convention follows `v.1.4.0` or later).
|
||||
|
||||
---
|
||||
|
||||
## 3. Recommended Workflow (Fork & Pull)
|
||||
|
||||
We use a **Fork-and-Pull** model to manage contributions safely and keep the main repository organized. Please follow these steps to submit your changes:
|
||||
|
||||
1. **Fork the Repository:** Log into **MIH Git** and click the **Fork** button on the main [mih-project](https://git.mzansi-innovation-hub.co.za/yaso_meth/mih-project) repository to create a copy under your personal account.
|
||||
2. **Clone Your Fork:** Clone your personal fork locally to your machine:
|
||||
```bash
|
||||
git clone --depth 1 https://git.mzansi-innovation-hub.co.za/YOUR_USERNAME/mih-project.git
|
||||
cd mih-project
|
||||
```
|
||||
3. **Checkout the Active Version Branch:** Fetch the latest branches and switch to the current active version branch (e.g., `v.1.4.0`):
|
||||
```bash
|
||||
git fetch origin
|
||||
git checkout v.1.4.0
|
||||
```
|
||||
4. **Create a Feature or Fix Branch:** Create a dedicated branch for your changes stemming directly from that version branch:
|
||||
```bash
|
||||
git checkout -b feature/your-feature-name
|
||||
```
|
||||
or
|
||||
```bash
|
||||
git checkout -b fix/your-fix-name
|
||||
```
|
||||
5. **Commit and Push:** Make your changes, commit them with clear descriptive messages, and push the feature branch to your fork:
|
||||
```bash
|
||||
git push origin feature/your-feature-name
|
||||
```
|
||||
or
|
||||
```bash
|
||||
git push origin fix/your-fix-name
|
||||
```
|
||||
6. **Open a Pull/Merge Request:** Go to the main repository on MIH Git. You will see a prompt to open a new Pull/Merge Request. Ensure that:
|
||||
* The **Source (Head)** is your fork's feature branch (`YOUR_USERNAME/mih-project:feature/your-feature-name`).
|
||||
* The **Target (Base)** is the main repository's active version branch (`yaso_meth/mih-project:v.1.4.0`).
|
||||
|
||||
---
|
||||
|
||||
Thank you for your time and effort in helping build and improve the MIH Project!
|
||||
|
|
@ -1,3 +1,7 @@
|
|||
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
# This builtInKotlin flag was added automatically by Flutter migrator
|
||||
android.builtInKotlin=false
|
||||
# This newDsl flag was added automatically by Flutter migrator
|
||||
android.newDsl=false
|
||||
|
|
|
|||
|
|
@ -30,6 +30,10 @@ class DefaultFirebaseOptions {
|
|||
return windows;
|
||||
case TargetPlatform.linux:
|
||||
return web;
|
||||
// throw UnsupportedError(
|
||||
// 'DefaultFirebaseOptions have not been configured for linux - '
|
||||
// 'you can reconfigure this by running the FlutterFire CLI again.',
|
||||
// );
|
||||
default:
|
||||
throw UnsupportedError(
|
||||
'DefaultFirebaseOptions are not supported for this platform.',
|
||||
|
|
@ -38,48 +42,48 @@ class DefaultFirebaseOptions {
|
|||
}
|
||||
|
||||
static const FirebaseOptions web = FirebaseOptions(
|
||||
apiKey: 'YOUR_WEB_API_KEY',
|
||||
appId: 'YOUR_WEB_APP_ID',
|
||||
messagingSenderId: 'YOUR_MESSAGING_SENDER_ID',
|
||||
projectId: 'YOUR_PROJECT_ID',
|
||||
authDomain: 'YOUR_AUTH_DOMAIN',
|
||||
storageBucket: 'YOUR_STORAGE_BUCKET',
|
||||
measurementId: 'YOUR_MEASUREMENT_ID',
|
||||
apiKey: 'AIzaSyDN-f4sJ4n_fyvrLR193_IIkTsccRVUQxw',
|
||||
appId: '1:33677883408:web:47b8021df7fcacd2223295',
|
||||
messagingSenderId: '33677883408',
|
||||
projectId: 'mzansi-innovation-hub',
|
||||
authDomain: 'mzansi-innovation-hub.firebaseapp.com',
|
||||
storageBucket: 'mzansi-innovation-hub.firebasestorage.app',
|
||||
measurementId: 'G-Y3B5E3HCJY',
|
||||
);
|
||||
|
||||
static const FirebaseOptions android = FirebaseOptions(
|
||||
apiKey: 'YOUR_ANDROID_API_KEY',
|
||||
appId: 'YOUR_ANDROID_APP_ID',
|
||||
messagingSenderId: 'YOUR_MESSAGING_SENDER_ID',
|
||||
projectId: 'YOUR_PROJECT_ID',
|
||||
storageBucket: 'YOUR_STORAGE_BUCKET',
|
||||
apiKey: 'AIzaSyBUkjWdu9YcgiF-e9TC5hoiEoCjPyjA5hU',
|
||||
appId: '1:33677883408:android:ebd8565991c56257223295',
|
||||
messagingSenderId: '33677883408',
|
||||
projectId: 'mzansi-innovation-hub',
|
||||
storageBucket: 'mzansi-innovation-hub.firebasestorage.app',
|
||||
);
|
||||
|
||||
static const FirebaseOptions ios = FirebaseOptions(
|
||||
apiKey: 'YOUR_IOS_API_KEY',
|
||||
appId: 'YOUR_IOS_APP_ID',
|
||||
messagingSenderId: 'YOUR_MESSAGING_SENDER_ID',
|
||||
projectId: 'YOUR_PROJECT_ID',
|
||||
storageBucket: 'YOUR_STORAGE_BUCKET',
|
||||
iosBundleId: 'YOUR_IOS_BUNDLE_ID',
|
||||
apiKey: 'AIzaSyDRqY5I5CXjEtWkUX1YUfKT8IUlln9PUuY',
|
||||
appId: '1:33677883408:ios:2048dac086428716223295',
|
||||
messagingSenderId: '33677883408',
|
||||
projectId: 'mzansi-innovation-hub',
|
||||
storageBucket: 'mzansi-innovation-hub.firebasestorage.app',
|
||||
iosBundleId: 'za.co.mzansiinnovationhub.mih',
|
||||
);
|
||||
|
||||
static const FirebaseOptions macos = FirebaseOptions(
|
||||
apiKey: 'YOUR_MACOS_API_KEY',
|
||||
appId: 'YOUR_MACOS_APP_ID',
|
||||
messagingSenderId: 'YOUR_MESSAGING_SENDER_ID',
|
||||
projectId: 'YOUR_PROJECT_ID',
|
||||
storageBucket: 'YOUR_STORAGE_BUCKET',
|
||||
iosBundleId: 'YOUR_MACOS_BUNDLE_ID',
|
||||
apiKey: 'AIzaSyDRqY5I5CXjEtWkUX1YUfKT8IUlln9PUuY',
|
||||
appId: '1:33677883408:ios:e2db11a42fc3452e223295',
|
||||
messagingSenderId: '33677883408',
|
||||
projectId: 'mzansi-innovation-hub',
|
||||
storageBucket: 'mzansi-innovation-hub.firebasestorage.app',
|
||||
iosBundleId: 'com.example.patientManager',
|
||||
);
|
||||
|
||||
static const FirebaseOptions windows = FirebaseOptions(
|
||||
apiKey: 'YOUR_WINDOWS_API_KEY',
|
||||
appId: 'YOUR_WINDOWS_APP_ID',
|
||||
messagingSenderId: 'YOUR_MESSAGING_SENDER_ID',
|
||||
projectId: 'YOUR_PROJECT_ID',
|
||||
authDomain: 'YOUR_AUTH_DOMAIN',
|
||||
storageBucket: 'YOUR_STORAGE_BUCKET',
|
||||
measurementId: 'YOUR_MEASUREMENT_ID',
|
||||
apiKey: 'AIzaSyDN-f4sJ4n_fyvrLR193_IIkTsccRVUQxw',
|
||||
appId: '1:33677883408:web:e08becaef3261c59223295',
|
||||
messagingSenderId: '33677883408',
|
||||
projectId: 'mzansi-innovation-hub',
|
||||
authDomain: 'mzansi-innovation-hub.firebaseapp.com',
|
||||
storageBucket: 'mzansi-innovation-hub.firebasestorage.app',
|
||||
measurementId: 'G-FKKENBX8TT',
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@ void main() async {
|
|||
debugPrint('APP INSTALLED!');
|
||||
});
|
||||
final GoRouter appRouter = MihGoRouter().mihRouter;
|
||||
FlutterNativeSplash.remove();
|
||||
runApp(MzansiInnovationHub(
|
||||
router: appRouter,
|
||||
));
|
||||
|
|
|
|||
|
|
@ -33,8 +33,7 @@ void main() async {
|
|||
debugPrint('APP INSTALLED!');
|
||||
});
|
||||
final GoRouter appRouter = MihGoRouter().mihRouter;
|
||||
FlutterNativeSplash.remove();
|
||||
runApp(MzansiInnovationHub(
|
||||
(MzansiInnovationHub(
|
||||
router: appRouter,
|
||||
));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_native_splash/flutter_native_splash.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_packages/mih_file_viewer/components/mih_print_prevew.dart';
|
||||
import 'package:mzansi_innovation_hub/mih_objects/arguments.dart';
|
||||
|
|
@ -85,6 +86,7 @@ class MihGoRouter {
|
|||
];
|
||||
KenLogger.success(
|
||||
"Redirect Check: ${state.fullPath}, isUserSignedIn: $isUserSignedIn");
|
||||
FlutterNativeSplash.remove();
|
||||
if (!isUserSignedIn && !unauthenticatedPaths.contains(state.fullPath)) {
|
||||
return MihGoRouterPaths.mihAuthentication;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import 'package:file_picker/file_picker.dart';
|
|||
import 'package:file_saver/file_saver.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:ken_logger/ken_logger.dart';
|
||||
|
|
@ -403,6 +404,30 @@ class _MihBusinessQrCodeState extends State<MihBusinessQrCode> {
|
|||
);
|
||||
},
|
||||
),
|
||||
SpeedDialChild(
|
||||
child: Icon(
|
||||
Icons.copy_rounded,
|
||||
color: MihColors.primary(),
|
||||
),
|
||||
label: "Copy Link",
|
||||
labelBackgroundColor: MihColors.green(),
|
||||
labelStyle: TextStyle(
|
||||
color: MihColors.primary(),
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
backgroundColor: MihColors.green(),
|
||||
onTap: () async {
|
||||
await Clipboard.setData(
|
||||
ClipboardData(text: "$qrCodedata${business.business_id}"),
|
||||
);
|
||||
if (!context.mounted) return;
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
MihSnackBar(
|
||||
child: Text("Link Copied!"),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
]),
|
||||
)
|
||||
],
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import 'package:file_picker/file_picker.dart';
|
|||
import 'package:file_saver/file_saver.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:ken_logger/ken_logger.dart';
|
||||
|
|
@ -402,6 +403,31 @@ class _MihPersonalQrCodeState extends State<MihPersonalQrCode> {
|
|||
);
|
||||
},
|
||||
),
|
||||
SpeedDialChild(
|
||||
child: Icon(
|
||||
Icons.copy_rounded,
|
||||
color: MihColors.primary(),
|
||||
),
|
||||
label: "Copy Link",
|
||||
labelBackgroundColor: MihColors.green(),
|
||||
labelStyle: TextStyle(
|
||||
color: MihColors.primary(),
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
backgroundColor: MihColors.green(),
|
||||
onTap: () async {
|
||||
await Clipboard.setData(
|
||||
ClipboardData(
|
||||
text: "$_qrCodedata${user.username.toLowerCase()}"),
|
||||
);
|
||||
if (!context.mounted) return;
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
MihSnackBar(
|
||||
child: Text("Link Copied!"),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
]),
|
||||
)
|
||||
],
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue