Your Personal Scuba Diving Assistant
Divemate is a full-stack mobile and web application designed to enhance the diving experience. It serves as a personal assistant to log dives, track progress, and connect with divers worldwide. Built using Flutter for cross-platform compatibility and powered by Firebase for a robust and scalable backend, Divemate provides a seamless experience for iOS, Android, and Web users.
- Dive Logging: Track your dives, locations, and key metrics with ease.
- Global Connectivity: Connect with divers from around the globe to share experiences and insights.
- Cross-Platform Support: One app for all devices – available on iOS, Android, and the web.
- Cloud Storage: All data is securely stored and synced in real-time using Firebase.
- User Profiles: Create personalized profiles to showcase your diving achievements.
- Flutter: Cross-platform UI toolkit for creating native iOS/Android and web applications.
- Firebase:
- Firebase Authentication: Secure user authentication and account management.
- Cloud Firestore: Real-time database for storing user data and dive logs.
- Cloud Functions: Serverless functions for backend logic and automation.
- Storage: Media uploads and storage (e.g., photos of dives).
- Flutter SDK installed (Get Flutter).
- Firebase project set up (Firebase Console).
-
Clone the repository:
git clone https://github.com/your-username/divemate.git cd divemate
-
Install dependencies:
flutter pub get
-
Configure Firebase:
- Download
google-services.json
(Android) andGoogleService-Info.plist
(iOS) from your Firebase project. - Place them in the respective directories:
android/app/
for Android.ios/Runner/
for iOS.
- Download
-
Run the app:
flutter run
divemate/
├── lib/ # Main application code (Flutter)
│ ├── screens/ # UI screens (Login, Menu, Profile, etc.)
│ ├── services/ # Firebase and backend services
│ ├── models/ # Data models for dive logs, users, etc.
│ └── utils/ # Utility functions and helpers
├── assets/ # App assets (icons, images, etc.)
├── android/ # Android-specific configuration
├── ios/ # iOS-specific configuration
├── web/ # Web-specific configuration
├── pubspec.yaml # Flutter dependencies
├── README.md # Project documentation
└── ...
Divemate is designed to be deployed across multiple platforms. Below are the deployment options:
- Build the app using
flutter build apk
(Android) orflutter build ios
(iOS). - Publish the app on the App Store and Google Play Store.
- Build the web app:
flutter build web
- Deploy on a hosting service such as Firebase Hosting, Netlify, or AWS.
Run the following command to test the app locally:
flutter test
We welcome contributions to Divemate! To get started:
- Fork the repository.
- Create a new branch:
git checkout -b feature/new-feature
- Commit your changes:
git commit -m "Add new feature"
- Push to the branch:
git push origin feature/new-feature
- Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
For any questions, suggestions, or feedback, feel free to reach out:
- Email: wasiq.qureshi@hotmail.com
- GitHub: wasiqnauman
Thank you for exploring Divemate! 🐠 Dive safe and stay connected!