ShiftSync is a beautifully designed Android app that helps workers effortlessly track their shifts, calculate earnings in real-time, and maintain a complete work history — all with a single tap.
Whether you are a barista, nurse, warehouse worker, or freelancer, ShiftSync keeps your hours honest and your paycheck accurate.
- Sign up / Sign in with Email & Password or Google Sign-In
- Powered by Firebase Authentication
- Personal data is private and accessible across multiple devices
- Prominent one-tap Clock In button on the dashboard
- Triggers a persistent foreground notification so you can track time without keeping the app open
- Real-time elapsed time display
A clean, scannable timesheet built with Jetpack Compose:
| Column | Description |
|---|---|
| Date | Day the shift occurred |
| Shift Type | Morning / Night / Overtime |
| Duration | Auto-calculated from clock in/out |
| Estimated Pay | Based on your hourly rate |
- Automatically subtracts unpaid break time
- Applies 1.5x Time-and-a-Half multipliers for overtime hours
- Weekly summary with total hours and total estimated earnings
- 7-day week grid showing worked days at a glance
- Tap any day to see detailed shift entries for that day
- Visual indicators for days with logged hours
- Personal info and job details
- Configurable hourly rate
- Notification preferences
- Appearance customization
- Firestore integration keeps your history safe even if you lose your phone
- Offline Mode — data syncs automatically when you are back online
| Layer | Technology |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose + Material 3 |
| Architecture | MVVM |
| Local Storage | SharedPreferences / Room |
| Authentication | Firebase Auth |
| Cloud Database | Cloud Firestore |
| Background Service | Android Foreground Service |
| Navigation | Jetpack Navigation Compose |
| Build System | Gradle (KTS) |
app/src/main/java/com/example/shiftsync/
+-- MainActivity.kt # App entry point & Compose navigation host
+-- ShiftDomain.kt # Models, payroll calculator, persistence helpers
+-- ClockForegroundService.kt # Live clock persistent notification service
+-- ui/
+-- HomeScreen.kt # Main dashboard with Clock In/Out
+-- ManualEntryScreen.kt # Manual hours entry form
+-- CalendarScreen.kt # Calendar / weekly overview
+-- NotificationsScreen.kt # Notifications screen
+-- ProfileScreen.kt # User profile & settings
+-- LoginScreen.kt # Authentication screen
+-- theme/ # Color palette, typography, shapes
- Android Studio Hedgehog or later
- Android SDK 26+
- A Firebase project (for Auth and Firestore features)
git clone https://github.com/Alexmaster12345/ShiftSync.git
cd ShiftSync- Go to Firebase Console and create a new project
- Add an Android app with package name
com.example.shiftsync - Download
google-services.jsonand place it in theapp/folder - Enable Authentication (Email/Password + Google) in the Firebase console
- Enable Firestore Database in the Firebase console
# Run on a connected device or emulator
./gradlew installDebug
# Run unit tests
./gradlew testOr open the project in Android Studio and press Run.
Unit tests cover payroll calculation scenarios:
./gradlew testTest file: app/src/test/java/com/example/shiftsync/PayrollCalculatorTest.kt
- Clock In/Out with persistent foreground notification
- Shift types — Morning, Night, Overtime
- Automatic break subtraction and overtime calculations
- Dynamic timesheet table
- Weekly 7-day view with day drill-down
- Manual hours entry
- Profile screen with settings
- Firebase Authentication (Email + Google)
- Room database for offline-first storage
- Firestore cloud sync with conflict handling
- CSV / PDF export for payroll
- Home screen widget for quick Clock In
- Dark / Light theme toggle
Contributions are welcome!
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit your changes:
git commit -m "Add your feature" - Push to the branch:
git push origin feature/your-feature - Open a Pull Request
This project is licensed under the MIT License — see the LICENSE file for details.