Android app for finding a meeting time that works for everyone. Each member of a schedule marks the times they are available, and the app matches those availabilities to surface the slots where the group overlaps.
Built on Firebase (Realtime Database, Auth, Cloud Messaging, Crash Reporting).
- Schedules — create a schedule, invite members, and let the app compute overlapping free time across the group
- Availability — per-member, per-day availability entry
- Friends — friend requests, and joining schedules via QR code (scan with the device camera)
- Accounts — email/password sign-in, Google sign-in, anonymous sign-in, and password change
- Notifications — push notifications for schedule and friend activity, with an in-app dashboard
- In-app updates — version check with changelist, prompting the user when a newer release is available
- Donations — in-app billing support
- Android Studio
- Android SDK — compile SDK 24, build tools 23.0.3
- Minimum supported device: Android 4.2 (API 17)
- A Firebase project of your own (see below)
This repository does not include Firebase credentials. You need to supply your own before the project will build.
-
Create a project in the Firebase Console.
-
Add two Android apps to it, matching the application IDs used by the build:
com.koceeng.schedulematcher(release)com.koceeng.schedulematcher.debug(debug and experimental)
-
Register your signing certificate SHA-1 for each — required for Google sign-in. Get it with
./gradlew signingReport. -
Enable Email/Password, Google, and Anonymous under Authentication → Sign-in method.
-
Download
google-services.jsonand place it atapp/google-services.json. Useapp/google-services.json.exampleas a reference for the expected shape. -
Build and install:
./gradlew installDebug
The app relies on Firebase Security Rules to control access to schedules, availabilities, and friend data. Rules are not included in this repository — write rules appropriate to your own deployment, and do not run with open read/write access.
| Type | Application ID | Notes |
|---|---|---|
debug |
…schedulematcher.debug |
Debuggable, no minification |
experimental |
…schedulematcher.debug |
Minified, for testing ProGuard output |
release |
…schedulematcher |
Minified |
Release and experimental builds are not signed by this repository's configuration — supply your own keystore.
ProGuard mapping files for minified builds are copied to proguardTools/ after
each assemble. See app/proguard-rules-example.pro.
app/src/main/java/com/koceeng/schedulematcher/
├── account/ sign-in, registration, password change
├── availability/ availability entry and storage
├── base/ shared activity/fragment/model base classes
├── billing/ in-app billing helpers
├── dash/ notification dashboard
├── donate/ donation flow and history
├── friend/ friend list and requests
├── home/ main navigation
├── messaging/ Firebase Cloud Messaging handlers
├── schedule/ schedule creation, detail, editing, matching
├── settings/ settings, team, changelist
├── sqlite/ local persistence
├── update/ version check and update dialog
├── utils/ shared utilities
└── widget/ custom views
Firebase · Retrofit · OkHttp · Glide · ZXing · barcodescanner · EasyPermissions
MIT © Koceeng






