Happy Care

为客户构建的在线健康咨询应用程序,使用 Flutter,后端服务器使用 ExpressJs(私有仓库,抱歉?)。

All Contributors
Codacy Badge
Flutter

功能

  • 根据症状查找医生、专科。(目前该功能基于数据库,之后将升级为机器学习)
  • 查找在线医生、忙碌的医生。
  • 询问会员用户今天的感受以查找医生(30 分钟循环)。
  • 医生与会员之间的一对一聊天、发送图片。
  • 医生可以为会员创建新的处方。
  • 按专科查找医生。
  • 用户信息 CRUD(创建、读取、更新、删除)。

使用的技术

  • Flutter GetX 模式,使用 GetX 进行状态管理。(实际上我想使用 BLOC (Rx),但我只有 1 个月的时间来完成,所以我使用 Getx 来更快地完成。但 GetX 内置的 DI 太糟糕了)
  • 使用 JWT 进行身份验证和授权。
  • 后端使用 ExpressJs、MongoDB。
  • 使用 Socket.io 进行实时事件。
  • 使用 Cloudinary 存储图片。

目录结构

project
│   README.md
│
│
└───lib
│   |
│   └───core
│   |   |
│   │   └───helpers <--[Helpers function like customShowDialog(context)]
│   |   |
│   │   └───themes  <--[Colors]
│   |   |
│   │   └───utils   <--[logger, validator, cache manager, sharedPref,..]
│   │
│   └───data
│   |   |
│   │   └───api  <-[Provider data from remote]
│   |   |
│   │   └───models
│   |   |
│   │   └───repositories
│   |   |
│   │   └───services
│   |           |
│   │           └───socket_io_service.dart  <--[Socket.io service]
│   │           |
│   │           └───cloudinary_service.dart <--[Cloudinary service]
│   │
│   └───modules <-[Screens, Controllers, Binding,... support modules]
│   |
│   └───routes  <-[Define routes and pages for named navigator, binding]
│   |
│   └───widgets <-[Common widgets for reusing]
│   |
│   └───main.dart
│
│
└───assets
        └───icons
        |
        └───images
        |
        └───logos
        |
        └───lottie <-[lottie animation]
        |
        └───.env <-[.env for environment]

设置和运行

点击展开

  • 下载 APK
  • 设置和运行
    • Flutter
      • 安装 Flutter
      • 使用 stable 渠道

        ❯ flutter channel stable
        ❯ flutter upgrade
      • Flutter doctor
        ❯ flutter doctor
      • 通过以下方式安装所有软件包
        ❯ flutter pub get
      • 创建 .env 文件 assets/.env,结构如下
        BASE_URL=https://komkat-happy-care.herokuapp.com
      • 在真实设备或模拟器上运行应用,使用
        ❯ flutter run

        或在 VSCode 或其他 IDE 中以调试模式运行

屏幕截图(在 Mi 9 上运行 Stable 版本)

抱歉,某些 UI 没有提前设计,它对 16:9 的屏幕不响应,不如介绍、登录、注册页面那么漂亮,因为没有时间了,只是凭着想法写出来的?

启动、介绍、登录、注册

查看屏幕截图

启动屏幕 介绍 1 介绍 2
介绍 3 介绍 4
登录 注册

主屏幕(会员角色)

查看屏幕截图

主屏幕 选择您感觉良好 选择您感觉不适,以便查找医生
更多症状 选择症状的结果 选择医生
Search 聊天屏幕 聊天室
带有输入事件的聊天 Socket 发送前的图片预览 所有处方
处方详情 会员角色详细信息 编辑信息
医生详细信息 修改密码对话框 选择头像对话框
更多新闻 WebView

主屏幕(医生角色)

查看屏幕截图

主屏幕 聊天屏幕 聊天室
带有输入事件的聊天 Socket 创建处方 发送前的图片预览
所有处方 处方详情 编辑处方
医生角色详细信息 编辑信息 选择头像对话框
更多新闻 WebView

一些 gif

查看 gif

按症状查找医生

待办事项

  • WebRTC 用于语音、视频通话
  • 通知
  • 重建 UI(我觉得不行不行不行,因为我太懒了?)

贡献者 ✨


Nguyễn Minh Dũng
? ?

GitHub

查看 Github