1 Star 0 Fork 137

刘子仪 / kinit

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

logo

[关于]

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

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

高性能,高效率,高颜值,易扩展

长期维护,积极更新!

介绍

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

特别鸣谢

vue-element-plus-admin:基于vue3、element-plus、typescript 的后台集成方案

RuoYi 若依官方网站:RuoYi 是一个优秀的 Java 后台管理系统

django-vue-admin:django-vue-admin 是一个优秀的基于 Django 开发后台管理系统

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

在线体验

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

微信小程序端演示:

  • 搜索:kinit
  • 扫码:

logo

  • 账号:15020221010
  • 密码:kinit2022

源码地址

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

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

PC端内置功能

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

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

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

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

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

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

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

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

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

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

    网站标题,LOGO,描述,ICO,备案号,底部内容,微信小程序信息,等等

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

  • 数据概览:提供两种数据统计展示模板,更直观的查看数据统计情况

  • 智慧大屏:大屏展示办公室空气质量实时检测数据分析

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

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

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

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

  • 已加入常见的RedisMySQLMongoDB数据库异步操作。

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

  • 定时任务:在线操作(添加、修改、删除)任务调度包含查看任务执行结果日志。

移动端内置功能

  • 登录认证:支持用户使用手机号+密码方式登录,微信手机号一键登录方式。

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

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

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

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

前序准备

后端技术

PC端

移动端

  • uni-app - 熟悉 uni-app 基本语法
  • Vue2 - 熟悉 Vue 基础语法
  • uView UI 2:uView UI 组件的基本使用
  • uni-read-pages :自动读取 pages.json 所有配置。
  • uni-simple-router :在uni-app中使用vue-router的方式进行跳转路由,路由拦截。

定时任务

安装和使用

获取代码

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

准备工作

Python == 3.10 (其他版本均未测试)
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/settings.py 文件

    # 安全警告: 不要在生产中打开调试运行!
    DEBUG = True # 如果当前为开发环境则改为 True,如果为生产环境则改为 False
    
  3. 修改项目数据库配置信息

    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"
    
  4. 并在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
  5. 创建数据库

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

    # 项目根目录下执行,需提前创建好数据库
    # 会自动将模型迁移到数据库,并生成初始化数据
    # 执行前请确认执行的环境与settings.py文件中配置的DEBUG一致
    
    # (生产环境)
    python3 main.py init
    
    # (开发环境)
    python3 main.py init --env dev
  7. 修改项目基本配置信息

    修改数据库表 - 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
    
    # 微信小程序配置
    wx_server_app_id
    wx_server_app_secret
    
    # 邮箱配置
    email_access
    email_password
    email_server
    email_port
  8. 启动

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

PC端

  1. 安装依赖
cd kinit-admin

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

定时任务

  1. 安装依赖

    # 安装依赖库
    pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
    
    # 第三方源:
    1. 阿里源: https://mirrors.aliyun.com/pypi/simple/
  2. 修改项目数据库配置信息

    application/config 目录中

    • development.py:开发环境

    • production.py:生产环境

    # MongoDB 数据库配置
    # 与接口是同一个数据库
    MONGO_DB_NAME = "数据库名称"
    MONGO_DB_URL = f"mongodb://用户名:密码@地址:端口/?authSource={MONGO_DB_NAME}"
    
    
    # Redis 数据库配置
    # 与接口是同一个数据库
    REDIS_DB_URL = "redis://:密码@地址:端口/数据库名称"
  3. 启动

    python3 main.py

访问项目

Docker Compose 生产环境部署

准备工作

  1. 获取代码

    git clone https://gitee.com/ktianc/kinit.git
  2. 修改项目环境配置:

    1. 修改 API 端:

      文件路径为:kinit-api/application/settings.py

      # 安全警告: 不要在生产中打开调试运行!
      DEBUG = False # 生产环境应该改为 False
    2. 修改定时任务端:

      文件路径为:kinit-task/application/settings.py

      # 安全警告: 不要在生产中打开调试运行!
      DEBUG = False # 生产环境应该改为 False
  3. 如果已有 Mysql 或者 Redis 或者 MongoDB 数据库,请修改如下内容,如果没有则不需要修改:

    1. 修改 API 端配置文件:

      文件路径为:kinit-api/application/config/production.py

      # Mysql 数据库配置项
      # 连接引擎官方文档:https://www.osgeo.cn/sqlalchemy/core/engines.html
      # 数据库链接配置说明:mysql+asyncmy://数据库用户名:数据库密码@数据库地址:数据库端口/数据库名称
      SQLALCHEMY_DATABASE_URL = "mysql+asyncmy://root:123456@177.8.0.7:3306/kinit"
      
      # Redis 数据库配置
      # 格式:"redis://:密码@地址:端口/数据库名称"
      REDIS_DB_ENABLE = True
      REDIS_DB_URL = "redis://:123456@177.8.0.5:6379/1"
      
      # MongoDB 数据库配置
      # 格式:mongodb://用户名:密码@地址:端口/?authSource=数据库名称
      MONGO_DB_ENABLE = True
      MONGO_DB_NAME = "kinit"
      MONGO_DB_URL = f"mongodb://kinit:123456@177.8.0.6:27017/?authSource={MONGO_DB_NAME}"
    2. 修改定时任务配置文件

      文件路径为:kinit-task/application/config/production.py

      # Redis 数据库配置
      # 与接口是同一个数据库
      # 格式:"redis://:密码@地址:端口/数据库名称"
      REDIS_DB_ENABLE = True
      REDIS_DB_URL = "redis://:123456@177.8.0.5:6379/1"
      
      # MongoDB 数据库配置
      # 与接口是同一个数据库
      # 格式:mongodb://用户名:密码@地址:端口/?authSource=数据库名称
      MONGO_DB_ENABLE = True
      MONGO_DB_NAME = "kinit"
      MONGO_DB_URL = f"mongodb://kinit:123456@177.8.0.6:27017/?authSource={MONGO_DB_NAME}"
    3. 将已有的数据库在 docker-compose.yml 文件中注释

  4. 配置阿里云 OSS 与 IP 解析接口地址(可选)

    文件路径:kinit-api/application/config/production.py

    # 阿里云对象存储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 = False
    IP_PARSE_TOKEN = "IP_PARSE_TOKEN"
  5. 前端项目打包:

    cd kinit-admin
    
    # 安装依赖包
    pnpm install
    
    # 打包
    pnpm run build:pro

启动并初始化项目

# 启动并创建所有容器
docker-compose up -d

# 初始化数据
docker-compose exec kinit-api python3 main.py init

# 重启所有容器
docker-compose restart


# 其他命令:

# 停止所有容器
docker-compose down

# 查看所有容器状态
docker-compose ps -a

访问项目

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

如何贡献

你可以提一个 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

浏览器支持

本地开发推荐使用 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

1688392266702

image-20221010214526082

image-20221010214526082

image-20221010214526082

image-20221010214526082

image-20221010214526082

image-20221010214526082

另一种布局演示图

图1

image-20221010214526082

图2

image-20221010214526082

图3

image-20221010214526082

图4

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.

简介

FastAPI + vue3 前后端分离后台管理系统,包含PC端,微信小程序端。PC 端使用:Vue3+Typescript+Vite+Element Plus,小程序使用:Uni-APP + uview ui,接口使用:FastAPI+Pydantic+SQLAlchemy 2.0+Mysql。异步存储,RBAC 权限管理,定时任务,部门管理等功能。 展开 收起
Python
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

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

搜索帮助