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.
| 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 |
- A Flutter application entrypoint in
lib/main.dart. - The default
MaterialAppcounter screen generated by Flutter. - A widget smoke test in
test/widget_test.dartthat verifies the counter increments. - Flutter lints enabled through
analysis_options.yaml. - Generated platform runners under
android/,ios/,web/,macos/,linux/, andwindows/. - A web manifest and Flutter web bootstrap files under
web/. - Product requirements and product exploration in
REQUIREMENTS.md.
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.
| 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 |
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
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.
Install dependencies with Flutter:
flutter pub getThis reads pubspec.yaml and restores the packages locked in pubspec.lock.
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 androidThe app currently opens the starter counter screen, not a marketplace experience.
Run the widget smoke test:
flutter testRun static analysis:
flutter analyzeThe 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.
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 windowsPlatform-specific caveats from the current scaffold:
- Android still uses
com.example.barteras the namespace and application ID inandroid/app/build.gradle. - Android release currently signs with the debug signing config.
- macOS still uses
com.example.barterand a startercom.examplecopyright string inmacos/Runner/Configs/AppInfo.xcconfig. - Windows resource metadata still uses
com.exampleinwindows/runner/Runner.rc. - Web metadata still uses starter descriptions in
web/index.htmlandweb/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.
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 |
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.
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.
lib/main.dartstill contains Flutter starter code and starter comments.pubspec.yamlstill uses the starter description.- Platform package identifiers still use
com.example.barter. web/index.htmldoes not currently includetranslate="no"or anotranslateroot 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.
- Replace the counter app with a minimal Barter product shell.
- Update app metadata in
pubspec.yaml,web/index.html,web/manifest.json, and platform runner files. - Disable automatic browser translation in
web/index.htmlbefore treating the web target as a real product surface. - Define the first real domain models for profiles, listings, offers, and trades.
- Choose whether the first MVP is local-only, backend-backed, or mocked for UI exploration.
- Add tests for the first real user flow.
- Add focused documentation only when new architecture, API, storage, deployment, or security surfaces exist.
This project is licensed under GPL-3.0. See LICENSE.