Skip to content

lza6/NooMiNav-optimization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 NooMiNav - 云端服务导航门户

License Cloudflare Workers JavaScript

✨ 基于 Cloudflare 生态的极简、高颜值云端服务导航门户

📖 项目简介

NooMiNav 是一个基于 Cloudflare 生态构建的极简、高颜值云端服务导航门户。它采用 数据与代码解耦 的设计哲学:你的推广链接、敏感配置全部托管于 Cloudflare 环境变量,GitHub 仓库仅保留纯净的展示逻辑。这不仅保护了你的隐私,更让后续维护变得无比轻松。

💡 核心理念

🌟 "技术应该让生活更美好,而不是更复杂" —— 我们致力于打造一个既美观又实用的导航系统,让每个人都能轻松管理自己的云端资源。


✨ 核心特性

  • 🎨 高级视觉体验:原生支持毛玻璃(Glassmorphism)特效,UI 精致,支持自定义背景。
  • 🔒 隐私安全:GitHub 仓库不包含任何链接数据,所有配置通过环境变量注入。
  • 🛡️ 高可用设计:支持为每个核心服务配置 备用链接 (backup_url),主线挂了自动切备用。
  • 📊 全能数据看板:内置 D1 数据库集成,精准记录 PV、点击时间与来源,新增日度统计、IP追踪等功能。
  • 📱 响应式布局:完美适配移动端、平板与桌面端,全新优化的移动端体验。
  • 双模部署:同时支持 Cloudflare Pages (推荐) 与 Cloudflare Workers。
  • 🌙 主题切换:支持亮色/暗色模式自动切换,记住用户偏好。
  • 🔍 智能搜索:内置实时搜索功能,快速定位所需资源。
  • 🚀 性能优化:动画效果、骨架屏加载、渐进式呈现等性能优化。
  • 🔄 本地开发:提供完整的本地测试环境,方便开发调试。

🏗️ 技术架构

前端技术栈

  • HTML5:现代网页标准结构
  • CSS3:毛玻璃效果、响应式布局、动画效果
  • JavaScript:客户端交互、主题切换、搜索功能
  • 渐进增强:确保基础功能在各种环境下正常工作

后端技术栈

  • Cloudflare Workers/Pages:无服务器计算平台
  • Cloudflare D1:SQL 数据库服务
  • JavaScript (Node.js):服务端逻辑处理
  • 环境变量:配置管理,保证代码与数据分离

数据库设计

-- 日志表 (用于后台详情列表)
CREATE TABLE logs (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    link_id TEXT,
    click_time TEXT,
    month_key TEXT,
    ip_address TEXT DEFAULT 'unknown',
    user_agent TEXT DEFAULT 'unknown'
);

-- 统计表 (用于看板总览)
CREATE TABLE stats (
    id TEXT PRIMARY KEY,
    name TEXT,
    type TEXT,
    total_clicks INTEGER DEFAULT 0,
    year_clicks INTEGER DEFAULT 0,
    month_clicks INTEGER DEFAULT 0,
    day_clicks INTEGER DEFAULT 0,
    last_year TEXT,
    last_month TEXT,
    last_day TEXT,
    last_time TEXT
);

🚀 快速开始

方案 A:Cloudflare Pages (推荐) 🌐

此方案集成了 Git 版本管理,更新维护更方便。

1️⃣ Fork 仓库

点击右上角的 "Fork" 按钮,将仓库复制到你的 GitHub 账户。

2️⃣ 创建 Pages 项目

  1. 进入 Cloudflare Dashboard -> Pages -> Create a project -> Connect to Git
  2. 选择你 Fork 的仓库,点击 Begin setup

3️⃣ 配置构建设置

  • 构建设置:保持默认 (无需构建命令)
  • 环境变量:在设置向导中添加以下变量

4️⃣ 环境变量配置

变量名 必填 说明 示例值
admin 后台管理密码 (访问 /admin 用) mypassword123
LINKS 主导航链接配置 (JSON 字符串) 见下方模板
FRIENDS 友链配置 (JSON 字符串) 见下方模板
TITLE 网站标题 我的云端导航
SUBTITLE 网站副标题 随时畅联 · 优质资源
img 自定义背景图 URL https://example.com/bg.jpg

5️⃣ 配置 D1 数据库

  1. 项目创建完成后,进入项目 Settings -> Functions -> D1 Database Bindings
  2. 添加变量名 db 并绑定你的数据库
  3. 前往 Deployments 选项卡,手动点击 Create deployment (Retry) 重新部署一次以使数据库生效

方案 B:Cloudflare Workers 🛠️

适合单文件快速部署。

