Skip to content

abdulwahed-s/paloma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

70 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Paloma 🐦

Paloma Logo

A modern, beautiful social media application built with Flutter and Firebase. Share your thoughts, connect with others, and express yourself through posts, likes, and replies.

Flutter Firebase Dart Platform

πŸš€ Try It Now

Want to experience Paloma right away? Download the latest release from our GitHub Releases page!

Download Options:

  • πŸ“± Android APK: Direct install for Android devices

✨ Features

  • πŸ” Authentication: Secure user authentication with Firebase Auth
  • πŸ“± Real-time Posts: Create and share posts with real-time updates
  • ❀️ Like System: Engage with content through likes
  • πŸ’¬ Replies: Comment and reply to posts
  • πŸ‘€ User Profiles: Customizable profiles with usernames, bios, and profile pictures
  • 🎨 Dark/Light Themes: Beautiful Material Design 3 theming with theme switching
  • πŸ‘‘ Role-based Access: Admin and user role management
  • πŸ“Έ Image Upload: Profile picture management with Firebase Storage
  • πŸ”„ Real-time Sync: Live updates across all users
  • πŸ“± Cross-platform: Works seamlessly on Android and iOS

πŸ—οΈ Architecture

This project follows a clean, scalable architecture:

lib/
β”œβ”€β”€ controllers/          # GetX controllers for state management
β”œβ”€β”€ core/                 # Core functionality (routes, constants)
β”œβ”€β”€ data/                 # Data layer (repositories, models)
β”œβ”€β”€ presentation/         # Presentation layer
β”‚   β”œβ”€β”€ screens/         # Screen widgets
β”‚   └── widgets/         # Reusable UI components
└── main.dart            # Application entry point

State Management

  • BLoC Pattern: Complex state management for authentication and data streams
  • GetX: Simple state management for UI controllers and navigation

Design System

  • Material Design 3: Modern Google design language
  • Flex Color Scheme: Beautiful, consistent color theming
  • Custom Fonts: Scheherazade New for elegant typography

πŸš€ Getting Started

Prerequisites

  • Flutter SDK (^3.8.1)
  • Dart SDK (^3.0.0)
  • Firebase project with Authentication, Firestore, and Storage enabled

Installation

  1. Clone the repository

    git clone https://github.com/your-username/paloma.git
    cd paloma
  2. Install dependencies

    flutter pub get
  3. Configure Firebase

    • Create a Firebase project at Firebase Console
    • Enable Authentication, Firestore Database, and Storage
    • Add your Android/iOS apps and download the configuration files
    • Place google-services.json (Android) and GoogleService-Info.plist (iOS) in appropriate directories
  4. Configure Firebase Options

    flutterfire configure
  5. Run the app

    flutter run

πŸ“± Screenshots

πŸ› οΈ Tech Stack

Core Framework

  • Flutter: Cross-platform UI framework
  • Dart: Programming language

Backend & Services

  • Firebase Authentication: User authentication
  • Cloud Firestore: NoSQL database for real-time data
  • Firebase Storage: File storage for profile images

State Management

  • BLoC: Business logic components for complex state
  • GetX: Lightweight state management and navigation

UI & Design

  • Material Design 3: Modern design system
  • Flex Color Scheme: Advanced theming
  • Cupertino Icons: iOS-style icons

Additional Libraries

  • Cached Network Image: Efficient image loading and caching
  • Image Picker: Native image selection
  • Shared Preferences: Local data persistence
  • Jiffy: Date/time formatting
  • Shimmer: Loading animations

πŸ“‚ Project Structure

paloma/
β”œβ”€β”€ android/              # Android-specific files
β”œβ”€β”€ ios/                  # iOS-specific files
β”œβ”€β”€ lib/                  # Flutter source code
β”‚   β”œβ”€β”€ controllers/      # GetX controllers
β”‚   β”œβ”€β”€ core/            # Core utilities and routes
β”‚   β”œβ”€β”€ data/            # Data layer
β”‚   β”œβ”€β”€ presentation/    # UI layer
β”‚   └── main.dart        # App entry point
β”œβ”€β”€ assets/              # Static assets (images, fonts)
β”œβ”€β”€ test/                # Unit and widget tests
β”œβ”€β”€ pubspec.yaml         # Dependencies and configuration
└── README.md           # Project documentation

πŸ”§ Configuration

Firebase Setup

  1. Create collections in Firestore:
    • users: User profiles and metadata
    • User_Posts: Posts with likes and timestamps
    • User_Posts/{postId}/Replies: Nested replies collection

Environment Variables

Configure your Firebase project ID in lib/firebase_options.dart (auto-generated by flutterfire).

πŸ§ͺ Testing

Run tests with:

flutter test

Run integration tests:

flutter test integration_test/

🚒 Deployment

Android

flutter build apk --release
flutter build appbundle --release

iOS

flutter build ios --release

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“‹ Roadmap

  • Push notifications
  • Direct messaging
  • Stories feature
  • Video posts support
  • Advanced search and filters
  • Multi-language support

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Flutter team for the amazing framework
  • Firebase for robust backend services
  • Material Design team for beautiful design guidelines
  • Open source community for inspiration and tools

πŸ“ž Support

If you have any questions or issues, please open an issue on GitHub or contact the maintainers.


Made with ❀️ using Flutter and Firebase

About

A beautiful social media app built with Flutter and Firebase.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors