# Northstar-Server **Repository Path**: My_AK_Dream/northstar-server ## Basic Information - **Project Name**: Northstar-Server - **Description**: Intelligent Student Affairs System - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-11-06 - **Last Updated**: 2025-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Crow Server ## 介绍 智能学工系统项目 ## 软件架构 Crowcpp + mysql + vue - components:组件 - Log:日志组件 - Encrypte:加密算法组件 - Util:工具 - HTTPMessage:打印HTTP报文调试用 - include/Mysql:数据库操作 - include/Public:公共头文件 - include/Token:token生成和校验 - server:服务端,注册全局静态资源路径。 - client:客户端接口 - Auth:用户登陆注册 - Dialogue:主界面接口(未实现) - www:Vue导出的静态网页 - build:cmake生成的构建目录,可执行程序在build目录下 - main.cpp:网络资源路径注册。 - cmake.sh:构建编译脚本。 - CMakeLists.txt:构建规则。 - CreateTabel.sql:创建UserLogin表。 ### 项目依赖 - openssl:实现加密算法 - crowcpp:类似于Python Flask框架的 C++ 轻量级网络库 - boost:Crowcpp依赖 - axios:Crowcpp依赖 - mysqlclient:数据库C API - sqdlog:日志模块 - gflag:命令行参数处理 - nlohmann json:json库 - opencv:生成图片验证码 - jwt-cpp:jwt token库 ## 使用说明 1. 构建+编译项目 ```bash ./cmake.sh ``` 2. 编译项目 ```bash cd build make -j$(nproc) ``` ## 代码架构 ### 登录接口 ```mermaid %% 时序图例子,-> 直线,-->虚线,->>实线箭头 sequenceDiagram participant Vue-Client participant Crowcpp participant Login participant MySQL Vue-Client->>Crowcpp: auth/Login POST Crowcpp->>Login: LoginCheckAPI Login->>MySQL: LoginTableSearch alt STATUES = USER_ESIXT else MySQL-->>Login: USER_ESIXT Login-->>Crowcpp: USER_ESIXT Crowcpp-->>Vue-Client: 登录成功 else STATUES = USER_NOT_ESIXT MySQL-->>Login: USER_NOT_ESIXT Login-->>Crowcpp: USER_NOT_ESIXT Crowcpp-->>Vue-Client: 登录失败 end ``` ### 注册接口 ```mermaid sequenceDiagram participant Vue-Client participant Crowcpp participant Register participant MySQL Vue-Client->>Crowcpp: auth/Register POST Crowcpp->>Register: RegisterCheckAPI Crowcpp->>Register: RegisterResquestDecoding Register->>MySQL: LoginTableSearch alt STATUES = USER_ESIXT MySQL-->>Register: USER_ESIXT Register-->>Crowcpp: RegisterResponseEncoding Crowcpp-->>Vue-Client: 注册失败 else STATUES = USER_NOT_ESIXT MySQL-->>Register: USER_NOT_ESIXT Register-->>Crowcpp: RegisterResponseEncoding Crowcpp-->>Vue-Client: 注册成功 end ``` ### 忘记密码接口 ```mermaid sequenceDiagram participant Vue-Client participant Crowcpp participant ForgetPassword participant MySQL Vue-Client->>Crowcpp: auth/forgetPassword POST Crowcpp->>ForgetPassword: ForgetPasswordAPI Crowcpp->>ForgetPassword: ForgetPasswordDecoding ForgetPassword->>MySQL: LoginTableSearch alt STATUES = USER_ESIXT MySQL-->>ForgetPassword: USER_ESIXT ForgetPassword->>MySQL: LoginTableUpdate ForgetPassword-->>Crowcpp: ForgetPasswordEncoding Crowcpp-->>Vue-Client: 修改密码成功 else STATUES = USER_NOT_ESIXT MySQL-->>ForgetPassword: USER_NOT_ESIXT ForgetPassword-->>Crowcpp: ForgetPasswordEncoding Crowcpp-->>Vue-Client: 修改密码失败,用户不存在 end ``` ### 忘记用户名接口 ```mermaid sequenceDiagram participant Vue-Client participant Crowcpp participant ForgetPassword participant MySQL Vue-Client->>Crowcpp: auth/forgetUsername/email POST Crowcpp->>ForgetPassword: ForgetUsernameAPI Crowcpp->>ForgetPassword: ForgetUsernameDecoding ForgetPassword->>MySQL: LoginTableSearch alt STATUES = USER_ESIXT MySQL-->>ForgetPassword: USER_ESIXT ForgetPassword-->>Crowcpp: ForgetUsernameEncoding Crowcpp-->>Vue-Client: 修改密码成功 else STATUES = USER_NOT_ESIXT MySQL-->>ForgetPassword: USER_NOT_ESIXT ForgetPassword-->>Crowcpp: ForgetUsernameEncoding Crowcpp-->>Vue-Client: 修改密码失败 end ``` ## 代办 1. 实现邮箱注册功能 2. 实现图片验证码功能 3. 实现用户登陆控制:token,cookie,session功能。 4. 完善数据库用户登陆表 5. 实现主界面接口 ## 可选代办 1. 实现手机登录功能。 2. 实现微信,QQ第三方登录。 ## 注意 1. 数据库的登录名是connector,目前只支持本地登录,不支持远程登录。