1️⃣ 创建 Worker

  1. 复制仓库根目录下的 worker.js (或者 functions/[[path]].js) 的全部代码
  2. 创建新的 Cloudflare Worker
  3. 点击 Edit Code,粘贴代码并保存

2️⃣ 配置变量

  1. 进入 Settings -> Variables
    • 添加文本变量 (LINKS, admin 等)
    • 添加 D1 Database Binding,变量名为 db

⚙️ 环境变量配置详解

📝 JSON 配置模板

LINKS (主导航)

注意id 必须唯一,且尽量使用英文或数字。

[
  {
    "id": "123",
    "name": "示例网站",
    "emoji": "🏔️",
    "note": "这是一个示例",
    "url": "https://主线路地址...",
    "backup_url": "https://备用线路地址..."
  },
  {
    "id": "www",
    "name": "另一个网站",
    "emoji": "🐶",
    "note": "性价比之选",
    "url": "https://线路地址..."
  }
]

FRIENDS (底部友链)

注意:新版逻辑需要 id 字段来记录点击统计。

[
  {
    "id": "google",
    "name": "Google",
    "url": "https://www.google.com"
  },
  {
    "id": "blog",
    "name": "我的博客",
    "url": "https://blog.example.com"
  }
]

🛠️ 本地开发与测试

项目包含一个完整的本地测试环境,位于 本地测试专用 文件夹中,提供了完整的 Cloudflare 功能模拟:

  • ✅ 完整模拟 Cloudflare Workers 功能
  • ✅ 模拟 D1 数据库操作
  • ✅ 支持数据持久化
  • ✅ 完整的认证和授权机制
  • ✅ 主页预览、搜索功能、主题切换等完整功能

📋 使用方法

  1. 进入目录

    cd 本地测试专用
  2. 安装依赖 (首次运行)

    # Windows
    install_dependencies.bat
    
    # 或手动安装
    npm install express
  3. 启动服务器

    # Windows
    start_local_test.bat
    
    # 或手动启动
    node local_server_full_cf_simulation.js
  4. 访问应用

    • 访问 http://localhost:8787 查看应用
    • 访问 http://localhost:8787/admin 管理后台
    • 默认密码: test123

⚠️ 注意事项:

  • 本地测试服务器仅用于开发和测试
  • 完整的生产功能需部署到 Cloudflare
  • 本地服务器模拟了大部分功能,但与生产环境仍有差异

📊 数据看板与管理

🎯 访问路径

  • 访问主页https://你的域名.pages.dev
  • 访问后台https://你的域名.pages.dev/admin
  • 输入在环境变量中设置的 admin 密码

📈 功能特色

  • 实时 PV/UV 统计:精确记录访问量
  • 点击热力图:直观显示热门资源
  • 详细访问日志:按月查看历史记录
  • 今日统计:显示当天点击情况
  • 顶部统计面板:综合数据概览
  • 月份选择器:灵活切换查看时间

🎨 用户体验亮点

🌙 主题切换

点击右上角的月亮/太阳图标可在亮色/暗色模式间切换,并会记住您的偏好设置。

🔍 智能搜索

在主页顶部的搜索框中输入关键词,可以快速筛选导航项目。

⚡ 性能优化

  • 骨架屏加载:提供流畅的加载体验
  • 动画效果:平滑的过渡动画
  • 渐进式呈现:内容逐步展现
  • 响应式设计:完美适配各类设备

👥 适用场景

🏢 企业内部导航

  • 集成多个内部系统,便于员工快速访问
  • 统一入口,提高工作效率
  • 数据统计,了解系统使用情况

🌐 个人资源聚合

  • 整合常用网站和工具
  • 个性化定制,满足个人需求
  • 云端部署,随时随地访问

🤝 社区资源分享

  • 提供精选资源导航
  • 友链功能,促进社区交流
  • 访问统计,了解用户喜好

📚 教育机构资源

  • 集成学习资源和工具
  • 学生快速找到所需资源
  • 管理员监控资源使用情况

📈 优势与局限

✅ 优势

  • 隐私安全:数据与代码分离,避免泄露风险
  • 易维护:通过环境变量配置,无需修改代码
  • 高性能:基于 Cloudflare 全球网络,访问速度快
  • 成本低:利用免费层级,几乎零成本部署
  • 易扩展:模块化设计,便于功能扩展

❌ 局限

  • 依赖平台:需要 Cloudflare 账户和 D1 数据库
  • 功能限制:受无服务器平台限制,复杂功能实现困难
  • 数据量限制:D1 数据库有存储和查询限制
  • 定制性:部分高级功能需要付费服务支持

🚀 发展路线图

🎯 V2.0 计划 (近期)

  • 高级数据分析:更丰富的图表和报表功能
  • 用户权限管理:支持多管理员和权限分级
  • 导入导出功能:批量管理导航项目
  • API 接口:支持第三方应用集成
  • 缓存优化:提升访问速度和用户体验

