Happy Care
为客户构建的在线健康咨询应用程序,使用 Flutter,后端服务器使用 ExpressJs(私有仓库,抱歉?)。
功能
- 根据症状查找医生、专科。(目前该功能基于数据库,之后将升级为机器学习)
- 查找在线医生、忙碌的医生。
- 询问会员用户今天的感受以查找医生(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 中以调试模式运行
- Flutter
屏幕截图(在 Mi 9 上运行 Stable 版本)
抱歉,某些 UI 没有提前设计,它对 16:9 的屏幕不响应,不如介绍、登录、注册页面那么漂亮,因为没有时间了,只是凭着想法写出来的?
启动、介绍、登录、注册
主屏幕(会员角色)
查看屏幕截图
| 主屏幕 | 选择您感觉良好 | 选择您感觉不适,以便查找医生 |
![]() |
![]() |
![]() |
| 更多症状 | 选择症状的结果 | 选择医生 |
![]() |
![]() |
![]() |
| Search | 聊天屏幕 | 聊天室 |
![]() |
![]() |
![]() |
| 带有输入事件的聊天 Socket | 发送前的图片预览 | 所有处方 |
![]() |
![]() |
![]() |
| 处方详情 | 会员角色详细信息 | 编辑信息 |
![]() |
![]() |
![]() |
| 医生详细信息 | 修改密码对话框 | 选择头像对话框 |
![]() |
![]() |
![]() |
| 更多新闻 | WebView | |
![]() |
![]() |
主屏幕(医生角色)
查看屏幕截图
| 主屏幕 | 聊天屏幕 | 聊天室 |
![]() |
![]() |
![]() |
| 带有输入事件的聊天 Socket | 创建处方 | 发送前的图片预览 |
![]() |
![]() |
![]() |
| 所有处方 | 处方详情 | 编辑处方 |
![]() |
![]() |
![]() |
| 医生角色详细信息 | 编辑信息 | 选择头像对话框 |
![]() |
![]() |
![]() |
| 更多新闻 | WebView | |
![]() |
![]() |
一些 gif
待办事项
- WebRTC 用于语音、视频通话
- 通知
- 重建 UI(我觉得不行不行不行,因为我太懒了?)
贡献者 ✨
Nguyễn Minh Dũng ? ? |






































