Your All-in-One PC Building & Tech Marketplace
Built with Flutter Β· Powered by Firebase
OctaByte is a feature-rich, cross-platform Flutter application designed for PC enthusiasts, gamers, and tech shoppers. It combines a custom PC Builder tool, a peer-to-peer Marketplace, a social Community wall, and curated Tutorials β all wrapped in a sleek dark-themed UI with amber accents.
The app uses Firebase as its backend for authentication, real-time database, cloud storage, and push notifications, providing a seamless and responsive user experience.
- Browse and select components: CPU, GPU, Motherboard, RAM, Storage, PSU
- Add peripherals: Monitor, Keyboard, Mouse, Headphones, Casing
- Real-time price aggregation for your build
- Save builds to Firestore and view Build History
- Searchable component catalog with detailed specs
- Upload products for sale with image, name, price, and description
- Browse listings from all users in a real-time feed
- In-app chat between buyers and sellers
- View product details with integrated chat room
- Track Purchase History from your profile
- Post messages visible to all users in real-time
- Like and interact with community posts
- Timestamped feed sorted chronologically
- Signed-in user identity displayed per post
- Curated video tutorials for PC building and tech topics
- Integrated Flick Video Player for in-app playback
- Organized tutorial listings with thumbnail previews
- Firebase Cloud Messaging (FCM) for push notifications
- Local notifications with custom payloads
- Contextual notifications triggered on feature navigation (e.g., welcome messages)
- Notification settings screen
- Firebase Authentication (Email & Password)
- User registration with First Name, Last Name, Username, and Email
- Editable profile with profile picture upload (Firebase Storage)
- Forgot password flow with email reset
- Sign-out functionality
- Animated Lottie splash screen on app launch
- Dark-themed design with amber accent colors
- Bottom navigation bar with Dashboard, Trending, and Profile tabs
- Image carousels on the Trending screen (auto-play & manual control)
- Smooth page indicators and custom scaffolds
- Responsive layouts with
flutter_screenutil
lib/
βββ main.dart # App entry point & Firebase init
βββ lottie.dart # Animated splash screen
βββ navigation_menu.dart # Bottom navigation controller
βββ firebase_options.dart # Firebase platform config
βββ dp.dart # Display picture utilities
β
βββ auth_screens/ # Auth state management
β βββ auth_page.dart # Login/Register toggle
β βββ main_page.dart # Auth state wrapper
β
βββ interface_screens/ # Authentication UI
β βββ login_page.dart # Sign-in screen
β βββ register_page.dart # Registration screen
β βββ forgot_pw_page.dart # Password reset screen
β
βββ navibar_screens/ # Main tab screens
β βββ dashboard_screen.dart # Feature grid (Builder, Market, Community, Tutorials)
β βββ trending_screen.dart # Deals & banner carousels
β βββ homepage_screen.dart # User profile & settings
β βββ notification/ # Push & local notification services
β βββ NotificationPage.dart
β βββ firebase_api_noti.dart
β βββ notificationService.dart
β βββ settings_screen.dart
β
βββ dasboard_screens/ # Feature modules
β βββ pc_builder/ # OctaBuilder
β β βββ core/ # Component data (CPU, GPU, RAM, etc.)
β β βββ models/ # Component UI & detail screens
β β βββ pages/ # Builder screen, collection page, build history
β β βββ peripheral/ # Peripheral accessories data
β β
β βββ marketplace/ # Octane Marketplace
β β βββ marketplace_screen.dart
β β βββ products/ # Product model, widgets, details
β β βββ chat/ # In-app messaging (Chatbox, ChatPage)
β β βββ buy/ # Purchase history
β β
β βββ community/ # Octagram Social Wall
β β βββ community_screen.dart
β β βββ models/ # Wall post model
β β βββ reWidgets/ # Post button & reusable widgets
β β
β βββ tutorials/ # Octahub Tutorials
β βββ tutorials_page.dart
β βββ tutorials_screen.dart
β βββ tutorials_screen2.dart
β
βββ reusable_widgets/ # Shared UI components
β βββ custom_scaffold.dart
β βββ custom_scaffold2.dart
β βββ custom_scaffold3.dart
β βββ reusable_widget.dart
β
βββ database/ # Firestore abstraction
β βββ firestore.dart
β
βββ utils/ # Utility functions
βββ color_utils.dart
| Layer | Technology |
|---|---|
| Framework | Flutter 3.x (Dart β₯ 3.2.3) |
| Auth | Firebase Authentication |
| Database | Cloud Firestore |
| Storage | Firebase Storage |
| Messaging | Firebase Cloud Messaging + Flutter Local Notifications |
| State Mgmt | GetX (get) + Provider |
| Navigation | GetX routing + Material page routes |
| Video | Flick Video Player + Video Player |
| Animations | Lottie |
| UI | Google Fonts, Iconsax, Carousel Slider, Smooth Page Indicator |
| Image Picker | image_picker |
| Responsive | flutter_screenutil |
| Permissions | permission_handler |
| Reactive | RxDart |
- Flutter SDK β₯ 3.x (Install Flutter)
- Dart SDK β₯ 3.2.3
- Firebase CLI (Firebase setup)
- Android Studio / Xcode (for mobile) or Chrome (for web)
-
Clone the repository
git clone https://github.com/XGNoir95/OctaByte.git cd OctaByte -
Install dependencies
flutter pub get
-
Configure Firebase
The project includes a pre-configured
firebase_options.dart. If you need to connect your own Firebase project:flutterfire configure
Ensure the following Firebase services are enabled in your console:
- Authentication (Email/Password provider)
- Cloud Firestore
- Firebase Storage
- Cloud Messaging
-
Run the app
# Android flutter run # iOS flutter run -d ios # Web flutter run -d chrome # Windows flutter run -d windows
flutter pub run flutter_launcher_icons| Platform | Status |
|---|---|
| Android | β |
| iOS | β |
| Web | β |
| Windows | β |
| macOS | β |
| Linux | β |
| Collection | Description |
|---|---|
users |
User profiles (name, email, avatar URL) |
Posts |
Firestore Database posts |
User Posts |
Community wall messages with likes |
products |
Marketplace product listings |
builds |
Saved PC build configurations |
Splash Screen (Lottie Animation)
β
βΌ
Auth Gate (Login / Register)
β
βΌ
βββββββββββββββββββββββββββββββββββββββ
β Bottom Navigation β
β ββββββββββββ¬βββββββββββ¬ββββββββββ β
β βDashboard β Trending β Profile β β
β ββββββββββββ΄βββββββββββ΄ββββββββββ β
βββββββββββββββββββββββββββββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββ βββββββββββββ ββββββββββββββββ
βPC Builderβ β Carousels β β User Info β
βMarketplaceβ β Hot Deals β β Edit Profile β
βCommunity β β Flash Saleβ β Purchase Hist β
βTutorials β βββββββββββββ β Past Builds β
ββββββββββββ β Notifications β
β Sign Out β
ββββββββββββββββ
- Fork the repository
- Create your 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
This project is private and not published to pub.dev. All rights reserved.
Built with β€οΈ using Flutter & Firebase
