Skip to content
@BeeNext

BeeNext

BeeNext is a platform for Binusian to sell their preloved items 📱

BeeNext Project Organization

BeeNext is split into two main applications:

  • BE_BeeNext - Express + TypeScript backend API
  • MOBILE_BeeNext - Flutter mobile client

The project follows a simple feature-first structure. Backend code is grouped by API domain, while mobile code is grouped by application layer and screen feature.


Backend Organization

The backend is organized around Express route modules. Each module owns its controller, service, repository, and route file when needed.

BE_BeeNext/
|-- prisma/
| |-- schema.prisma
| |-- seed.ts
| `-- migrations/
|-- src/
| |-- config/
| |-- middlewares/
| |-- modules/
| | |-- assets/
| | |-- auth/
| | |-- categories/
| | |-- notifications/
| | |-- products/
| | `-- regions/
| |-- types/
| |-- utils/
| `-- index.ts
|-- package.json
`-- tsconfig.json

Backend Layers

LayerPurpose
routesDefines Express endpoints and middleware chain
controllerReads request data, validates basic input, returns HTTP responses
serviceHolds business rules and cross-repository workflow
repositoryTalks directly to Prisma/database
typesShared TypeScript request, response, product, auth, and notification types
utilsCommon helpers for responses, storage, parsing, JWT, and passwords

Backend Domains

ModuleResponsibility
assetsServe stored image assets
authRegister, login, current user profile, password and phone updates
categoriesProduct category list
notificationsUser marketplace notification feed
productsProduct list, detail, create, edit, delete, and owner listings
regionsBINUS campus region list

Mobile Organization

The Flutter app separates state management, data access, helpers, pages, and reusable widgets.

MOBILE_BeeNext/
|-- assets/
| |-- fonts/
| |-- icons/
| `-- illustrations/
|-- lib/
| |-- bloc/
| |-- data/
| |-- helpers/
| |-- pages/
| |-- widgets/
| |-- app.dart
| `-- main.dart
|-- pubspec.yaml
`-- test/

Mobile Layers

LayerPurpose
blocUI state and async workflow orchestration
data/modelsApp data models, such as auth session and user
data/servicesREST API client, remote data sources, repository interfaces, implementations
helpers/api_settingsAPI base URL and endpoint constants
helpers/diRepository and dependency providers
helpers/errorsApp-level exception types
helpers/routesApp route generation
helpers/themeShared Material theme
helpers/utilsSmall reusable helpers, such as API image URL resolution
pagesFull-screen UI flows
widgetsReusable smaller UI components

Mobile Feature Areas

AreaFiles
Authpages/auth, bloc/auth_bloc, auth services
Home Feedpages/marketplace/home_page.dart, bloc/home_feed_bloc
Searchpages/marketplace/search_page.dart, bloc/search_catalog_bloc
Product Detailpages/marketplace/detail_page.dart, bloc/product_detail_bloc
Create/Edit Listingpages/marketplace/add_page.dart, bloc/listing_create_bloc
My Listingspages/marketplace/my_listings_page.dart, bloc/my_listings_bloc
Notificationspages/marketplace/notification_page.dart
Profilepages/profile, bloc/profile_bloc, profile widgets

Request Flow

Backend Request Flow

HTTP request
-> route
-> middleware
-> controller
-> service
-> repository
-> Prisma/PostgreSQL
-> response helper
-> HTTP response

Mobile Data Flow

Page widget
-> BLoC event
-> repository
-> remote data source
-> ApiClient
-> backend API
-> BLoC state
-> page rebuild

Documentation Style

The project documentation follows a compact README style:

  • Start with what the project does.
  • List the tech stack.
  • Show setup and environment variables.
  • Document useful scripts.
  • Keep endpoint/features tables short and practical.
  • Use ASCII tree diagrams to avoid encoding issues across editors.

Popular repositories Loading

  1. BeeNext-Backend BeeNext-BackendPublic

    BeeNext Backend 🌸

    TypeScript

  2. BeeNext-Frontend BeeNext-FrontendPublic

    BeeNext Frontend 🧑‍🎓

    Dart

  3. .github .githubPublic

Repositories

Showing 3 of 3 repositories

Top languages

Loading…

Most used topics

Loading…