README
This commit is contained in:
99
README.md
Normal file
99
README.md
Normal file
@@ -0,0 +1,99 @@
|
||||
# Novault Frontend
|
||||
|
||||
Novault 的前端应用,一个基于 **React**, **TypeScript** 和 **Vite** 构建的现代化、本地优先的个人记账与资产管理应用。
|
||||
|
||||
## ✨ 特性
|
||||
|
||||
- **现代化 UI 设计**: 采用 Premium Glassmorphism(高级玻璃拟态)设计语言,提供流畅、美观的用户体验。
|
||||
- **本地优先**: 快速响应,数据安全。
|
||||
- **资产可视化**: 包含账户关系图谱、收支报表等丰富的数据可视化功能。
|
||||
- **全功能记账**: 支持多账户、多币种、预算管理、周期性交易等。
|
||||
- **响应式布局**: 完美适配桌面端、平板和移动端设备。
|
||||
|
||||
## 🛠 技术栈
|
||||
|
||||
- **核心框架**: [React](https://react.dev/) + [TypeScript](https://www.typescriptlang.org/)
|
||||
- **构建工具**: [Vite](https://vitejs.dev/)
|
||||
- **路由**: [React Router](https://reactrouter.com/)
|
||||
- **状态/样式管理**:
|
||||
- CSS Variables & Modules (无第三方 UI 库依赖,完全自定义设计系统)
|
||||
- Custom Hooks (Theme, Device, etc.)
|
||||
- **数据可视化**: [Apache ECharts](https://echarts.apache.org/) (via `echarts-for-react`)
|
||||
- **图标**: [Iconify](https://iconify.design/) (主要使用 Solar Icons 系列)
|
||||
|
||||
## 📂 目录结构
|
||||
|
||||
```
|
||||
frontend/
|
||||
├── public/ # 静态资源 (图标, favicon)
|
||||
├── src/
|
||||
│ ├── assets/ # 编译期静态资源
|
||||
│ ├── components/ # 通用及业务组件
|
||||
│ │ ├── account/ # 账户相关组件
|
||||
│ │ ├── budget/ # 预算相关组件
|
||||
│ │ ├── common/ # 通用 UI 组件 (Layout, Navigation 等)
|
||||
│ │ ├── transaction/# 交易相关组件
|
||||
│ │ └── ...
|
||||
│ ├── config/ # 配置文件 (如类别图标映射)
|
||||
│ ├── hooks/ # 自定义 React Hooks (useTheme 等)
|
||||
│ ├── pages/ # 页面视图 (路由目标)
|
||||
│ ├── router/ # 路由配置
|
||||
│ ├── services/ # API 服务层 (处理后端通信)
|
||||
│ ├── styles/ # 全局样式系统
|
||||
│ │ ├── variables.css # 设计变量 (颜色, 字体, 间距)
|
||||
│ │ ├── components.css # 通用组件样式 (Card, Button, Input)
|
||||
│ │ ├── themes.css # 主题定义 (Light/Dark)
|
||||
│ │ └── animations.css # 动画定义
|
||||
│ ├── types/ # TypeScript 类型定义
|
||||
│ ├── utils/ # 通用工具函数 (格式化, 计算)
|
||||
│ ├── App.tsx # 根组件
|
||||
│ └── main.tsx # 入口文件
|
||||
└── vite.config.ts # Vite 配置
|
||||
```
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 预备环境
|
||||
|
||||
- Node.js (推荐 v18+)
|
||||
- npm 或 yarn/pnpm
|
||||
|
||||
### 安装依赖
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
### 启动开发服务器
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
应用将在 `http://localhost:5173` (默认端口) 启动。
|
||||
|
||||
### 构建生产版本
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
构建产物将输出到 `dist/` 目录。
|
||||
|
||||
## 🎨 设计系统
|
||||
|
||||
本项目采用自定义的 **CSS 变量系统** 进行样式管理,主要文件位于 `src/styles/`:
|
||||
|
||||
- **色彩**: 定义了语义化的颜色变量(`--color-primary`, `--color-bg`, `--glass-bg` 等),支持自动深色模式切换。
|
||||
- **玻璃拟态**: 通过 `.glass-panel`, `.glass-card` 等类名快速应用磨砂玻璃效果。
|
||||
- **响应式**: 使用移动优先的策略,通过 CSS 媒体查询适配不同屏幕。
|
||||
|
||||
## 🤝 贡献规范
|
||||
|
||||
1. **组件开发**: 新组件应尽可能复用 `styles/components.css` 中的原子类或组件类。
|
||||
2. **服务层**: 所有后端请求应封装在 `src/services/` 下的对应服务文件中。
|
||||
3. **类型安全**: 尽量避免使用 `any`,并在 `src/types/` 中定义共享类型。
|
||||
|
||||
## 📄 License
|
||||
|
||||
MIT
|
||||
Reference in New Issue
Block a user