Vider Provider is a freelancer app that connects service providers with clients in their location.
This app is used by service providers to:
- Display their portfolio along with their current location.
- Exchange text messages with clients.
- Accept job offers.
- Receive payment in crypto after completing each job.
The app is built with Flutter for the frontend, Node.js for the backend, and MongoDB for data storage.
If you want to try the Android app quickly, download the latest APK:
You can also check out the Vider Repository:
Vider Companion app for clients to search for providers, send job requests and make payments.
-
Sign Up / Log In
- Create an account by submitting all required details or log in using your existing credentials.
-
KYC
- Complete all KYC and OTP verification after signing in.
-
Update Your Portfolio
- Fill in all portfolio data and make sure to submit attractive portfolio images to attract clients.
-
Accept Job Request
- Check your notifications by tapping the notification icon on the top right corner of the home screen to view and accept job requests.
-
Send Job Request
- Enter your transaction PIN and send a job request with details like job type, duration, and pay.
-
Job in Progress
- Track the job’s status in the Jobs screen (active jobs appear at the top with a timer). Await notification to signal job completion.
-
Review Dashboard
- Check your dashboard for updates on your total earnings and average job duration.
-
Payment
- Once the job is completed, payment will be deposited in your wallet. Navigate to the settings screen and make withdrawals.
A simple diagram of how the app works:
The app follows a Model–View–Controller (MVC) software architecture:
-
Models
Represent the data and business logic of the application.
Examples:user_model(username, lastname, etc.)job_model(duration, status, etc.)
-
Views
Represent the UI elements visible to the user.
Examples: Login screen, Dashboard, Job listings. -
Controllers
Handle user input, process requests, and decide what data from the Model goes to the View.
Example:transaction_controllerfetches transactions from the backend and displays transaction details in the transaction history screen using thetransaction_model.
All state management logic is handled using flutter_riverpod.
- Sign In and Sign Up screens include all required form fields.
- All input values are validated before submission.
- Authentication tokens are stored securely.
- Displayed after login.
- Shows the total amount earned by the provider since joining.
- Includes a job heatmap and average job duration statistics.
- Displays all jobs, with active jobs pinned at the top.
- Includes a timer indicator to show remaining time for active jobs.
- Accept job screen displays the location where the service will be rendered and all job details.
- Chat screen lists all client conversations with unread indicators.
- Instant messaging powered by sockets.
- Integrated with Firebase Cloud Messaging (FCM) so providers never miss messages or job updates.
- Profile screen previews how the provider’s portfolio appears to clients.
- Settings screen provides access to:
- Wallet (balance + token withdrawals).
- Location toggle (visible/invisible to clients).
- App and profile customization options.
- Frontend: Flutter
- Backend: Node.js
- Database: MongoDB
- State Management: Riverpod
- Messaging/Notifications: WebSockets & Firebase Cloud Messaging
- Payments: Crypto-based payments
- Flutter SDK (stable channel) and Android SDK
- A GitHub account (for cloning/pushing)
- Optional:
flutter_dotenvfor environment variables in Flutter
- Clone the repository and navigate to the project directory:
git clone https://github.com/ahmvddddd/vider_provider.git
cd vider_provider
- Install dependencies Run the following command to fetch all the packages:
flutter pub get
- Run the app Make sure a device or emulator is running, then execute:
flutter run
- Build APK (Android) To build a release APK:
flutter build apk
Build for iOS (MacOS only) To build the app for iOS:
flutter build ios
- Troubleshooting Run flutter doctor to check for setup issues:
flutter doctor
To clean the build:
flutter clean
flutter pub get









