kinit—一款年轻技术的开源快速开发平台,接口采用FastAPI+SQLAlchemy,前端基于Vue3+Typescript+Vite3+element-plus开发

[关于]

Kinit 是一套开箱即用的中后台解决方案,可以作为新项目的启动模版!

前后端分离架构,开箱即用,紧随前沿技术!

既然已经决定了,那就要努力把它做好!

文采不够,技术来凑!

介绍

Kinit 是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。

  • 后端采用 Python 语言现代、快速(高性能) FastAPI 异步框架 + SQLAlchemy 异步操作 MySQL 数据库。
  • PC端采用 vue-element-plus-adminVue3Element PlusTypeScript等主流技术开发。
  • 移动端采用 uni-appVue2uView 2为主要技术开发
  • 新加入 Typer 命令行应用,简单化数据初始化,数据表模型迁移。
  • 权限认证使用(哈希)密码和 JWT Bearer 令牌的 OAuth2,支持多终端认证系统。
  • 支持加载动态权限菜单,多方式轻松权限控制,按钮级别权限控制。
  • 已加入常见的RedisMYSQLMongoDB数据库异步操作。
  • 开箱即用的中后台解决方案,可以用来作为新项目的启动模版,也可用于学习参考。并且时刻关注着最新技术动向,尽可能的第一时间更新。
  • vue-element-plus-admin 前端框架时刻保持同步更新。

在线体验

PC端演示地址:http://kinit.ktianc.top

移动端演示地址:http://h5.ktianc.top

微信小程序端演示:

  • 搜索:kinit
    请添加图片描述

  • 账号:15020221010

  • 密码:kinit2022

源码地址

gitee地址(主推):https://gitee.com/ktianc/kinit

github地址:https://github.com/vvandk/kinit

PC端内置功能

  • 菜单管理:配置系统菜单,操作权限,按钮权限标识、后端接口权限等。

  • 角色管理:角色菜单权限分配。

  • 用户管理:用户是系统操作者,该功能主要完成系统用户配置。

  • 个人主页:配置用户个人信息,密码修改等。

  • 字典管理:对系统中经常使用的一些较为固定的数据进行维护。

  • 文件上传:对接阿里云OSS与本地存储。

  • 登录认证:目前支持用户使用手机号+密码方式或者手机验证码登录。

    说明:新建用户密码默认为手机号后六位;

    说明:用户在第一次登录时,必须修改当前用户密码。

  • 系统配置:对本系统环境信息进行动态配置

    网站标题,LOGO,描述,ICO,备案号,底部内容,百度统计代码,等等

  • 用户分布:接入高德地图显示各地区用户分布情况

  • 登录日志:用户登录日志记录和查询。

  • 操作日志:系统用户每次操作功能时的详细记录。

  • 异常日志:获取并展示接口异常日志

  • 接口文档:提供自动生成的交互式 API 文档,与 ReDoc 文档

  • 导入导出:灵活支持数据导入导出功能

  • 简单适配手机端:

    1. 工作台招呼语一行显示,多余显示省略号
    2. 查询框宽度统一,需手动调整(强迫症建议)
    3. 分页符更新,电脑端与手机端分页功能不同
    4. 表格工具栏更新,手机端取消文字显示
    5. 表格操作按钮多的时候自动叠起
  • 已加入常见的RedisMySQLMongoDB数据库异步操作。

  • 命令行操作:新加入 Typer 命令行应用,简单化数据初始化,数据表模型迁移。

移动端内置功能

  • 登录认证:目前支持用户使用手机号+密码方式登录。

    说明:新建用户密码默认为手机号后六位;

    说明:用户在第一次登录时,必须修改当前用户密码。

  • 导航栏:首页、我的、工作台

  • 我的基础功能:编辑资料、头像修改、密码修改、常见问题、关于我们等

TODO

  • 考虑支持多机部署方案,如果接口使用多机,那么用户是否支持统一认证
  • 自动化编排服务:使用docker-compose部署项目
  • 数据库备份:自动备份数据库
  • 接入数据大屏
  • 可视化低代码表单:接入低代码表单,https://vform666.com/vform3.html?from=element_plus

