死了吗-为独居人士开发的app
前段时间苹果的app store上上架了一个叫做“死了吗”的app,但是收费没记错的话好像是6块钱
最近openclaw挺火的就顺手做了一个安卓端的
由于是我+ai写的所以软件内有些细节问题没去弄不过大体功能是正常的
客户端效果


服务端+网页管理


特性
1.可以选择自己部署后端也可以选择使用我的服务器作为后端
2.可以自由选择宽限时间
3.软件数据会同步上传云端就算本地软件删除也会进行超时提醒
4.每日中午12点提醒打卡
5.有后端可以查看用户的设置
6.后端可以自行部署stmp邮箱
项目结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
| SafeCheckIn-v1/ │ ├── 📂 server/ ← 后端 (Python FastAPI) │ ├── main_final.py ← 主服务器程序 (47.7 KB) │ ├── config.json ← SMTP 邮件配置 │ ├── requirements.txt ← Python 依赖 │ ├── start.bat ← Windows 启动脚本 │ ├── start.sh ← Linux 启动脚本 │ └── venv/ ← Python 虚拟环境 │ └── 📂 client/ ← 前端 (Android Kotlin) ├── build.gradle.kts ← 项目级构建配置 ├── settings.gradle.kts ← Gradle 设置 ├── gradle.properties ← Gradle 属性 ├── gradlew.bat ← Gradle Wrapper ├── build.bat / build-debug.bat ← 构建脚本 ├── README.md / PROJECT.md ← 文档 │ └── 📂 app/ ├── build.gradle.kts ← 应用构建配置 │ └── 📂 src/main/ ├── AndroidManifest.xml ← 应用清单 │ ├── 📂 java/com/safecheckin/app/ │ ├── MainActivity.kt ← 主 Activity │ ├── SafeCheckInApp.kt ← Application 类 │ │ │ ├── 📂 data/ ← 数据层 │ │ ├── 📂 api/ │ │ │ ├── ApiClient.kt ← Retrofit 客户端 │ │ │ └── SafeCheckInApi.kt ← API 接口定义 │ │ ├── 📂 cloud/ │ │ │ └── CloudDataSource.kt ← 云端数据源 │ │ ├── 📂 local/ │ │ │ └── LocalDataSource.kt ← 本地 DataStore │ │ ├── 📂 model/ │ │ │ └── Models.kt ← 数据模型 │ │ └── 📂 repository/ │ │ ├── Repository.kt ← 仓库接口 │ │ └── CloudRepository.kt ← 云端仓库实现 │ │ │ ├── 📂 service/ ← Android 服务 │ │ ├── BootReceiver.kt ← 开机广播 │ │ ├── CheckInService.kt ← 签到服务 │ │ ├── CheckInWorker.kt ← WorkManager 后台任务 │ │ └── CheckInNotificationService.kt ← 通知服务 │ │ │ ├── 📂 ui/ ← UI 层 (Jetpack Compose) │ │ ├── SafeCheckInApp.kt ← Compose 导航入口 │ │ ├── 📂 components/ │ │ │ └── CheckInButton.kt ← 自定义签到按钮 │ │ ├── 📂 theme/ │ │ │ ├── Color.kt ← 颜色定义 │ │ │ ├── Theme.kt ← 主题 │ │ │ └── Typography.kt ← 字体 │ │ └── 📂 screens/ │ │ ├── 📂 auth/ ← 认证模块 │ │ │ ├── LoginScreen.kt │ │ │ ├── RegisterScreen.kt │ │ │ ├── ForgotPasswordScreen.kt │ │ │ └── AuthViewModel.kt │ │ ├── 📂 home/ ← 首页 │ │ │ ├── HomeScreen.kt │ │ │ └── HomeViewModel.kt │ │ ├── 📂 contacts/ ← 联系人 │ │ │ ├── ContactsScreen.kt │ │ │ └── ContactsViewModel.kt │ │ ├── 📂 settings/ ← 设置 │ │ │ ├── SettingsScreen.kt │ │ │ └── SettingsViewModel.kt │ │ └── 📂 about/ ← 关于 │ │ └── AboutScreen.kt │ │ │ └── 📂 utils/ ← 工具类 │ ├── TimeUtils.kt ← 时间工具 │ └── NotificationHelper.kt ← 通知帮助 │ └── 📂 res/ ← Android 资源 ├── 📂 drawable/ ← 图标 ├── 📂 mipmap-anydpi-v26/ ← 自适应图标 ├── 📂 values/ ← 颜色/字符串/主题 └── 📂 xml/ ← 备份/数据提取规则
|
技术栈
|
后端 |
前端 |
| 语言 |
Python |
Kotlin |
| 框架 |
FastAPI 0.104.1 |
Jetpack Compose + Material 3 |
| 架构 |
单文件 RESTful API |
MVVM |
| 数据库 |
SQLite3 |
DataStore (本地) |
| 网络 |
Uvicorn |
Retrofit + OkHttp |
| 后台任务 |
定时异步任务 |
WorkManager |
部署教程
把server文件夹里的文件全部上传到服务器
随后给start.sh文件权限
给好权限后启动start.sh
等待服务启动即可
开启端口8000和9090
8000端口为app对接服务器
9090为网页后端
如果需要更改端口可在main_final.py里更换端口(直接搜索8000或9090全部替换掉)
网页后端默认用户名root密码123456如需更换请修改main_final.py文件
注意:未自带保活程序,请自行使用screen
如果你是windows系统直接运行后端的start.bat即可
关于软件端使用教程
其实这一部分没啥好写的
如果你没有自己部署后端你可以使用我的服务器地址
http://38.14.249.174:8000
我的文件夹里有编译好的apk可以直接使用
点我下载onedrive链接请挂梯子下载