Fetosense MIS (Flutter Web + Appwrite)
Fetosense MIS is a web-based Management Information System built with Flutter Web and Appwrite, designed to manage organizational data, devices, doctors, and mothers efficiently in healthcare settings.
🛠️ This web app is linked with the Fetosense Device App and the Fetosense Remote App.
Tech Stack
- Flutter SDK:
>=3.7.0 <4.0.0
- Backend: Appwrite
- Packages Used:
Folder Structure
lib/
├── screens/ # All main UI screens (login, dashboard, registration, etc.)
│ ├── dashboard_screen.dart
│ ├── device_details_page.dart
│ ├── organization_details_page.dart
│ ├── generate_qr_page.dart
│ └── ...
├── services/ # Backend service helpers
│ ├── auth_service.dart
│ └── excel_services.dart
├── utils/ # Utility functions (API calls, formatting)
│ ├── fetch_devices.dart
│ ├── format_date.dart
│ └── ...
├── widget/ # Reusable UI components
│ ├── custom_date_picker.dart
│ └── organization_dropdown.dart
└── main.dart # App entry point & route configuration
Getting Started
Prerequisites
- Flutter 3.7 or above
- Dart SDK
- Chrome browser (or any browser that supports Flutter Web)
Installation
git clone https://github.com/CareNX-Innovations-Pvt-Ltd/fetosense-web-flutter.git
cd fetosense_mis
flutter pub get
flutter run -d chrome
Make sure you have Chrome installed and
flutter doctor
shows no issues.
Features
- Secure login and registration using Appwrite
- Register and manage hospitals/organizations
- Register and manage Doppler/Tablet devices
- Generate QR codes for kits
- Dashboard with charts and insights
- Export data to Excel
- Manage doctors and mothers (patients)
- Filter by custom date ranges
- Fully responsive Flutter Web UI
Developers Documentation
You can find the complete developer documentation here.
System Architecture Diagram
Project Charter
You can find the Project Charter here.
Testing
flutter test
Deployment
This project can be deployed using:
- Firebase Hosting
- GitHub Pages (via
flutter build web
) - Appwrite Cloud Static Hosting
- Any web server (Nginx, Netlify, etc.)
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
About Fetosense
Fetosense is an innovative fetal monitoring solution. This MIS portal complements the solution by offering efficient backend tools to manage healthcare operations, device deployments, and patient insights.
Libraries
- animation/animated_logo
- core/models/models
- core/models/org_details_model
- core/models/user_model
- core/network/appwrite_config
- core/network/dependency_injection
- Dependency injection setup using the GetIt service locator.
- core/services/auth_service
- core/services/excel_services
- core/utils/app_constants
- core/utils/app_routes
- core/utils/preferences
- core/utils/state_map
- core/utils/user_role
- firebase_options
- main
- screens/analytics/doctors_analytics
- A Flutter widget that displays weekly and monthly analytics charts for doctors, using Appwrite as the backend and FL Chart for visualization.
- screens/analytics/organizations_analytics
- Flutter page that shows weekly or monthly test analytics for organizations using Appwrite as the backend and fl_chart for graph visualization.
- screens/dashboard/dashboard_cubit
- screens/dashboard/dashboard_view
- screens/dashboard/widget/graph_card
- screens/dashboard/widget/hover_stat_card
- screens/device_details/device_details_cubit
- screens/device_details/device_details_view
- screens/device_details/device_edit/device_edit_cubit
- screens/device_details/device_edit/device_edit_view
- screens/device_details/device_edit/widgets/device_editform
- screens/device_details/device_edit/widgets/device_info_card
- screens/device_details/device_edit/widgets/device_stat_card
- screens/device_details/device_edit/widgets/device_textfield
- screens/device_details/device_edit/widgets/device_tile_card
- screens/device_details/widgets/device_details_filters
- screens/device_details/widgets/device_details_header
- screens/device_details/widgets/device_table
- screens/device_registration/device_registration_cubit
- screens/device_registration/device_registration_view
- screens/doctor_details/doctor_details_cubit
- screens/doctor_details/doctor_details_view
- screens/doctor_details/doctoredit/doctor_edit_cubit
- screens/doctor_details/doctoredit/doctor_edit_popup
- screens/doctor_details/widgets/doctor_details_filter
- screens/doctor_details/widgets/doctor_details_table
- screens/doctor_details/widgets/doctor_header
- screens/generate_qr_page
- screens/login/login_cubit
- screens/login/login_view
- screens/login/widgets/captcha_checkbox
- screens/mother_details/mother_details_cubit
- screens/mother_details/mother_details_view
- screens/mother_details/widget/mother_details_table
- screens/organization_details/organization_details_cubit
- screens/organization_details/organization_details_view
- screens/organization_details/widgets/edit_popup_widgets/stat_card
- screens/organization_details/widgets/edit_popup_widgets/tile_card
- screens/organization_details/widgets/organization_edit_form
- screens/organization_details/widgets/organization_edit_popup
- screens/organization_details/widgets/organization_filters
- screens/organization_details/widgets/organization_header
- screens/organization_details/widgets/organization_info_panel
- screens/organization_details/widgets/organization_table
- screens/organization_registration/organization_registration_cubit
- screens/organization_registration/organization_registration_view
- screens/register/register_cubit
- screens/register/register_view
- screens/splash/splash_view
- utils/fetch_devices
- utils/fetch_doctors
- utils/fetch_mothers
- utils/fetch_organizations
- utils/fetch_tests
- utils/format_date
- widget/appbar
- widget/columns
- widget/custom_date_picker
- widget/organization_dropdown