前序准备

后端技术

  • Python3:熟悉 python3 基础语法
  • FastAPI - 熟悉后台接口 Web 框架.
  • Typer - 熟悉命令行工具的使用
  • MySQLMongoDB - 熟悉数据存储数据库

PC端

移动端

  • uni-app - 熟悉 uni-app 基本语法
  • Vue2 - 熟悉 Vue 基础语法
  • uView UI 2:uView UI 组件的基本使用

依赖包

PC端
  • vue3-json-viewer:简单易用的json内容展示组件,适配vue3和vite。
  • vue3-slide-verify:滑块验证码插件 vue3 + typescript。
  • SortableJS/vue.draggable.next:Vue 组件 (Vue.js 3.0) 允许拖放和与视图模型数组同步。
  • 高德地图API (amap.com):地图 JSAPI 2.0 是高德开放平台免费提供的第四代 Web 地图渲染引擎, 以 WebGL 为主要绘图手段,本着“更轻、更快、更易用”的服务原则,广泛采用了各种前沿技术,交互体验、视觉体验大幅提升,同时提供了众多新增能力和特性。
移动端
后端

安装和使用

获取代码

git clone https://gitee.com/ktianc/kinit.git

准备工作

Python >= 3.10.0
nodejs >= 14.0 (推荐使用最新稳定版)
Mysql >= 8.0
MongoDB (推荐使用最新稳定版)
Redis (推荐使用最新稳定版)

后端

  1. 安装依赖

    cd kinit-api
    
    pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
    
  2. 修改项目数据库配置信息

    application/config 目录中

    • development.py:开发环境

    • production.py:生产环境

    """
    Mysql 数据库配置项
    连接引擎官方文档:https://www.osgeo.cn/sqlalchemy/core/engines.html
    数据库链接配置说明:mysql+asyncmy://数据库用户名:数据库密码@数据库地址:数据库端口/数据库名称
    """
    SQLALCHEMY_DATABASE_URL = "mysql+asyncmy://数据库用户名:数据库密码@数据库地址:数据库端口/数据库名称"
    SQLALCHEMY_DATABASE_TYPE = "mysql"
    
    
    """
    Redis 数据库配置
    """
    REDIS_DB_ENABLE = True
    REDIS_DB_URL = "redis://:密码@地址:端口/数据库"
    
    """
    MongoDB 数据库配置
    """
    MONGO_DB_ENABLE = True
    MONGO_DB_NAME = "数据库名称"
    MONGO_DB_URL = f"mongodb://用户名:密码@地址:端口/?authSource={MONGO_DB_NAME}"
    
    """
    阿里云对象存储OSS配置
    阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
    yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
     *  [accessKeyId] {String}:通过阿里云控制台创建的AccessKey。
     *  [accessKeySecret] {String}:通过阿里云控制台创建的AccessSecret。
     *  [bucket] {String}:通过控制台或PutBucket创建的bucket。
     *  [endpoint] {String}:bucket所在的区域, 默认oss-cn-hangzhou。
    """
    ALIYUN_OSS = {
        "accessKeyId": "accessKeyId",
        "accessKeySecret": "accessKeySecret",
        "endpoint": "endpoint",
        "bucket": "bucket",
        "baseUrl": "baseUrl"
    }
    
    """
    获取IP地址归属地
    文档:https://user.ip138.com/ip/doc
    """
    IP_PARSE_ENABLE = True
    IP_PARSE_TOKEN = "IP_PARSE_TOKEN"
    

    并在alembic.ini文件中配置数据库信息,用于数据库映射

    # mysql+pymysql://数据库用户名:数据库密码@数据库地址:数据库端口/数据库名称
    [dev]
    # 开发环境
    version_locations = %(here)s/alembic/versions_dev
    sqlalchemy.url = sqlalchemy.url = mysql+pymysql://root:123456@127.0.0.1/kinit
    
    
    [pro]
    # 生产环境
    version_locations = %(here)s/alembic/versions_pro
    sqlalchemy.url = sqlalchemy.url = mysql+pymysql://root:123456@127.0.0.1/kinit
    
  3. 创建数据库

    mysql> create database kinit;             # 创建数据库
    mysql> use kinit;                         # 使用已创建的数据库 
    mysql> set names utf8;                    # 设置编码
    
  4. 初始化数据库数据

    # 进入项目根目录下执行
    python3 main.py init
    
  5. 修改项目基本配置信息

    修改数据库表 - vadmin_system_settings 中的关键信息

    # 阿里云短信配置
    sms_access_key
    sms_access_key_secret
    sms_sign_name_1
    sms_template_code_1
    sms_sign_name_2
    sms_template_code_2
    
    # 高德地图配置
    map_key
    
  6. 启动

    # 进入项目根目录下执行
    python3 main.py run
    

PC端

  1. 安装依赖
cd kinit-admin

pnpm install
  1. 运行
pnpm run dev
  1. 打包
pnpm run build:pro

访问项目

  • 访问地址:http://localhost:5000 (默认为此地址,如有修改请按照配置文件)
  • 账号:15020221010 密码:kinit2022
  • 接口地址:http://localhost:9000/docs (默认为此地址,如有修改请按照配置文件)

浏览器支持

本地开发推荐使用 Chrome 80+ 浏览器

支持现代浏览器, 不支持 IE

IEEdgeFirefoxChromeSafari
not supportlast 2 versionslast 2 versionslast 2 versionslast 2 versions

许可证

MIT

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Windouws 64 位Tomcat7.0.40 + 64位jdk1.7.0u21 绿色版 part1 纯绿色,官方下载,绝对可用~ 欢迎评论吐槽~ 文件 PATH 列表 │ LICENSE │ NOTICE │ RELEASE-NOTES │ RUNNING.txt │ ├─bin │ bootstrap.jar │ catalina-tasks.xml │ catalina.bat │ catalina.sh │ commons-daemon-native.tar.gz │ commons-daemon.jar │ configtest.bat │ configtest.sh │ cpappend.bat │ daemon.sh │ digest.bat │ digest.sh │ service.bat │ setclasspath.bat │ setclasspath.sh │ shutdown.bat │ shutdown.sh │ startup.bat │ startup.sh │ tcnative-1.dll │ tomcat-juli.jar │ tomcat-native.tar.gz │ tomcat7.exe │ tomcat7w.exe │ tool-wrapper.bat │ tool-wrapper.sh │ version.bat │ version.sh │ ├─conf │ │ catalina.policy │ │ catalina.properties │ │ context.xml │ │ context.xml.bak │ │ logging.properties │ │ server.xml │ │ server.xml.bak │ │ tomcat-users.xml │ │ web.xml │ │ │ └─Catalina │ └─localhost ├─jdk1.7.0_21 │ │ COPYRIGHT │ │ LICENSE │ │ README.html │ │ release │ │ src.zip │ │ THIRDPARTYLICENSEREADME-JAVAFX.txt │ │ THIRDPARTYLICENSEREADME.txt │ │ │ ├─bin │ │ appletviewer.exe │ │ apt.exe │ │ extcheck.exe │ │ idlj.exe │ │ jabswitch.exe │ │ jar.exe │ │ jarsigner.exe │ │ java-rmi.exe │ │ java.exe │ │ javac.exe │ │ javadoc.exe │ │ javafxpackager.exe │ │ javah.exe │ │ javap.exe │ │ javaw.exe │ │ javaws.exe │ │ jcmd.exe │ │ jconsole.exe │ │ jdb.exe │ │ jhat.exe │ │ jinfo.exe │ │ jli.dll │ │ jmap.exe │ │ jps.exe │ │ jrunscript.exe │ │ jsadebugd.exe │ │ jstack.exe │ │ jstat.exe │ │ jstatd.exe │ │ jvisualvm.exe │ │ keytool.exe │ │ kinit.exe │ │ klist.exe │ │ ktab.exe │ │ msvcr100.dll │ │ native2ascii.exe │ │ orbd.exe │ │ pack200.exe │ │ policy

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值