Skip to content

BeeNext/BeeNext-Frontend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

46 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

BeeNext Mobile

Flutter mobile app for BeeNext, a student-focused campus marketplace for browsing, listing, editing, and deleting secondhand items inside the BINUS community.

Built with Flutter, Dart, BLoC, and a REST API integration with the BeeNext backend.


Features

  • Auth - login, signup, persistent JWT session, and logout
  • Home Feed - fresh campus listings with product cards and notifications preview
  • Search Catalog - search listings and filter by product category
  • Product Detail - view image, price, status, seller, notes, and contact flow
  • Create Listing - add product details and upload up to 5 images
  • Edit Listing - update owned listing details and optionally replace photos
  • Delete Listing - remove owned listing from the backend
  • My Listings - manage active products from the profile flow
  • Profile - view account data, update password, and change phone number
  • Notifications - view marketplace activity and product-related messages

Tech Stack

  • Framework: Flutter
  • Language: Dart SDK ^3.8.1
  • State Management: flutter_bloc + equatable
  • Networking: http wrapped by ApiClient
  • Environment: flutter_dotenv
  • Session Storage: shared_preferences
  • Media Picker: image_picker
  • Permissions: permission_handler
  • External Links: url_launcher
  • UI Assets: SVG/logo assets and GoogleSansFlex

Getting Started

Prerequisites

  • Flutter SDK with Dart ^3.8.1
  • Android emulator, iOS simulator, or physical device
  • Running BeeNext backend or deployed backend URL

Check local setup:

flutter doctor

Installation

flutter pub get

Environment Variables

Create a .env file from the example file:

copy .env.example .env

Configure the backend URLs:

API_BASE_URL=https://beenext-backend-production.up.railway.app/api
API_ASSET_BASE_URL=https://beenext-backend-production.up.railway.app

For Android emulator with a local backend, use a host like:

API_BASE_URL=http://10.0.2.2:3000/api
API_ASSET_BASE_URL=http://10.0.2.2:3000

Running

# Development
flutter run

# Analyze code
flutter analyze

# Run tests
flutter test

Production Build

# Android APK
flutter build apk --release

# Android App Bundle
flutter build appbundle --release

# iOS
flutter build ipa --release

Project Structure

MOBILE_BeeNext/
|-- assets/
|   |-- fonts/                 # GoogleSansFlex font
|   |-- icons/                 # BeeNext logos and app icons
|   `-- illustrations/         # Landing page visuals
|-- lib/
|   |-- bloc/                  # BLoC state management
|   |   |-- auth_bloc/
|   |   |-- home_feed_bloc/
|   |   |-- listing_create_bloc/
|   |   |-- my_listings_bloc/
|   |   |-- product_detail_bloc/
|   |   |-- profile_bloc/
|   |   `-- search_catalog_bloc/
|   |-- data/
|   |   |-- models/            # Session and user models
|   |   `-- services/          # API clients, data sources, repositories
|   |-- helpers/
|   |   |-- api_settings/      # API constants
|   |   |-- di/                # Repository providers
|   |   |-- errors/            # AppException and error handling
|   |   |-- routes/            # Route generator
|   |   |-- theme/             # App theme
|   |   `-- utils/             # Shared helpers
|   |-- pages/
|   |   |-- auth/              # Login, signup, load pages
|   |   |-- marketplace/       # Home, search, add/edit, detail, listings
|   |   `-- profile/           # Profile page
|   |-- widgets/
|   |   |-- marketplace/       # Marketplace UI components
|   |   |-- profile/           # Profile modals
|   |   `-- shared/            # Shared UI components
|   |-- app.dart               # Root MaterialApp
|   `-- main.dart              # App entry point
|-- pubspec.yaml
`-- test/

Development Notes

  • API calls live in lib/data/services/marketplace_remote_data_source.dart and auth_remote_data_source.dart.
  • Product create and edit use multipart/form-data.
  • Shared image rendering is handled by AppNetworkImage so product cards keep consistent image sizing.
  • Most user-facing flows are driven by BLoC events and states under lib/bloc/.

About

BeeNext Frontend πŸ§‘β€πŸŽ“

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors