Small Circle is a native Android marketplace application that connects local buyers and sellers. Users can discover items based on location, chat with sellers, manage listings, and more.
-
Authentication
- Multiple sign-in options (Google, Email, Phone OTP)
- Account verification
- Profile management
-
Marketplace Features
- Location-based item discovery using Google Maps
- Multiple image upload for listings
- Real-time chat with image sharing
- Seller profiles
- Product management (edit, delete, mark as sold)
- Account verification system
Before running the project, make sure you have:
- Android Studio (latest version recommended)
- JDK 8 or higher
- Android device or emulator running Android 6.0 (API 23) or higher
- Google Cloud account
- Firebase account
git clone https://github.com/yourusername/small-circle.git
cd small-circle
-
Create a new Firebase project at Firebase Console
-
Enable the following services:
- Authentication (Enable Google, Email/Password, and Phone providers)
- Realtime Database
- Storage
- Cloud Messaging
- Crashlytics
-
Add your Android app to Firebase:
- Package name:
com.org.smallcircle
- Download
google-services.json
- Place
google-services.json
in the app/ directory
- Package name:
-
Firebase Authentication Setup:
- Go to Authentication → Sign-in methods
- Enable Google Sign-in
- Enable Email/Password
- Enable Phone Number
- Add your SHA-1 and SHA-256 fingerprints (required for Google Sign-in)
-
Firebase Database Rules:
{ "rules": { ".read": "auth != null", ".write": "auth != null" } }
-
Firebase Storage Rules:
rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write: if request.auth != null; } } }
- Go to Google Cloud Console
- Create a new project or select your Firebase project
- Enable the following APIs:
- Maps SDK for Android
- Places API
- Create credentials (API key)
- Add restrictions to your API key:
- Application restrictions: Android apps
- API restrictions: Maps SDK for Android and Places API
- Create or open
local.properties
in the project root directory - Add your Google Maps API key:
MAPS_API_KEY=your_maps_api_key_here
- Open the project in Android Studio
- Sync project with Gradle files
- Build the project
- Run on your device or emulator
-
Google Sign-in not working:
- Verify SHA-1 and SHA-256 fingerprints in Firebase Console
- Ensure
google-services.json
is up to date
-
Maps not loading:
- Check if API key is correctly added in local.properties
- Verify API restrictions in Google Cloud Console
-
Firebase Connection Issues:
- Ensure
google-services.json
is in the correct location - Check internet connectivity
- Verify Firebase project settings
- Ensure
- Firebase (Analytics, Auth, Database, Storage, Crashlytics)
- Google Play Services (Maps, Places, Auth)
- Country Code Picker (CCP)
- Glide for image loading
- Rounded ImageView
- Material Design components
- Lottie for animations
- Shimmer Effect
- AndroidX Browser
- Play Integrity
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Created with ❤️ by Aurio Rajaa