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


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

img.png


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

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature)
  4. Push to the branch (git push origin feature/amazing-feature)
  5. 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

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/bottom_navigation_bar
widget/columns
widget/custom_date_picker
widget/organization_dropdown