https://github.com/userorient/userorient-flutter
💬 User feedback SDK for Flutter
https://github.com/userorient/userorient-flutter
features feedback flutter
Last synced: 3 months ago
JSON representation
💬 User feedback SDK for Flutter
- Host: GitHub
- URL: https://github.com/userorient/userorient-flutter
- Owner: UserOrient
- License: bsd-3-clause
- Created: 2024-06-08T20:58:46.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-01-22T17:25:06.000Z (3 months ago)
- Last Synced: 2026-01-23T10:31:52.877Z (3 months ago)
- Topics: features, feedback, flutter
- Language: Dart
- Homepage: https://pub.dev/packages/userorient_flutter
- Size: 1.29 MB
- Stars: 22
- Watchers: 0
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# [UserOrient.com](https://userorient.com)
**Feature Voting Board for Flutter**
UserOrient is a feature voting board that helps you collect feedback from your users and prioritize your development roadmap in your Flutter projects.
## 🎯 Getting Started
Considering that you have already created a project on [UserOrient.com](https://app.userorient.com) and received an API key, follow these steps to integrate the SDK into your Flutter app.
### 📦 Add the dependency
Add the following to your `pubspec.yaml` file:
```yaml
dependencies:
userorient_flutter:
```
### ⚙️ Initialize the SDK
Initialize the SDK with your project's API key and preferred language:
```dart
import 'package:userorient_flutter/userorient_flutter.dart';
void main() {
UserOrient.configure(
apiKey: 'YOUR_API_KEY',
languageCode: 'en',
);
```
### 🎨 Display the board
Before displaying the board, set user information using `UserOrient.setUser()`. Ideally you should pass a unique identifier (`uniqueIdentifier`) for the user so that their votes can persist across app installs. This can be an email address, phone number, or custom ID. If not provided, UserOrient will generate a random identifier.
```dart
UserOrient.setUser(
uniqueIdentifier: '123456',
fullName: 'Kamran Bekirov',
email: 'kamran@userorient.com',
phoneNumber: '+1234567890',
language: 'en',
isPaying: true,
extra: {
'age': 27,
'gender': 'male',
}
);
```
Then, to show the board, call `UserOrient.openBoard(context)`.
```dart
UserOrient.openBoard(context);
```
That's it.
> **Note:** It's recommended to call `UserOrient.setUser` before each board launch to ensure up-to-date user information.
## 💰 Paying Users
Set the `isPaying` property to `true` for users who have a paid subscription or are paying customers. This enables powerful filtering in your UserOrient dashboard:
- **Filter by paying users**: Toggle "filter by paying users" in the dashboard to see votes specifically from paying customers
- **Prioritize features**: Understand which features matter most to your revenue-generating users
- **Better decision-making**: Make data-driven decisions by focusing on feedback from your most valuable users
See the `isPaying` property in the [User Identification](#user-identification) example above.
## Customize appearance
Customize the appearance to match your app's design:
```dart
UserOrient.setTheme(
light: UserOrientColors(
backgroundColor: Colors.white,
accentColor: Colors.blue,
),
dark: UserOrientColors(
backgroundColor: Color(0xff1D1D1D),
accentColor: Colors.blue,
),
);
```
- `backgroundColor`: SDK's background color
- `accentColor`: Primary button, active tab and voted state color (text color adjusts automatically)
Font family is inherited from your app's `ThemeData`.
## 👋 Logging Out
When a user logs out of your app, call `UserOrient.clearCache()` to prevent potential issues:
```dart
await UserOrient.clearCache();
```
## 💬 Contact
For any questions or support, please reach out to us:
- Email: [kamran@userorient.com](mailto:kamran@userorient.com)
- Twitter: [@userorient](https://twitter.com/userorient)