1 Star 0 Fork 136

qinwentu / kinit

forked from Ant. / kinit 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

logo

[关于]

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

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

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

文采不够,技术来凑!

介绍

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

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

特别鸣谢

vue-element-plus-admin:一套基于vue3、element-plus、typescript4、vite3的后台集成方案

RuoYi 若依官方网站:RuoYi 是一个后台管理系统,基于经典技术组合(Spring Boot、Apache Shiro、MyBatis、Thymeleaf)主要目的让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量。

django-vue-admin:基于RBAC模型的权限控制的一整套基础开发平台,前后端分离,后端采用 django+django-rest-framework,前端采用 vue+ElementUI。

Ant Design Pro:开箱即用的中台前端/设计解决方案

Gin-Vue-Admin:基于vite+vue3+gin搭建的开发基础平台(支持TS,JS混用),集成jwt鉴权,权限管理,动态路由,显隐可控组件,分页封装,多点登录拦截,资源权限,上传下载,代码生成器,表单生成器等开发必备功能。

Vben Admin:Vue Vben Admin 是一个免费开源的中后台模版。使用了最新的vue3,vite2,TypeScript等主流技术开发,开箱即用的中后台前端解决方案,也可用于学习参考。

中华人民共和国行政区划 (github.com):省级(省份)、 地级(城市)、 县级(区县)、 乡级(乡镇街道)、 村级(村委会居委会) ,中国省市区镇村二级三级四级五级联动地址数据。

Vue Admin Plus:vue-admin-better是github开源admin中最优秀的集成框架之一,它是国内首个基于vue3.0的开源admin项目,同时支持电脑,手机,平板,默认分支使用vue3.x+antdv开发,master分支使用的是vue2.x+element开发。

小诺开源技术 (xiaonuo.vip):国内首个国密前后端分离快速开发平台

my-web:MyWeb 是一个企业级中后台前端/设计解决方案的的项目工程模板,它可以帮助你快速搭建企业级中后台产品原型

在线体验

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

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

微信小程序端演示:

  • 搜索:kinit
  • 扫码:
image-20221010214526082
  • 账号: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 为主要绘图手段,本着“更轻、更快、更易用”的服务原则,广泛采用了各种前沿技术,交互体验、视觉体验大幅提升,同时提供了众多新增能力和特性。

移动端

  • uni-read-pages :自动读取 pages.json 所有配置。
  • uni-simple-router :在uni-app中使用vue-router的方式进行跳转路由,路由拦截。

后端

安装和使用

获取代码

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

访问项目

如何贡献

你可以提一个 issue 或者提交一个 Pull Request。

Pull Request:

  1. Fork 代码
  2. 创建自己的分支: git checkout -b feat/xxxx
  3. 提交你的修改: git commit -am 'feat(function): add xxxxx'
  4. 推送您的分支: git push origin feat/xxxx
  5. 提交 pull request

Git 贡献提交规范

  • feat 新功能
  • fix 修补 bug
  • docs 文档
  • style 格式、样式(不影响代码运行的变动)
  • refactor 重构(即不是新增功能,也不是修改 BUG 的代码)
  • perf 优化相关,比如提升性能、体验
  • test 添加测试
  • build 编译相关的修改,对项目构建或者依赖的改动
  • ci 持续集成修改
  • chore 构建过程或辅助工具的变动
  • revert 回滚到上一个版本
  • workflow 工作流改进
  • mod 不确定分类的修改
  • wip 开发中
  • types 类型

浏览器支持

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

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

IE Edge Firefox Chrome Safari
not support last 2 versions last 2 versions last 2 versions last 2 versions

许可证

MIT

PC端演示图

image-20221010214526082

image-20221010214526082

image-20221010214526082

image-20221010214526082

image-20221010214526082

image-20221010214526082

image-20221010214526082

image-20221010214526082

移动端演示图

MIT License Copyright (c) 2022 ktianc Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

本项目基于Python的Web框架(Fastapi)+ SQLAlchemy 与Vue3+Typescript+Vite3+element-plus的基础项目 PC端基于vue-element-plus-admin框架开发,与该前端框架核心内容同步更新,保持最新版本。 新增移动端基于ruoyi-app框架开发,新加入uview ui组件,使用技术:Uni-App 展开 收起
Python
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/qinwentu/kinit.git
git@gitee.com:qinwentu/kinit.git
qinwentu
kinit
kinit
master

搜索帮助