{"id":26872614,"url":"https://github.com/dingdinglz/vote","last_synced_at":"2025-05-07T09:30:40.836Z","repository":{"id":266940925,"uuid":"899821314","full_name":"dingdinglz/vote","owner":"dingdinglz","description":"程设结课项目，随机抽取学生，一个用于辅助课堂教学的工具","archived":false,"fork":false,"pushed_at":"2024-12-16T12:35:00.000Z","size":423,"stargazers_count":2,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T08:40:55.399Z","etag":null,"topics":["cmake","cpp","layui","sqlite3","webview"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dingdinglz.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-07T05:22:14.000Z","updated_at":"2025-03-03T13:10:31.000Z","dependencies_parsed_at":"2025-03-31T08:43:04.283Z","dependency_job_id":null,"html_url":"https://github.com/dingdinglz/vote","commit_stats":null,"previous_names":["dingdinglz/vote"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dingdinglz%2Fvote","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dingdinglz%2Fvote/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dingdinglz%2Fvote/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dingdinglz%2Fvote/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dingdinglz","download_url":"https://codeload.github.com/dingdinglz/vote/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252850888,"owners_count":21814042,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cmake","cpp","layui","sqlite3","webview"],"created_at":"2025-03-31T08:32:40.651Z","updated_at":"2025-05-07T09:30:40.802Z","avatar_url":"https://github.com/dingdinglz.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## 概览\n\nVote - 学生抽取软件\n\n### 应用场景\n\n上课时老师需要抽取同学回答问题，或者抽取一组同学进行活动的情况\n\n### 实现功能\n\n- 管理抽取列表，可以添加、删除班级，添加、删除学生。\n\n- 在已添加的班级中抽取指定数量的学生。\n\n## 实现方法\n\n[**webview**](https://github.com/webview/webview) + **layui** 实现UI部分\n\n**sqlite** + [**sqlite_orm**](https://github.com/fnc12/sqlite_orm) 实现数据存储部分\n\n## 亮点\n\n- 使用sqlite存储数据\n\n- 贴合日常使用需求\n\n- 友好的api\n\n- 方便的数据迁移能力\n\n- 轻量级\n\n## 使用方法\n\n1. 进入管理学生名单界面，进行创建班级，为班级添加学生等操作。\n\n2. 添加完毕抽取名单后，回到主页，进入抽签界面进行抽取。\n\n## 画廊\n\n![](./image/1.png)\n\n![](./image/2.png)\n\n## 感想\n\n本项目作为我们的大一程序设计的结课项目，我的三个队友在开发本项目的过程中第一次接触到了git、github、cmake，对于那些只会c语言语法的同学，我很难想象他们如何合作顺利地开发一个项目，大部分的同学甚至以为一个程序只能在一个.c文件中实现。这个结课任务对他们来说可能是艰巨的。而我的三个队友，尽管我针对git的使用、cmake的使用、sqlite_orm的使用录了视频，推荐了相关文章，学习和使用起来也十分吃力。然而我们学校并不算一个很差的学校，大家也整整学习了半年的时间了。怎么说呢，我很难评价。\n\n## 开发\n\n[开发任务列表](./task)\n\n## 编译\n\n### 前置工具\n\n- CMake\n\n- Git\n\n- Vcpkg\n\n- 任一cmake支持的编译器\n\n### 引入vscpkg支持\n\n如果未安装vcpkg，可在[通过 CMake 安装和使用包 | Microsoft Learn](https://learn.microsoft.com/zh-cn/vcpkg/get_started/get-started)中找到方法。由于项目已完成CMakeLists的设置，如果你参照这个链接，仅需完成步骤1、4即可，4与我们下面的操作完全相同。\n\n你需要在目录下新建两个文件\n\n#### CMakePresets.json\n\n```json\n{\n    \"version\": 2,\n    \"configurePresets\": [\n      {\n        \"name\": \"vcpkg\",\n        \"generator\": \"Ninja\",\n        \"binaryDir\": \"${sourceDir}/build\",\n        \"cacheVariables\": {\n          \"CMAKE_TOOLCHAIN_FILE\": \"$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake\"\n        }\n      }\n    ]\n}\n```\n\n你可以修改Ninja为一个你需要的编译器，例如**Visual Studio 17 2022**，可用的选项你可以通过**cmake --help**，在Generators中找到。\n\n#### CMakeUserPresets.json\n\n```json\n{\n    \"version\": 2,\n    \"configurePresets\": [\n      {\n        \"name\": \"default\",\n        \"inherits\": \"vcpkg\",\n        \"environment\": {\n          \"VCPKG_ROOT\": \"你的vcpkg所在的路径\"\n        }\n      }\n    ]\n}\n```\n\n创建完成这两个文件后，你可以进行下一步操作\n\n### 生成\n\n```bash\nmkdir build\ncd build\ncmake --preset=default ..\n```\n\n```bash\ncmake --build .\n```\n\n## Contributors\n\n\u003ca href=\"https://github.com/dingdinglz/vote/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=dingdinglz/vote\" /\u003e\n\u003c/a\u003e\n\nContributor Image Made with [contrib.rocks](https://contrib.rocks).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdingdinglz%2Fvote","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdingdinglz%2Fvote","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdingdinglz%2Fvote/lists"}