Loopsy is a cutting-edge social media platform built with modern Android development practices. It combines the best of social networking with innovative UI/UX design, featuring liquid animations, real-time interactions, and AI-powered content discovery. Built entirely with Jetpack Compose and MVVM architecture for scalable, maintainable code.
- 📱 Modern UI/UX with liquid bottom navigation and smooth animations
- 🔥 Multi-media Content - Posts, Stories, Reels with advanced camera integration
- 👥 Social Networking - Follow, like, comment, share with real-time updates
- 🎯 Smart Discovery - AI-powered content recommendation engine
- 💬 Real-time Messaging - Instant chat with multimedia support
- 📸 Advanced Camera - CameraX integration with filters and effects
- ☁️ Cloud Storage - Cloudinary for optimized media delivery
- 🔐 Secure Authentication - Firebase Auth with Google Sign-In
- 🎨 Material 3 Design - Beautiful, accessible, and responsive UI
| Layer | Technology |
|---|---|
| Frontend | Jetpack Compose, Material 3, Navigation Compose |
| Architecture | MVVM, Hilt Dependency Injection, Repository Pattern |
| Backend | Firebase (Auth, Firestore, Storage, Analytics, Messaging) |
| Media | Cloudinary, CameraX, ExoPlayer, Coil Image Loading |
| Animation | Compose Animations, Lottie, Custom Liquid Navigation |
| Testing | JUnit, Espresso, Compose Testing |
Loopsy follows MVVM (Model-View-ViewModel) architecture with Repository Pattern for clean separation of concerns:
| Component | Responsibility |
|---|---|
| UI Layer | Jetpack Compose screens and components |
| ViewModel | Business logic, state management, UI events |
| Repository | Data abstraction layer, API calls, caching |
| Data Layer | Firebase integration, local storage, network operations |
| DI Layer | Hilt modules for dependency injection |
- Splash Screen → Welcome → Login/SignUp → Onboarding → Home
- 🏠 Home - Social feed with posts, stories, and reels
- 🔍 Discover - Explore trending content and users
- ➕ Create - Multi-option content creation modal
- 📝 Create Post
- 📖 Create Story
- 🎬 Create Reel
- ⚙️ More Options
- 💬 Messages - Real-time chat and conversations
- 👤 Profile - User profile, settings, and activity
- Custom animated navigation with floating pill indicator
- Diamond-shaped center create button with gradient
- Smooth transitions and micro-interactions
- CameraX implementation for high-quality media capture
- Real-time filters and effects
- Video recording with audio support
- Gallery integration for media selection
- Posts: Multi-image/video support with captions and hashtags
- Stories: Ephemeral content with creative tools
- Reels: Short-form video content with editing capabilities
data class User(
val id: String,
val name: String,
val username: String,
val email: String,
val profileImageUrl: String,
val bio: String,
val interests: List<String>,
val followers: List<String>,
val following: List<String>,
val isVerified: Boolean,
val friendshipScore: Int,
val streakCount: Int
)data class Post(
val id: String,
val userId: String,
val content: String,
val mediaUrls: List<String>,
val mediaType: MediaType,
val likes: List<String>,
val comments: List<Comment>,
val hashtags: List<String>,
val location: String
)- Android Studio Ladybug | 2024.2.1+
- JDK 8+
- Android SDK 28+
- Firebase Project Setup
# Clone the repository
git clone https://github.com/Shamik200/loopsy.git
cd loopsy/socialmedia
# Open in Android Studio
# Sync project with Gradle files
# Add your Firebase configuration files
# Run the app on device/emulator- Create a Firebase project
- Add Android app with package name:
com.loop.socialmedia - Download
google-services.jsonand place inapp/directory - Enable Authentication, Firestore, Storage, and Analytics
- Create Cloudinary account
- Add your cloud configuration in the app
- Configure upload presets for media handling
socialmedia/
┣ app/src/main/java/com/loop/socialmedia/
┃ ┣ data/
┃ ┃ ┣ model/ # Data classes (User, Post, Story, Message)
┃ ┃ ┗ repository/ # Repository implementations
┃ ┣ di/ # Hilt dependency injection modules
┃ ┣ ui/
┃ ┃ ┣ components/ # Reusable UI components
┃ ┃ ┣ navigation/ # Navigation setup and routing
┃ ┃ ┣ screens/ # Main app screens
┃ ┃ ┣ st/ # Auth and onboarding screens
┃ ┃ ┗ theme/ # Material 3 theming
┃ ┣ MainActivity.kt # Main activity with Compose setup
┃ ┗ LoopApplication.kt # Application class with Hilt
┣ build.gradle.kts # App-level dependencies
┗ google-services.json # Firebase configuration
- ✅ Project architecture and dependency injection setup
- ✅ Firebase integration (Auth, Firestore, Storage)
- ✅ Cloudinary media upload configuration
- ✅ Authentication flow (Login, SignUp, Onboarding)
- ✅ Navigation system with liquid bottom navigation
- ✅ Data models and repository pattern
- ✅ UI components and theming system
- ✅ CameraX integration for media capture
- 🚧 Social feed implementation
- 🚧 Real-time messaging system
- 🚧 Content creation workflows
- 🚧 User profile management
- 🚧 Discovery and search functionality
- 📋 AI-powered content recommendations
- 📋 Advanced video editing tools
- 📋 Push notifications
- 📋 Analytics and insights
- 📋 Dark mode support
- 📋 Accessibility improvements
# Run unit tests
./gradlew test
# Run instrumented tests
./gradlew connectedAndroidTest
# Run UI tests
./gradlew connectedDebugAndroidTest---
This project is currently in active development. Contributions, issues, and feature requests are welcome!
- 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.
Made with ❤️ by Shamik Munjani
📫 LinkedIn · 📧 shamikmunjani@gmail.com
🔗 Project: https://github.com/Shamik200/loopsy




