A Death Note-inspired Mobile Legends: Bang Bang community app built with Flutter and Supabase.
Ryuzaki is a feature-rich community platform for Mobile Legends: Bang Bang (MLBB) players, with a unique Death Note-inspired UI theme. The app combines social features, game information, and e-commerce capabilities to create a complete ecosystem for MLBB enthusiasts.
- Complete authentication (signup, login, password reset)
- Rich user profiles with avatars and displayable badges
- Experience points and leveling system
- User status and verification badges
- Posts with text, images, video, and link support
- Threaded comments system and replies
- Reactions system (like, love, haha, wow)
- Events and announcements with categories
- Reporting system for moderation
- Hero database with details, stats, and builds
- Tournament announcements and registrations
- Game updates and patch notes
- Pro-player streams and content
- In-app store for MLBB-related merchandise
- Digital items and redemption codes
- Secure payment processing
- Order tracking and history
- Content moderation tools
- User management
- Analytics dashboard
- Event and promotion management
- Flutter SDK (latest stable version)
- Supabase account
- Git
-
Clone the repository:
git clone https://github.com/Sardena7/Ryuzaki-store/ryuzaki.git cd ryuzaki -
Create a
.envfile in the root directory with the following variables:# Supabase Configuration SUPABASE_URL=your_supabase_url SUPABASE_ANON_KEY=your_supabase_anon_key SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key # App Configuration APP_NAME=Ryuzaki APP_DEBUG=true APP_ENV=development # Storage Bucket Names AVATARS_BUCKET=avatars CHAT_ATTACHMENTS_BUCKET=chatfiles STORE_IMAGES_BUCKET=storeimages POSTS_IMAGES_BUCKET=postsimages BADGES_BUCKET=badges -
Install dependencies:
flutter pub get
-
Create a new Supabase project
-
Apply the database schema:
- Go to SQL Editor in your Supabase dashboard
- Copy and paste the contents of
ryuzaki.sqland run it
-
Set up storage buckets:
- Create the following public buckets in Supabase Storage:
avatarschatfilesstoreimagespostsimagesbadges
- Create the following public buckets in Supabase Storage:
-
Upload the required badge images to the
badgesbucket:early_adopter.pngcontributor.pngsocial.pngknowledge.pngverified.png
You can run the app on various platforms:
# Run on Android
flutter run -d android
# Run on iOS
flutter run -d ios
# Run on web browser
flutter run -d chromeRyuzaki follows a clean architecture approach with:
- Models: Data classes for entities like User, Post, Event, Comment, etc.
- Repositories: Interface with Supabase for CRUD operations
- Services: Handle complex business logic
- Screens: Main UI components for different app sections
- Widgets: Reusable UI elements
- Providers: State management using Riverpod
- Constants: App-wide constants and theme definitions
- Utils: Helper functions and extensions
The app requires several assets to function properly. These assets contribute to the overall user experience, aesthetics, and functionality of the application.
| Asset Name | Purpose | Description |
|---|---|---|
mlbb_background.jpg |
Landing/Login Background | Main background image used on the landing and login screens to create the MLBB atmosphere |
mlbb_character.jpg |
Hero Showcase | Used on landing page and promotional areas to showcase MLBB characters |
dark_texture.jpg |
Theme Background | Provides texture for the app's dark theme, inspired by Death Note aesthetics |
ryuzaki_logo.png |
App Logo | Main logo displayed in the app header, splash screen and promotional materials |
splash.png |
Splash Screen | Image displayed when the app is launching |
event_icon.png |
Events Icon | Icon used for the events section in the app |
| Asset Name | Purpose | Description |
|---|---|---|
app_icon.png |
Application Icon | The main app icon used for launcher and stores |
app_icon_foreground.png |
Android Adaptive Icon | Foreground layer for Android adaptive icons |
| Navigation & Feature Icons | UI Elements | Various icons for navigation, features, and interactive elements |
| Asset Name | Purpose | Description |
|---|---|---|
early_adopter.png |
User Achievement | Badge awarded to early users of the application |
contributor.png |
User Achievement | Badge awarded for community contributions |
social.png |
User Achievement | Badge awarded for social interactions |
knowledge.png |
User Achievement | Badge awarded for sharing MLBB knowledge |
verified.png |
User Status | Badge indicating a verified MLBB player account |
Custom fonts are used to enhance the Death Note-inspired theme of the application:
- Gothic and serif fonts for headers (Death Note aesthetic)
- Clean sans-serif fonts for body text (readability)
Lottie animations used throughout the app for:
- Loading indicators with Death Note and MLBB themes
- Success/error state animations
- Onboarding animations
- Achievement unlock animations
The assets are integrated through:
- Flutter's asset system (local assets)
- Supabase Storage (remote assets like user avatars and uploads)
- Cached for performance using cached_network_image package
The application utilizes a comprehensive database schema including:
users: User accounts and profilesposts: User-created contentcomments: Comments on postsevents: App events and announcementsevent_comments: Comments on eventsreactions: Reactions to posts and commentsevent_reactions: Reactions to events and event commentsheroes: MLBB hero informationproducts: Store productsorders: User orders
If you encounter a database error when signing up, check:
- The SQL schema is properly applied in Supabase
- The
handle_new_user()trigger function is correctly configured - Your Supabase URL and keys are correct in the
.envfile
If assets are missing:
- Make sure all required images are in the correct folders
- Verify the
pubspec.yamlfile includes all asset directories:flutter: assets: - assets/images/ - assets/icons/ - assets/animations/ - assets/fonts/ - .env
If you're having authentication problems:
- Confirm your Supabase project has Auth enabled
- Check that email confirmations are properly configured
- Verify the redirect URLs in your Supabase Auth settings
- Frontend: Flutter & Dart
- Backend: Supabase (Auth, Database, Storage, Functions)
- State Management: Riverpod
- Navigation: Go Router
- UI Components: Custom + Material Design
- Animations: Flutter Animate + Lottie
- Tommey (@sardena7)
This project is licensed under the MIT License - see the LICENSE file for details.