🌟 V3.0 计划 (中期)

  • 移动端 App:原生移动应用开发
  • 插件系统:支持第三方功能扩展
  • 国际化:多语言支持
  • 社交功能:用户评论和评分系统
  • 自动化部署:一键部署脚本

🌈 V4.0 计划 (远期)

  • AI 推荐:智能推荐相关资源
  • 个人化定制:用户自定义界面和功能
  • 区块链集成:去中心化数据存储
  • 边缘计算:更高效的分布式处理

🛠️ 技术实现详解

📊 数据统计原理

系统采用双重数据结构进行统计:

  • 日志表:记录每次访问的详细信息
  • 统计表:汇总数据,支持快速查询

统计过程分为三个维度:

  1. 总计:累计所有点击
  2. 年度:按年统计,跨年重置
  3. 月度:按月统计,跨月重置
  4. 日度:按天统计,跨天重置

🔐 安全机制

  • 密码保护:后台访问需要密码验证
  • Cookie 管理:安全的会话管理
  • 输入验证:防止恶意输入和注入攻击
  • 访问控制:限制敏感操作权限

🌐 部署架构

  • 前端:静态资源由 Cloudflare CDN 分发
  • 后端:Worker 运行在边缘节点,就近处理请求
  • 数据库:D1 提供 SQL 数据库服务
  • 缓存:利用 Cloudflare 全局缓存提升性能

📁 项目结构

├── functions/                    # Cloudflare Pages 核心逻辑
│   └── [[path]].js              # 路由、渲染、API 核心代码
├── 本地测试专用/                 # 本地开发测试环境
│   ├── data/                    # 本地数据库文件
│   ├── local_server_full_cf_simulation.js  # 完整 CF 功能模拟
│   ├── package.json             # Node.js 依赖配置
│   ├── install_dependencies.bat # 依赖安装脚本
│   ├── start_local_test.bat     # 启动测试脚本
│   ├── 使用说明.md              # 本地测试说明
│   └── 本地测试的效果(截图)/   # 测试效果截图
├── index.html                   # 静态入口占位符
├── README.md                    # 项目文档
├── project_specs.md             # 项目规格文档
├── db_structure.md              # 数据库结构文档
├── test_cases.md                # 测试用例文档
└── LICENSE                      # Apache 2.0 开源协议

🔧 待完善功能

🚧 当前不足

  • 实时监控:缺少实时数据推送功能
  • 高级分析:缺少用户行为分析和趋势预测
  • 多管理员:目前只支持单一管理员
  • 权限控制:缺乏细粒度权限管理
  • 通知系统:缺少异常通知和提醒功能

🛠️ 改进方向

  • 性能优化:减少数据库查询次数,优化响应时间
  • 用户体验:增加更多交互反馈和引导提示
  • 错误处理:完善错误捕获和恢复机制
  • 文档完善:补充更多使用案例和技术说明
  • 测试覆盖:增加单元测试和集成测试

🤝 贡献指南

我们欢迎任何形式的贡献! 🌟

📝 如何参与

  1. Fork 仓库
  2. 创建功能分支
  3. 提交更改
  4. 发起 Pull Request

🎯 贡献方向

  • 功能开发:实现新功能或改进现有功能
  • 文档完善:补充使用说明和最佳实践
  • 问题修复:解决 bug 和性能问题
  • 测试优化:增加测试用例和覆盖率
  • 用户体验:改善界面和交互体验

📞 支持与反馈

遇到问题?需要帮助?随时联系我们! 📧

  • Issue:提交问题或建议
  • Pull Request:贡献代码改进
  • 邮件:[您的邮箱地址]

📜 开源协议

本项目基于 Apache 2.0 License 开源。

📋 协议要点

  • 允许商业使用、分发、修改
  • 需要保留原始版权和许可证声明
  • 不提供任何担保,作者不承担任何责任

🌟 结语

感谢您选择 NooMiNav!🎉

🌈 "每一个伟大的项目都始于一个勇敢的第一步。希望 NooMiNav 能成为您数字生活的得力助手,让技术真正服务于生活。"

无论您是技术新手还是资深开发者,我们都希望这个项目能够为您提供价值。如果您喜欢这个项目,请给我们一个 ⭐ Star,让更多人看到它!

让我们一起打造更好的开源生态!🚀


About

Cloudflare Workers/Pages 部署、D1 数据库统计、环境变量配置、毛玻璃特效 UI、主题切换功能、智能搜索过滤、数据与代码解耦、响应式设计、本地测试模拟环境、双线备份链接、实时数据看板、密码保护后台、日志记录系统

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors