Connect, Share, Engage - A modern social media platform built with Flutter
Let's Connect is a feature-rich social media application that enables users to share moments, connect with friends, and engage with content seamlessly - both online and offline. Built with Flutter and powered by a robust backend stack, it offers a smooth, native experience across multiple platforms.
- Image & Video Sharing: Share your precious moments in high quality
- Reels: Create, share, and discover short-form vertical videos
- Smart Feed: Personalized content feed based on your interests and interactions
- Explore Section: Discover trending content, new creators, and interesting topics
- Story Support: Share ephemeral content that lasts 24 hours
- Advanced Comments System:
- Nested comments with replies
- React to comments with emojis
- Rich text formatting support
- @mentions and #hashtags
- Direct Messaging:
- Real-time chat with friends
- Media sharing in conversations
- Read receipts and typing indicators
- Message reactions
- Real-time notifications via Firebase Cloud Messaging (FCM)
- Customizable notification preferences
- Activity notifications for:
- Likes and comments on your posts
- New followers and friend requests
- Mentions and tags
- Direct messages
- Seamless Offline Experience:
- View and interact with previously loaded content
- Create posts and comments while offline
- Queue actions for sync when back online
- Smart Sync:
- Efficient data synchronization using PowerSync
- Background sync with minimal data usage
- Conflict resolution for concurrent changes
- Customizable user profiles
- Activity history and statistics
- Content collections and saved posts
- Privacy settings and account management
- Framework: Flutter & Dart
- State Management: Bloc pattern
- Local Storage: PowerSync
- UI/UX: Material Design 3.0
- Analytics: Firebase Analytics
- Database: PostgreSQL
- Backend Service: Supabase
- Authentication: Firebase Auth
- Push Notifications: Firebase Cloud Messaging
- File Storage: Supabase Storage
Feed | Explore | Comments | Share |
---|---|---|---|
Notifications | Reply to Chat | Create Post | Profile |
---|---|---|---|
- Flutter SDK (>=3.0.0)
- Dart SDK (>=3.0.0)
- Android Studio / VS Code
- Firebase project setup
- Supabase project setup
- Clone the repository:
git clone https://github.com/HarshSahu23/lets-connect.git
cd lets-connect
- Install dependencies:
flutter pub get
- Set up environment variables:
cp .env.example .env
Edit .env
with your configuration values.
This project contains 3 flavors:
- development
- staging
- production
To run the desired flavor either use the launch configuration in VSCode/Android Studio or use the following commands:
# Development
$ flutter run --flavor development --target lib/main_development.dart
# Staging
$ flutter run --flavor staging --target lib/main_staging.dart
# Production
$ flutter run --flavor production --target lib/main_production.dart
*Let's Connect works on iOS, Android, Web, and Windows.
To run all unit and widget tests use the following command:
$ flutter test --coverage --test-randomize-ordering-seed random
To view the generated coverage report you can use lcov.
# Generate Coverage Report
$ genhtml coverage/lcov.info -o coverage/
# Open Coverage Report
$ open coverage/index.html
This project supports multiple languages using Flutter's built-in internationalization system. See Working with Translations for more details.
- Add new locale to
lib/l10n/arb/
- Update iOS configuration:
<!-- ios/Runner/Info.plist -->
<key>CFBundleLocalizations</key>
<array>
<string>en</string>
<string>es</string>
<!-- Add new locale here -->
</array>
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with β€οΈ using Flutter