Skip to content

rckbrcls/barter

Barter

Barter is an experimental Flutter app scaffold for a gamified barter marketplace concept. The product idea is to help people exchange goods and services through trusted profiles, reputation, rewards, avatar progression, and safer community trading.

The current repository is still in an early scaffold state. It contains a default Flutter counter app, generated platform shells, a widget smoke test, and a product requirements document. Marketplace, reputation, rewards, chat, authentication, storage, and backend behavior are not implemented yet.

Current Status

Area Status
Project type Small single Flutter application
Product maturity Concept and learning exercise
Runtime implementation Default Flutter counter app in lib/main.dart
Product requirements Captured in REQUIREMENTS.md
Platforms scaffolded Android, iOS, web, macOS, Linux, and Windows
Backend or API Not present
Database or persistence Not present
Authentication Not present
Deployment configuration Not present
CI/CD Not present
License GPL-3.0, see LICENSE

What Exists Today

  • A Flutter application entrypoint in lib/main.dart.
  • The default MaterialApp counter screen generated by Flutter.
  • A widget smoke test in test/widget_test.dart that verifies the counter increments.
  • Flutter lints enabled through analysis_options.yaml.
  • Generated platform runners under android/, ios/, web/, macos/, linux/, and windows/.
  • A web manifest and Flutter web bootstrap files under web/.
  • Product requirements and product exploration in REQUIREMENTS.md.

Product Direction

The intended product is a barter marketplace where users can trade goods or services without making cash sale the only interaction model. The planned product direction includes:

  • User profiles with visible reputation.
  • Listings for goods and services.
  • Direct barter negotiation.
  • Rewards, points, badges, and progression.
  • Avatar customization tied to activity.
  • Marketplace and auction concepts.
  • Safer trading features such as verification, dispute handling, and moderation.
  • Community interaction through discussion or chat surfaces.

These items are product requirements, not implemented app features.

Technology Stack

Layer Technology
App framework Flutter
Language Dart
UI baseline Material 3 through Flutter ThemeData
Direct runtime dependencies flutter, cupertino_icons
Test framework flutter_test
Linting flutter_lints through analysis_options.yaml
Android Gradle, Kotlin Android entrypoint, Flutter Android embedding
iOS/macOS Xcode project files and Swift runners
Linux/Windows CMake runner scaffolds
Web Flutter web bootstrap, web/index.html, web/manifest.json

Repository Structure

