Your Legal Consultation at Your Fingertips
إستشارتك القانونية بين يديك!
A comprehensive Flutter-based mobile application connecting users with legal professionals for consultations and administrative services.
- Overview
- Features
- Architecture
- Getting Started
- Project Structure
- Dependencies
- Screenshots
- Contributing
- License
Mashura (مشورة) is a mobile application designed to bridge the gap between individuals seeking legal assistance and qualified legal professionals. The platform provides a streamlined interface for accessing various legal services, from consultations to administrative procedures.
- Accessibility: Make legal services accessible to everyone through a user-friendly mobile interface
- Efficiency: Streamline the process of finding and connecting with legal professionals
- Comprehensive: Cover a wide range of legal and administrative services
- Bilingual: Full Arabic language support with right-to-left (RTL) text direction
- Real Estate Law (عقاري) - Property and real estate matters
- Labor Law (عمالي) - Employment and workplace issues
- Family Law (أسرة) - Family and personal status matters
- Civil Law (مدني) - General civil legal matters
- Commercial Law (تجاري) - Business and commercial issues
- Contracts (عقود) - Contract drafting and review
Document Extraction (إستخراج الوثائق):
- Nationality documents (الجنسية)
- Residence certificates (شهادة اقامة)
- Birth certificates (شهادة ميلاد)
Procedures (الإجراءات):
- Filing complaints (تقديم شكاوى)
- Writing petitions (كتابة عرائض)
- Filing appeals (تقديم طعون)
Required Documents (الوثائق اللازمة):
- Intellectual property protection (حماية الملكية الفكرية)
- Startup establishment (انشاء مؤسسة ناشئة)
- Property contracts (عقود الملكية)
- Retirement services (خدمات التقاعد)
- Employment files (ملفات توظيف)
- Career path issues (إشكالات خلال المسار المهني)
- Profile Management: Manage professional profiles and specializations
- Client Communication: Direct chat functionality with clients
- Case Management: Track pending and completed cases
- Settings: Customize preferences and availability
- 🔐 Secure Authentication: Email-based login and registration system
- 💬 Real-time Chat: Direct messaging between clients and lawyers
- 👤 User Profiles: Comprehensive profile management for both user types
- 🎨 Modern UI: Clean, intuitive interface with Arabic font support
- 📱 Cross-platform: Works on Android, iOS, Web, Windows, macOS, and Linux
The application supports two distinct user roles:
- Client/User (مستخدم): Individuals seeking legal services
- Lawyer/Worker (محامي): Legal professionals providing services
Login/Signup
├── Client Flow
│ ├── Home (Service Categories)
│ ├── Chat (Communication)
│ ├── Profile (Settings)
│ └── Service Selection → Lawyer Profiles
│
└── Lawyer Flow
├── Home (Dashboard)
├── Pending Cases
├── Completed Cases
├── Chat (Client Communication)
└── Settings
- Framework: Flutter 3.3.4+
- Language: Dart 3.3.4+
- State Management: StatefulWidget (can be upgraded to Provider/Riverpod/GetX)
- UI Components: Material Design with custom Arabic fonts
- Navigation: Navigator 2.0 with named routes
- Localization: Flutter Localizations (Arabic support)
- Flutter SDK (3.3.4 or higher)
- Dart SDK (3.3.4 or higher)
- Android Studio / VS Code with Flutter extensions
- Git
-
Clone the repository
git clone <repository-url> cd mashura
-
Install dependencies
flutter pub get
-
Generate launcher icons (optional)
flutter pub run flutter_launcher_icons
-
Run the application
# For development flutter run # For specific platform flutter run -d chrome # Web flutter run -d windows # Windows flutter run -d android # Android flutter run -d ios # iOS
The app icon is located at Image/MashuraIconZoomed.jpg. To update:
- Replace the image file
- Run
flutter pub run flutter_launcher_icons
To change the package name:
flutter pub run change_app_package_name:main com.yourcompany.mashuramashura/
├── lib/
│ ├── main.dart # App entry point
│ ├── LoginPage.dart # Authentication screens
│ ├── Home.dart # Client home screen
│ ├── HomeW.dart # Lawyer home screen
│ ├── daColor.dart # Color scheme definitions
│ │
│ ├── Client/ # Client-specific screens
│ │ ├── ClinetHome.dart # Client dashboard
│ │ ├── ClientChat.dart # Client chat interface
│ │ ├── ClientSettings.dart # Client settings
│ │ ├── ClientSorts.dart # Sorting/filtering
│ │ └── WorkerProfile.dart # Lawyer profile view
│ │
│ ├── Worker/ # Lawyer-specific screens
│ │ ├── WorkerHome.dart # Lawyer dashboard
│ │ ├── WorkerChat.dart # Lawyer chat interface
│ │ ├── WorkerSettings.dart # Lawyer settings
│ │ ├── pending.dart # Pending cases
│ │ └── ended.dart # Completed cases
│ │
│ ├── Shared/ # Shared components
│ │ └── ProfileAvatars.dart # Reusable avatar components
│ │
│ └── Model/ # Data models (to be expanded)
│
├── Image/ # Image assets
│ ├── Avatars/ # User avatars
│ ├── CAvatars/ # Custom avatars
│ ├── kotob/ # Book/document icons
│ └── MashuraIcon.jpg # App icon
│
├── android/ # Android-specific files
├── ios/ # iOS-specific files
├── web/ # Web-specific files
├── windows/ # Windows-specific files
├── linux/ # Linux-specific files
├── macos/ # macOS-specific files
│
├── pubspec.yaml # Project dependencies
└── README.md # This file
| Package | Version | Purpose |
|---|---|---|
flutter |
SDK | Core framework |
flutter_localizations |
SDK | Localization support |
arabic_font |
^0.0.9 | Arabic typography |
google_fonts |
^6.2.1 | Additional fonts |
google_nav_bar |
^5.0.6 | Bottom navigation |
botton_nav_bar |
^1.0.2 | Navigation bar alternative |
table_calendar |
^3.1.1 | Calendar functionality |
http |
^1.2.1 | HTTP requests |
cupertino_icons |
^1.0.6 | iOS-style icons |
| Package | Version | Purpose |
|---|---|---|
flutter_test |
SDK | Testing framework |
flutter_lints |
^3.0.0 | Code quality |
flutter_launcher_icons |
^0.13.1 | Icon generation |
change_app_package_name |
^1.5.0 | Package renaming |
rename_app |
^1.6.3 | App renaming |
Screenshots to be added
- Backend Integration: Connect to a real backend API
- Payment Gateway: Integrate payment processing for services
- Document Upload: Allow users to upload documents
- Video Consultations: Add video call functionality
- Appointment Scheduling: Calendar-based appointment system
- Reviews & Ratings: Client feedback system
- Push Notifications: Real-time notifications
- Multi-language Support: Add English and French
- Advanced Search: Filter lawyers by specialization, rating, location
- Case Tracking: Real-time case status updates
- Implement state management (GetX/Riverpod/Bloc)
- Add unit and widget tests
- Implement CI/CD pipeline
- Add error handling and logging
- Optimize performance and bundle size
- Implement offline mode with local storage
- Add accessibility features
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow the Dart Style Guide
- Use meaningful variable and function names
- Add comments for complex logic
- Ensure all code is properly formatted (
flutter format .) - Run linter before committing (
flutter analyze)
This project is private and proprietary. All rights reserved.
Team information to be added
For questions or support, please contact:
Contact information to be added
- Flutter team for the amazing framework
- Arabic font contributors
- All open-source package maintainers
Made with ❤️ using Flutter
Version 1.0.0+1