⬇️ Download Findr ✅ 450+ downloads | ⏰ 65+ active projects tracked via Firebase
Findr is a smart collaboration platform that helps people discover, connect, and work together based on skills, roles, and interests at any physical location or event. It combines the power of real-time geolocation, secure chat, and project networking into a seamless mobile experience.
- College fests, hackathons, tech conferences
- Co-working spaces, incubation centers
- Student clubs or organizations
- Professional networking in a city or community
- Locate professionals nearby using geofencing and live map view.
- Search & filter users by role, skill, project interests, location or radius.
- Users can post Projects, Bugs, or Ideas within their geofence.
- Posts support: title, description, skills needed, project links, and attachments(media).
- Users can like, comment, share post.
-
Fully encrypted real-time messaging using Signal Protocol
-
Features:
- One-to-one & group chats
- Media sharing (images, files)
- Preview for links.
- Priority messages, typing indicator, online/last seen and read receipts
- Secure message using encryption/decryption delivering confidentiality.
-
Powered by Firebase Cloud Messaging (FCM)
-
Sent when:
- A new chat message arrives
- A user create a new post
- A user receives a project request
- A post is interacted with (like/comment)
- A user's profile gets 5 new views
- A user profile is rated/verified
-
Handled with custom logic to show user-specific rich notifications with action buttons
-
Rich profile structure with:
- GitHub, LinkedIn, Portfolio links
- Skills, Experience, Education
- Work history & open-to-collab status
- Users can block/report others for spam or abuse
- Once blocked stop showing profile photo, online/last seen, cannot send message.
- Firebase functions handle moderation flow (flag, count, restrict)
- Every project post allows users to send a Join Request
- Request includes an optional message and profile preview
- Project creators receive push notifications and can accept/decline from within the app
- Status of requests is visible in both user's dashboards
- Firebase Firestore handles request creation, status updates, and sync
| Layer | Technologies Used |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose |
| Architecture | MVVM + Clean Architecture + Repository Pattern |
| State Mgmt | StateFlow, LiveData |
| Network | Retrofit, REST APIs, Gson |
| DI | Dagger-Hilt |
| Images/Media | Glide, Cloudinary (uploading media) |
| Map & Location | Google Maps SDK, Geofencing APIs, GeoFire |
| Database | Room (offline support), Firebase Firestore |
| Storage | Firebase Storage, Cloudinary |
| Notifications | Firebase Cloud Messaging (FCM) |
| Encryption | Signal Protocol (E2EE) |
| Background Tasks | WorkManager, BroadcastReceiver, AlarmManager |
| Hosting | Firebase |
- Tech: Google Maps SDK + GeoFire, Work Manager, Foreground Service
- Used geofencing to detect students/professionals in real-time.
- Implemented live map markers synced with geo fire and Firestore within specified radius and location.
- Built advanced filters (role, skill, project interest, radius) with Firestore composite queries.
- Utilized Work Manager and Foreground Service to track location in background for real time updates(user can off service when not required).
Refer - Map DataSource, Location Repository, Map Screen
- Tech: Firebase Firestore, Room, Cloudinary
- Posts stored under
posts/{postId}with metadata. - Media uploads handled via Cloudinary.
- Real-time listeners (
snapshotListener) keep feed updated. - Likes/comments stored as subcollections (
posts/{postId}/likes&posts/{postId}/comments). - Integrated deep links for sharing posts externally.
- Can be stored in room using Firebase persistence for offline experience.\
Refer - Post Repository Impl, Post Listing
- Tech: Firestore + Signal Protocol
- End-to-end encrypted chats.
- Supports 1-to-1 & group chats under
chats/{chatId}/messages/{messageId}. - Media stored in Cloudinary and seemless sharing of photo, video, docs.
- Show Preview of links using metadata like domain, description, title extracted via Jsoup and stored in local cache using room database.
- Features: typing indicators, online status, read receipts using real time firebase and android lifecycle for tracking user session.
- User can be blocked and reported with screenshots of chat or etc. Once blocked can't message further, managed by keeping the block users map in chats and as per perform actions.
Refer - Chat Repository, Chat Screen
- Tech: Firebase Cloud Messaging, Notification Manager
- Notification types: Chat, Post, Project Request, Profile Events.
- Provide both topic and token based notification.
- Send Payload to server through a retrofit with authorization token that will be recieved by notification manager.
- Custom channels with unique icons & sounds.
- Deep links open directly to screens (chat, post, profile) provided in Pending Intent.
- Action buttons (Reply/Accept/Reject/Mark Read) via BroadcastReceivers.
- Unread states grouped via SharedPreferences for each notification like chat, post, profile, update.
Refer - Push Notification FCM, Helper
- Tech: Firestore + Jetpack Compose
- Schema:
name, bio, skills, education, experience, portfolioLinks. - Integrated deep links for external profiles (GitHub, LinkedIn, Portfolio).
- Profile view tracking under
profiles/{userId}/views/{viewerId}with timestamps. - Built Compose UI with reusable skill chips, experience cards, and status badges.
- User can be verified(can check verifiers profile) and rated(takes the avg for rating).
Refer - Profile Repo, Profile UI
- The whole dependacy injection is manager using Hilt.
- Provided settings and help center for user action and customization.
- 👉 450+ Play Store downloads since deployed
- 👉 350+ APK downloads since launch
- 📊 65+ active projects tracked via Firebase
- 💬 Dozens of connections and chats initiated daily
- Android Studio Arctic Fox or higher
- Kotlin 1.8+
- Firebase Project
- Google Maps API Key
- Firebase admin sdk
- Cloudinary account
- Go to Firebase Console
- Create new project > Enable Firestore, Firebase Auth, Cloud Messaging, Storage
- Download
google-services.jsonand add to/appdirectory - Add Firebase SDKs to
build.gradle(app)
implementation 'com.google.firebase:firebase-auth'
implementation 'com.google.firebase:firebase-firestore'
implementation 'com.google.firebase:firebase-messaging'
implementation 'com.google.firebase:firebase-storage'- Get API Key from Google Cloud Console
- Enable APIs: Maps SDK, Geofencing API, Places API
- Add to
local.propertiesor manifest:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="YOUR_API_KEY" />- Create account at Cloudinary
- Get API Key & Secret
- Use
Cloudinary.uploadvia their Kotlin SDK or HTTP endpoint for media upload
- Postman for testing APIs
- Firebase Emulator Suite for local testing
- 🔍 Skill-based AI matching (ML model integration)
- Alumni interaction
- 🎬 Video intro profiles
- 🪝 Event-based networking filters
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
-
Vishal Dangi – Android Development + UI/UX
- Implemented Posting, Real-time Chat, Profile, Notifications, Services
-
Kanhaiya kumar – Android Development + UI/UX
- Created ui/ux design and user flow.
- Implemented authentication.
Vishal Dangi LinkedIn | GitHub | Email
Give it a ⭐ star and share it with your peers!