barter/
|-- lib/
|   `-- main.dart                 # Flutter app entrypoint and starter counter UI
|-- test/
|   `-- widget_test.dart          # Counter smoke test generated for the starter app
|-- android/                      # Android runner and Gradle configuration
|-- ios/                          # iOS runner, Xcode project, and app assets
|-- web/                          # Flutter web shell, manifest, icons, and bootstrap
|-- macos/                        # macOS runner and Xcode project
|-- linux/                        # Linux runner and CMake configuration
|-- windows/                      # Windows runner and CMake configuration
|-- analysis_options.yaml         # Dart analyzer and lint configuration
|-- pubspec.yaml                  # Flutter package metadata and dependencies
|-- pubspec.lock                  # Locked Dart package versions
|-- REQUIREMENTS.md               # Product requirements and planned scope
|-- CONTRIBUTING.md               # Project-specific contribution workflow
|-- CODE_OF_CONDUCT.md            # Community behavior and reporting notes
`-- LICENSE                       # GPL-3.0 license text

Runtime Requirements

The repository is a Flutter app and expects a local Flutter development environment.

  • Flutter SDK compatible with the project metadata.
  • Dart SDK range from pubspec.yaml: >=3.4.1 <4.0.0.
  • Platform tooling only for the target you intend to run:
    • Android Studio or Android SDK tooling for Android.
    • Xcode for iOS and macOS.
    • Chrome or another Flutter-supported browser for web.
    • Linux desktop dependencies for Linux builds.
    • Visual Studio C++ tooling for Windows builds.

No environment variables are defined in the current codebase.

Installation

Install dependencies with Flutter:

flutter pub get

This reads pubspec.yaml and restores the packages locked in pubspec.lock.

Running Locally

Use a Flutter-supported device target:

flutter devices
flutter run -d <device-id>

Examples:

flutter run -d chrome
flutter run -d macos
flutter run -d ios
flutter run -d android

The app currently opens the starter counter screen, not a marketplace experience.

Tests and Static Checks

Run the widget smoke test:

flutter test

Run static analysis:

flutter analyze

The existing widget test is tied to the default counter UI. When the product UI replaces lib/main.dart, update test/widget_test.dart to test the new visible behavior instead of the counter.

Build Process

Flutter provides the build commands. There are no custom build scripts in this repository.

flutter build apk
flutter build ios
flutter build web
flutter build macos
flutter build linux
flutter build windows

Platform-specific caveats from the current scaffold:

  • Android still uses com.example.barter as the namespace and application ID in android/app/build.gradle.
  • Android release currently signs with the debug signing config.
  • macOS still uses com.example.barter and a starter com.example copyright string in macos/Runner/Configs/AppInfo.xcconfig.
  • Windows resource metadata still uses com.example in windows/runner/Runner.rc.
  • Web metadata still uses starter descriptions in web/index.html and web/manifest.json.
  • The web shell does not currently disable automatic browser translation at the HTML root.

These values should be replaced before publishing or presenting a production build.

Configuration

No project-specific runtime configuration is currently implemented.

Concern Current state
Environment variables None
Secrets None identified
Database URL None
API base URL None
Feature flags None
Local persistence None

Data, API, and Security Status

The current codebase has no database schema, ORM, migrations, HTTP client, backend routes, authentication flow, authorization model, or secure storage.

Security-related concepts in REQUIREMENTS.md are product requirements for future implementation. They should not be treated as existing protections.

Important future security work includes:

  • Account identity and verification model.
  • Authorization rules for listings, trades, disputes, and moderation.
  • Abuse prevention for listings, messages, ratings, and auctions.
  • Sensitive data handling for identity checks and dispute evidence.
  • A concrete escrow or payment integration decision, if money or held assets enter the product.

Documentation Map

  • README.md: technical and operational overview of the current repository.
  • REQUIREMENTS.md: product requirements, MVP direction, and planned feature scope.
  • CONTRIBUTING.md: project-specific contribution workflow.
  • CODE_OF_CONDUCT.md: community behavior expectations and current reporting gap.
  • LICENSE: GPL-3.0 license text.

No separate docs/ directory is needed at the current project size. Separate architecture, API, database, deployment, or security documentation should be added only after those systems exist in the codebase.

Known Limitations

  • lib/main.dart still contains Flutter starter code and starter comments.
  • pubspec.yaml still uses the starter description.
  • Platform package identifiers still use com.example.barter.
  • web/index.html does not currently include translate="no" or a notranslate root marker.
  • There are no product models, screens, routes, services, repositories, or state management layers.
  • There are no screenshots committed for the current app state.
  • There is no deployment or release process.

Suggested Next Steps

  1. Replace the counter app with a minimal Barter product shell.
  2. Update app metadata in pubspec.yaml, web/index.html, web/manifest.json, and platform runner files.
  3. Disable automatic browser translation in web/index.html before treating the web target as a real product surface.
  4. Define the first real domain models for profiles, listings, offers, and trades.
  5. Choose whether the first MVP is local-only, backend-backed, or mocked for UI exploration.
  6. Add tests for the first real user flow.
  7. Add focused documentation only when new architecture, API, storage, deployment, or security surfaces exist.

License

This project is licensed under GPL-3.0. See LICENSE.

About

Gamified barter marketplace concept with avatars, secure trades, rewards, reputation, community features, and auctions.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors