Inspiration

Running my family restaurant, i faced constant headaches managing employee attendance, payroll, and HR tasks. Clocking in/out was manual and error-prone, payroll often required hours of paperwork, and tracking borrowings or deductions was scattered across multiple systems. We wanted a simple, accurate, and mobile solution

What it does

NFC clock-in/clock-out for employees (works on both Android & iOS). NFC reading and writing staff info (works on both Android & iOS). Manaing the working hours and business days and support overnight shifts (eg : after 12 :00 am to accurate total worked hours calculations ) Borrowings & deductions management (salary advances, lateness, hygiene issues, etc.). Extras/allowances tracking (overtime, transportation, bonuses). Automated payroll generation with PDF/Excel export. Role-based access for managers and staff. Offline-first sync so it works even without internet. Multi-branch and even restaurant chains support for larger operations. History based solution for past years , moths ,days

How we built it

Framework: Kotlin Multiplatform + Compose Multiplatform for shared UI and logic. Reactive & Async Programming : Kotlinx Coroutines Date & Time Manipulations : KotlinX DateTime Data Parsing & Serialization : KotlinX Serialization Efiecient Full Text Search Using Kmp Room FTS4 Storage: KMP Room for local database, KMP DataStore for lightweight preferences. State management: KMP ViewModel for shared state across platforms. NFC integration: Reading & writing on both Android and iOS. PDF generation: Canvas drawing & PDF export for payroll reports (works on both platforms). Networking & sync: We Decided to go production for the first version using Firebase , i build my own firebase auth , firebasae firestore, firebase storage shared business logic using each platform (ios - android ) specific implementation) but i decided to make use of our library in the next versions and i used a released open source library for kmp firebase as for now as it was already tested , but my solution iam still testing it for now Dependency Injection: Koin Multiplatform + Koin Compose Multiplatform
UI/UX: Simple Minimal Designed for simplicity with multi language support (Arabic & English) + Material3 Compose Multiplatform Navigation , Coil Compose multiplatform Image Networking Library Loader

Challenges we ran into

as my background is not strong enough in IOS echosystem i faced some challenges in the NFC reading and writing , as well as the pdf generation in the IOS it was challenging for me to integrate it for IOS devices but at the end with the hlep of great power of KMP it's now working great

Accomplishments that we're proud of

Fully functional NFC clock-in/out across Android and iOS from the same codebase. Cross-platform PDF payroll generation that matches in both IOS and Android Offline First App + Strong Powerful DataSyncing and Full Text Search

What we learned

Enhanced my background more with IOS EchoSystem more and more , Writing Code Directly from the native IOS Is The Best Scalable Way To Have Your App At a Huge and long term scale , KMP is the true solution for complex , production grade apps espcially when dealing with low hardware API like NFC

What's next for StaffMate

currently the app is build as a custom solution for our family business and theire business logic we need to start adding busienss features like Staff Success , Ratings , building my own backend (Yes i want to make it using Ktor ) , support for extra id verifications hardware , extend the app to make a module for staff himeself to manage and see all his data + automate alot of business logic inside restaurants ( break time , allowances , assets , staff meals , requests ...etc ) i want to automate all my restaurant worfklow with the help of a solution i built it for me and for any restaurant owner i know what they exactly need , also a great feature to have is to make a workflow or checklist that needs to be done everyday for specific job title which will be great if automated and to be applied using friendly way in a mobile app extend the app to be easily integrated with POS solutions somehow after the app can be fully applicable for all restaurants and chains with theri own business logic we need to make any restaurant life happy and adopt the app idea

Built With

Share this project:

Updates