A comprehensive Flutter application for managing medical appointments with doctors.
AppointMed allows users to browse doctors, schedule appointments, manage favorites, and handle payments seamlessly across multiple platforms with responsive design.
Clone Ui https://www.figma.com/design/2l2BSiGAfFSttceZ85OahL/Medical-Health-Mobile-App-Dermatology-App-Ui-Kit-Doctor-Mobile-App--Community-?node-id=21-455&t=nDSd7j3qa53S9lb1-0 Coming soon - Screenshots of the app in action
- Login/Signup - Secure user authentication
- Social Login - Google/Facebook integration
- Password Recovery - Forgot password functionality
- Browse Doctors - View available doctors by specialty
- Doctor Details - Detailed doctor profiles with ratings and reviews
- Search & Filter - Find doctors by name, specialty, or location
- Favorite Doctors - Save preferred doctors for quick access
- Schedule Appointments - Book appointments with available doctors
- Appointment History - View past, upcoming, and cancelled appointments
- Appointment Management - Cancel or reschedule appointments
- Calendar Integration - Visual appointment scheduling
- In-App Chat - Direct messaging with doctors
- Chat History - Persistent conversation storage
- Notification System - Real-time appointment and chat notifications
- Multiple Payment Methods - Credit cards, digital wallets
- Secure Payment Processing - Encrypted payment handling
- Payment History - Track all payment transactions
- Receipt Generation - Digital payment receipts
- Profile Management - Edit personal information
- Settings - App preferences and configurations
- Help Center - Support and FAQ section
- Privacy Policy - Data protection information
- Dark Mode - Toggle between light and dark themes
- Multi-language Support - English and French localization
- Responsive Design - Optimized for phones, tablets, and desktops
- Offline Support - Basic functionality without internet
- Device Preview - Test on different device sizes during development
- BLoC Pattern - Business Logic Component for state management
- Cubit - Lightweight state management for simple use cases
- Hydrated BLoC - Persistent state storage
- Go Router - Declarative routing with type-safe navigation
- Named Routes - Organized route management
- ScreenUtil - Responsive sizing across different screen sizes
- Responsive Framework - Adaptive layouts for various devices
- Media Queries - Dynamic UI adjustments based on screen size
# State Management
flutter_bloc: ^8.1.6
hydrated_bloc: ^9.1.5
equatable: ^2.0.7
# Navigation
go_router: ^16.2.4
# Responsive Design
flutter_screenutil: ^5.9.3
responsive_framework: ^1.5.1
# UI Components
cached_network_image: ^3.4.1
google_fonts: ^6.3.2
# Utilities
connectivity_plus: ^7.0.0
fluttertoast: ^9.0.0
# Development
device_preview: ^1.3.1# Chat System
chat_package: ^2.0.1
# Payment Processing
u_credit_card: ^1.4.0
# Ratings & Reviews
flutter_rating: ^2.0.2
- Flutter SDK (3.8.1 or higher)
- Dart SDK
- Android Studio / VS Code
- Git
-
Clone the repository
git clone https://github.com/yourusername/appointmed.git cd appointmed -
Install dependencies
flutter pub get
-
Generate native splash screen
flutter pub run flutter_native_splash:create
-
Run the app
flutter run
-
Enable device preview (for development)
// In main.dart DevicePreview(enabled: true) // Set to false in production
-
Configure design size
// In main.dart - ScreenUtilInit designSize: const Size(360, 690)
lib/
βββ π components/ # Reusable UI components
β βββ appbar.dart # Custom app bar
β βββ buttons.dart # Button variants
β βββ dialogs.dart # Modal dialogs
β βββ searchfield.dart # Search input field
β βββ textfield.dart # Custom text fields
β βββ toast.dart # Toast notifications
β
βββ π config/ # App configuration
β βββ connectivity.dart # Network connectivity
β βββ dependencies.dart # Dependency injection
β βββ theme.dart # App theming
β βββ urls.dart # API endpoints
β βββ π language/ # Internationalization
β β βββ language_cubit.dart
β β βββ translation.dart
β β βββ shared_pref_language.dart
β βββ π routes/ # Navigation routes
β βββ routes.dart
β βββ routesName.dart
β
βββ π features/ # Feature-based modules
β βββ π auth/ # Authentication
β β βββ login.dart
β β βββ signup.dart
β β βββ auth_widget.dart
β β
β βββ π appointment/ # Appointment management
β β βββ appointement.dart
β β βββ appointment_cards.dart
β β βββ cancelappointement.dart
β β βββ reviewappoi.dart
β β βββ data_appoin.dart
β β βββ π appoin_widget/
β β βββ tab_button.dart
β β
β βββ π doctors/ # Doctor management
β β βββ doctors.dart
β β βββ doctor_details_page.dart
β β βββ doctor_component.dart
β β
β βββ π favorite/ # Favorite doctors
β β βββ favorites_page.dart
β β βββ favorit_widget.dart
β β βββ doctor_model.dart
β β βββ π bloc/
β β βββ favorite_bloc.dart
β β βββ favorit_event.dart
β β βββ favorit_state.dart
β β
β βββ π chat/ # Messaging system
β β βββ chatPage.dart
β β βββ chat_people.dart
β β
β βββ π notification/ # Push notifications
β β βββ notification.dart
β β βββ notification_widget.dart
β β
β βββ π payment/ # Payment processing
β β βββ paymentCard.dart
β β βββ paymentMethode.dart
β β βββ reviewPayment.dart
β β βββ sucessPayment.dart
β β βββ π review_card/
β β βββ review_C.dart
β β βββ review_widget.dart
β β
β βββ π profile/ # User profile
β β βββ profile.dart
β β βββ editprofile.dart
β β βββ π profile_components/
β β βββ logout.dart
β β
β βββ π schedule/ # Scheduling system
β βββ schedule.dart
β βββ schedule_widget.dart
β βββ shedule_data.dart
β
βββ π pages/ # Main application pages
β βββ bottom_navigation_bar.dart
β βββ splashscreen.dart
β βββ welcomPage.dart
β βββ privacy_policy.dart
β βββ π homepage/
β β βββ homepage.dart
β β βββ π home_widget/
β β βββ daily_list.dart
β β βββ doctor_card.dart
β β βββ home_appbar.dart
β β βββ shcedule_card.dart
β βββ π helpCenter/
β βββ help_center.dart
β βββ π widgets/
β βββ toggleC.dart
β
βββ π utils/ # Utility functions
β βββ common.dart # Common utilities
β βββ responsivity.dart # Responsive helpers
β βββ theme_extention.dart # Theme extensions
β βββ network_image_widget.dart
β βββ nums.dart # Numeric constants
β
βββ main.dart # App entry point
βββ test.dart # Widget tests
- Primary: Blue (#2260FF)
- Secondary: Light Blue (#E3F2FD)
- Background: Light (#FBFBFE) / Dark (#121212)
- Success: Green
- Error: Red
- Font Family: League Spartan (Google Fonts)
- Responsive Text: Using ScreenUtil (.sp)
- Custom Buttons: Primary, Secondary, Icon variants
- Cards: Doctor cards, Appointment cards
- Dialogs: Loading, Success, Error, Confirmation
- Forms: Text fields with validation
- Follow Dart/Flutter linting rules
- Use meaningful variable and function names
- Implement proper error handling
- Add comments for complex logic
- Use ScreenUtil for sizing (.w, .h, .sp, .r)
- Test on multiple screen sizes
- Implement adaptive layouts
- Use BLoC for complex state
- Use Cubit for simple state
- β Android (API 21+)
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ using Flutter