We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
我们公司内部有非常多的页面需要管理,一直没有找到一款称心如意的软件 这款软件需要认证用户信息,可以通过注册登录或者企业微信登录或者其他方式方式进行认证 认证完成主页需要当前登录用户的用户名水印 以及简洁的主页,支持快速检索链接并且直接Enter快速访问 所以基于以上的契机就有了这款EasyNav 这里面有丝滑的流程,以及简单的操作方式。可以快速帮助公司内部进行提效
一个现代化的企业内部导航门户系统,用于集中管理和展示公司各类系统和资源的链接。
项目地址:https://github.com/starslink/EasyNav
demo地址:https://easynav.icu
用户名:admin 密码:admin123
🔐 用户认证与授权
📱 响应式设计
🎯 导航管理
🛠 管理功能
. ├── backend/ # 后端项目 │ ├── src/ │ │ ├── db/ # 数据库相关 │ │ ├── middleware/ # 中间件 │ │ ├── routes/ # 路由 │ │ └── utils/ # 工具函数 │ └── docs/ # 文档 ├── frontend/ # 前端项目 │ ├── src/ │ │ ├── components/ # React 组件 │ │ ├── hooks/ # 自定义 Hooks │ │ ├── services/ # API 服务 │ │ └── types/ # TypeScript 类型 └── k8s/ # Kubernetes 配置
# 后端 cd backend npm install # 前端 cd frontend npm install
PORT=3000 JWT_SECRET=your-secret-key SMTP_HOST=smtp.gmail.com SMTP_PORT=587 SMTP_SECURE=false SMTP_USER=[email protected] SMTP_PASS=your-app-specific-password SMTP_FROM=Company Portal <[email protected]> FRONTEND_URL=http://localhost:5173 # 数据库配置 DB_TYPE=sqlite # 或 mysql DB_NAME=database.sqlite # MySQL 配置(如果使用 MySQL) DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASSWORD=root
VITE_API_URL=http://localhost:3000/api
# 后端 cd backend npm run dev # 前端 cd frontend npm run dev
# 后端 docker build -t nav-portal-backend ./backend # 前端 docker build -t nav-portal-frontend ./frontend
version: '3' services: frontend: image: nav-portal-frontend ports: - "80:80" depends_on: - backend environment: - VITE_API_URL=http://localhost:3000/api backend: image: nav-portal-backend ports: - "3000:3000" environment: - JWT_SECRET=your-secret-key - DB_TYPE=mysql - DB_HOST=db - DB_USER=root - DB_PASSWORD=root depends_on: - db db: image: mysql:8 environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=nav_portal volumes: - mysql-data:/var/lib/mysql volumes: mysql-data:
项目包含完整的 Kubernetes 配置文件,位于 k8s/ 目录:
k8s/
frontend.yaml
backend.yaml
mysql-deployment.yaml 已经删除(需要自己安装数据库信息)
ingress.yaml(或者traefik.yaml)
使用 kubectl 部署:
kubectl apply -f k8s/
CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT UNIQUE NOT NULL, email TEXT UNIQUE NOT NULL, password TEXT, is_active BOOLEAN DEFAULT FALSE, verification_token TEXT, wework_userid TEXT UNIQUE, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, modified_at DATETIME DEFAULT CURRENT_TIMESTAMP );
CREATE TABLE groups ( id TEXT PRIMARY KEY, name TEXT NOT NULL, icon TEXT NOT NULL, sort_order INTEGER DEFAULT 100, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, modified_at DATETIME DEFAULT CURRENT_TIMESTAMP );
CREATE TABLE subgroups ( id TEXT PRIMARY KEY, name TEXT NOT NULL, group_id TEXT NOT NULL, sort_order INTEGER DEFAULT 100, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, modified_at DATETIME DEFAULT CURRENT_TIMESTAMP );
CREATE TABLE links ( id TEXT PRIMARY KEY, title TEXT NOT NULL, subtitle TEXT NOT NULL, url TEXT NOT NULL, icon TEXT NOT NULL, group_id TEXT NOT NULL, subgroup_id TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, modified_at DATETIME DEFAULT CURRENT_TIMESTAMP );
POST /api/auth/register Content-Type: application/json { "username": "string", "email": "string", "password": "string" }
POST /api/auth/login Content-Type: application/json { "username": "string", "password": "string" }
GET /api/auth/verify-email?token=string
GET /api/groups Authorization: Bearer <token>
POST /api/groups Authorization: Bearer <token> Content-Type: application/json { "id": "string", "name": "string", "icon": "string", "sort_order": number }
PUT /api/groups/:id Authorization: Bearer <token> Content-Type: application/json { "name": "string", "icon": "string", "sort_order": number }
DELETE /api/groups/:id Authorization: Bearer <token>
GET /api/links Authorization: Bearer <token>
GET /api/links/group/:groupId Authorization: Bearer <token>
POST /api/links Authorization: Bearer <token> Content-Type: application/json { "id": "string", "title": "string", "subtitle": "string", "url": "string", "icon": "string", "group_id": "string", "subgroup_id": "string" }
PUT /api/links/:id Authorization: Bearer <token> Content-Type: application/json { "title": "string", "subtitle": "string", "url": "string", "icon": "string", "group_id": "string", "subgroup_id": "string" }
DELETE /api/links/:id Authorization: Bearer <token>
木兰宽松许可证
The text was updated successfully, but these errors were encountered:
可以直接提交pr哦
Sorry, something went wrong.
No branches or pull requests
1. 项目背景
2. 项目明细
公司导航门户
一个现代化的企业内部导航门户系统,用于集中管理和展示公司各类系统和资源的链接。
项目地址:https://github.com/starslink/EasyNav
demo地址:https://easynav.icu
用户名:admin 密码:admin123
功能特点
🔐 用户认证与授权
📱 响应式设计
🎯 导航管理
🛠 管理功能
技术栈
前端
后端
部署
项目结构
快速开始
环境要求
安装依赖
环境配置
启动开发服务器
部署
Docker 部署
Kubernetes 部署
项目包含完整的 Kubernetes 配置文件,位于
k8s/
目录:frontend.yaml
backend.yaml
mysql-deployment.yaml 已经删除(需要自己安装数据库信息)
ingress.yaml(或者traefik.yaml)
使用 kubectl 部署:
数据库设计
users 表
groups 表
subgroups 表
links 表
API 文档
认证相关
注册
登录
验证邮箱
分组管理
获取所有分组
创建分组
更新分组
删除分组
链接管理
获取所有链接
获取分组链接
创建链接
更新链接
删除链接
安全性
性能优化
前端
后端
贡献指南
许可证
木兰宽松许可证
The text was updated successfully, but these errors were encountered: