导师制客户

Systers 师徒制系统的跨平台客户端,使用 Flutter 编写。

是如何创建的?

我非常喜欢 Systers 的导师制系统,想尝试 Flutter,并在圣诞节期间有一些空闲时间。

基本原理

导师制系统旨在尽可能地包容所有人。它也应该适用于
用户的移动操作系统:)

工作状态

该应用程序是 Android 版本的保真度副本。它实现了所有基本
功能,尽管有些功能可能无法完美运行。

哪些功能有效?
几乎所有。

  • 登录和注册
  • 主页
  • 个人资料页面
  • 关系页面
  • 成员页面
  • 更改密码

缺少什么?(与 Mentorship Android 相比)

  • 关系页面:更新 `availableToMentor` 和 `needsMentoring` 状态无效
  • 关于屏幕基本上是一个关于对话框。它非常简单,应该添加更多信息。

可能会出现偶尔的 UI 错误——在这种情况下,请创建一个 issue。

概述

  • 应用程序尝试遵循 Clean Architecture 指南。逻辑被分成 4 层
    • UI
    • BLoC
    • Repository
    • Service
  • 应用程序广泛使用 BLoC 模式
  • 要与 API 通信,使用 Chopper
  • 要保存 JWT token,使用 Flutter Secure Storage
  • 如果您在代码中发现任何看起来有点奇怪的地方,它可能是 `lib/extensions` 中的某个有用扩展方法

Web 支持

Flutter for Web 目前处于技术预览阶段。要测试此功能,我创建了
一个单独的分支
我成功地在 Chrome 中运行了此应用程序。

Web 示例在此

它还不稳定,也不平稳(但嘿,它确实有效)。

不幸的是,我无法向托管的开发服务器发出请求
因为显然它禁用了 CORS。
幸运的是,至少可以连接到本地运行的服务器:)

要使用此应用程序的 Web 版本和您的本地服务器

  1. 对您的本地 Web 服务器进行这些小的更改
    以启用 CORS
  2. 运行本地开发服务器

未来?

我希望 Systers 能够接受这个项目作为他们的项目之一。我确实意识到它需要
更好的文档并且需要稍作打磨,但我真的相信这些问题
很容易解决。
我的梦想?例如,如果明年的 Google Code-in 学生能够继续开发它,我会非常高兴
改进它并打磨代码库。

GitHub

https://github.com/anitab-org/mentorship-flutter