Your ultimate companion app that makes living fun & easy! 🏠✨
Siz is a beautifully designed Flutter app that transforms the chaos of roommate living into organized, stress-free harmony. No more awkward money conversations or forgotten chores.
- 🧮 Maths is overrated - We handle all the calculations for you
- 🎨 Gen Z aesthetic - Cute, modern, and Instagram-worthy
- 🏠 Roommate harmony - Split expenses, share tasks, live peacefully
- 📱 Home screen widgets - Quick access to your todos
- 🔥 Real-time sync - Everything updates instantly across devices
- Automatic calculations - No more mental math or calculator apps
- Split expenses - Fair and transparent cost sharing
- Payment tracking - Mark expenses as paid with visual indicators
- Category organization - Food, utilities, rent, and more
- Balance summaries - See who owes what at a glance
- Shared tasks - Assign to yourself, roommate, or both
- Priority levels - High, medium, low priority organization
- Due dates - Never miss important deadlines
- Status tracking - Pending, in progress, completed
- Home screen widget - Quick access without opening the app
- Easy room creation - Set up your shared space in seconds
- QR code invites - Share your room with a simple scan
- Invite codes - Alternative sharing method
- Real-time updates - Changes sync instantly
- Custom fonts - Moliga DEMO for that unique aesthetic
- Lime/neon green theme - Modern and vibrant
- Circular avatars - Choose from 9 cute avatar options
- Custom photos - Upload your own profile pictures
- Smooth animations - Delightful user experience
- Frontend: Flutter 3.x with Dart
- Backend: Firebase (Firestore, Authentication, Storage)
- State Management: Provider pattern
- UI/UX: Custom design system with animations
- Platform: Android (with home screen widgets)
- Real-time: Cloud Firestore listeners
- Flutter SDK (3.0 or higher)
- Android Studio / VS Code
- Firebase project setup
- Android device or emulator
-
Clone the repository
git clone https://github.com/Arrrzushi/siz.git cd siz -
Install dependencies
flutter pub get
-
Firebase Setup
- Create a Firebase project
- Enable Authentication (Email/Password, Anonymous)
- Enable Firestore Database
- Enable Storage
- Download
google-services.jsonand place inandroid/app/
-
Configure Firestore Rules
firebase deploy --only firestore:rules
-
Run the app
flutter run
lib/
├── main.dart # App entry point
├── models/ # Data models
│ ├── expense.dart
│ ├── todo.dart
│ └── user.dart
├── providers/ # State management
│ ├── app_provider.dart
│ ├── expense_provider.dart
│ ├── theme_provider.dart
│ └── todo_provider.dart
├── screens/ # UI screens
│ ├── home_screen.dart
│ ├── expenses_screen.dart
│ ├── todos_screen.dart
│ └── ...
├── services/ # Business logic
│ ├── firebase_service.dart
│ ├── invite_service.dart
│ └── widget_service.dart
├── widgets/ # Reusable components
│ ├── todo_item.dart
│ ├── expense_item.dart
│ └── ...
└── utils/ # Utilities
├── constants.dart
└── animations.dart
-
Feature Development
# Create feature branch git checkout -b feature/awesome-feature # Make changes # Test thoroughly # Commit changes git add . git commit -m "feat: add awesome feature" # Push and create PR git push origin feature/awesome-feature
-
Testing
# Run tests flutter test # Run integration tests flutter drive --target=test_driver/app.dart
-
Building
# Debug build flutter build apk --debug # Release build flutter build apk --release
- Colors: Lime green (#C8FF00), white, black
- Typography: Moliga DEMO font
- Components: Circular avatars, minimal cards
- Animations: Smooth transitions and micro-interactions
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Users can read/write their own data
match /users/{userId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
// Room members can access room data
match /rooms/{roomId} {
allow read, write: if request.auth != null &&
request.auth.uid in resource.data.memberIds;
}
// Expenses and todos follow room access rules
match /expenses/{expenseId} {
allow read, write: if request.auth != null &&
request.auth.uid in get(/databases/$(database)/documents/rooms/$(resource.data.roomId)).data.memberIds;
}
}
}- Enable Email/Password authentication
- Enable Anonymous authentication
- Configure sign-in methods in Firebase Console
Siz includes a beautiful home screen widget that shows:
- Todo count and status
- Quick access to the app
- Real-time updates
- Compact design - Fits perfectly on home screen
- Live data - Shows current todo count
- Tap to open - Direct access to the app
- Auto-updates - Refreshes when data changes
We love contributions! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Flutter/Dart style guidelines
- Write meaningful commit messages
- Add tests for new features
- Update documentation
- Keep the design consistent
This project is licensed under the MIT License - see the LICENSE file for details.
- Flutter team for the amazing framework
- Firebase for the backend services
- Gen Z for the aesthetic inspiration
- Roommates everywhere for the real-world testing
Having issues? We're here to help!
- 🐛 Bug Reports: Open an issue
- 💡 Feature Requests: Start a discussion
- 💬 Questions: Join our community

