iamrohitpal / roomie
Group-based expense splitter with NativePHP and FCM V1 notifications.
Package info
Language:Blade
Type:project
pkg:composer/iamrohitpal/roomie
Requires
- php: ^8.2
- google/auth: ^1.50
- laravel/framework: ^12.0
- laravel/tinker: ^2.10.1
- nativephp/mobile: ^3.1
Requires (Dev)
- fakerphp/faker: ^1.23
- laravel/pail: ^1.2.2
- laravel/pint: ^1.24
- laravel/sail: ^1.41
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.6
- phpunit/phpunit: ^11.5.50
README
Roomie is a modern, group-centric expense tracking and splitting application built with Laravel 12 and NativePHP. Designed for roommates who want a stress-free way to manage shared costs, Roomie simplifies everything from daily groceries to monthly utility bills with real-time notifications and offline support.
๐ Key Features
- ๐ฅ Group Collaboration: Scope expenses, roommates, and settlements to specific groups for better organization.
- ๐ Real-Time Notifications: Integrated with Firebase Cloud Messaging (FCM) V1 for instant alerts on new expenses.
- ๐ฑ Native Mobile Experience: Leverages NativePHP for a smooth, app-like feel on Android devices.
- ๐ถ PWA & Offline Support: Service worker integration for reliable performance even without a connection.
- ๐ธ Smart Expense Splitting: Split costs equally or by custom amounts with just a few taps.
- โณ Settlement Tracking: Keep track of who owes what and mark debts as settled instantly.
- ๐ค Profile & Settings: Personalize your profile and manage notification permissions.
- ๐งน Group Maintenance: Securely clear group data or export financial reports to CSV.
๐ ๏ธ Tech Stack
- Framework: Laravel 12.x
- Runtime: NativePHP
- Notifications: Firebase Cloud Messaging (V1)
- Frontend: Vite, Vanilla CSS, Blade
- Database: SQLite (default for NativePHP)
๐ Quick Start
Prerequisites
- PHP 8.2+
- Composer
- Node.js & NPM
Installation
-
Clone the repository:
git clone https://github.com/iamrohitpal/roomie.git cd roomie -
Install dependencies:
composer install npm install
-
Configure Environment: Copy
.env.exampleto.envand configure your Firebase credentials:FIREBASE_API_KEY=your_key FIREBASE_PROJECT_ID=your_id FIREBASE_MESSAGING_SENDER_ID=your_sender_id FIREBASE_APP_ID=your_app_id FIREBASE_VAPID_KEY=your_vapid_key
-
Firebase Service Account: Download your service account JSON from Firebase Console and save it as:
storage/app/firebase-auth.json -
Run the setup:
php artisan key:generate php artisan migrate npm run build
-
Start the development server:
composer run dev
๐ฆ Building for Android
To generate a release build for Android:
php artisan native:run android --build=release
๐ License
Distributed under the MIT License. See LICENSE for more information.
Built with โค๏ธ for roommates everywhere.
