Linkup is a fully functional, real-time communication platform built with Flutter and Firebase. It provides a sleek, cross-platform experience for instant messaging, showcasing modern mobile development practices like secure authentication, reactive state management, and cloud integration.
- Instant Messaging: Experience zero-latency communication powered by Firebase Cloud Firestore.
- Secure Access: Robust user authentication (Sign Up/Login) via Firebase Auth.
- Media Sharing: Seamlessly send and receive images and files.
- Real-time Presence: See who's online and ready to connect.
- Push Notifications: Never miss a message with integrated cloud messaging.
- Adaptive UI: A beautiful, responsive design that looks native on both iOS and Android.
| Component | Technology |
|---|---|
| Framework | Flutter |
| Language | Dart |
| Backend/DB | Firebase (Firestore) |
| Auth | Firebase Authentication |
| Storage | Firebase Cloud Storage |
| State Management | Provider / Bloc (Update based on your choice) |
- Flutter SDK installed.
- A Firebase Project set up.
- A physical device or emulator (iOS/Android).
-
Clone the Repo
git clone [https://github.com/raymondoyondi/Chat-Application.git](https://github.com/raymondoyondi/Chat-Application.git) cd Chat-Application -
Install Dependencies
flutter pub get
-
Firebase Configuration
- Add your
google-services.jsontoandroid/app/. - Add your
GoogleService-Info.plisttoios/Runner/. - Enable Email/Password authentication in the Firebase Console.
- Initialize Firestore Database and Storage.
- Add your
-
Run Linkup
flutter run
Linkup uses a Stream-based architecture. By leveraging Flutter's StreamBuilder, the application reacts instantly to data changes in the Firebase backend without requiring manual page refreshes.
- Services Layer: Handles API calls and Firebase interactions.
- Business Logic: Manages the state and data transformation.
- UI Layer: Modular widgets for high reusability.
- Fork the Project.
- Create your Feature Branch (
git checkout -b feature/NewLinkFeature). - Commit your Changes (
git commit -m 'Add some NewLinkFeature'). - Push to the Branch (
git push origin feature/NewLinkFeature). - Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.
