Skip to content

Commit ea2d286

Browse files
authored
docs: enhance README with project details and usage guide
1 parent 4196d5d commit ea2d286

1 file changed

Lines changed: 200 additions & 6 deletions

File tree

README.md

Lines changed: 200 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,206 @@
1+
<div align="center">
2+
13
# PaddleScoreApp
24

3-
The Paddle Score App is designed for paddleboarding events, featuring group categorization, score import and ranking, points calculation, and scheduling. With its user-friendly interface and efficient data processing, it aids organizers in managing event processes effortlessly, enhancing overall event management efficiency.
5+
**面向桨板赛事组织者的 Flutter 计分与编排工具**
6+
7+
从报名表校验、分组晋级、成绩导入,到最终积分导出,把一场比赛的录入流程放进同一套桌面工作流里。
8+
9+
<p>
10+
<img src="https://img.shields.io/badge/Flutter-App-02569B?logo=flutter&logoColor=white" alt="Flutter" />
11+
<img src="https://img.shields.io/badge/Dart-%3E%3D3.6-0175C2?logo=dart&logoColor=white" alt="Dart" />
12+
<img src="https://img.shields.io/badge/Platform-Desktop%20First-0A7E51" alt="Platform" />
13+
<img src="https://img.shields.io/badge/License-GPLv3-blue.svg" alt="License" />
14+
<img src="https://img.shields.io/badge/Status-Under%20Development-F29D38" alt="Status" />
15+
</p>
16+
17+
<p>
18+
<a href="#overview">项目简介</a> ·
19+
<a href="#features">核心功能</a> ·
20+
<a href="#workflow">流程概览</a> ·
21+
<a href="#quick-start">快速开始</a> ·
22+
<a href="#screenshots">界面预览</a> ·
23+
<a href="#structure">目录结构</a>
24+
</p>
25+
26+
</div>
27+
28+
> [!WARNING]
29+
> 当前仓库仍处于持续开发阶段。部分规划中的功能还没有全部落地。并且,未经过完备的测试,建议使用前先进行验证。
30+
31+
<a id="overview"></a>
32+
33+
## 项目简介
34+
35+
`PaddleScoreApp` 是一个面向桨板赛事的本地化计分工具,使用 Flutter 构建,围绕 `Excel + SQLite` 的赛事流程工作。
36+
37+
它的目标不是做一个通用表单系统,而是直接服务比赛组织场景:
38+
39+
- 创建赛事并生成本地数据库
40+
- 下载并填写报名模板
41+
- 校验报名表字段合法性
42+
- 按项目与人数自动拆分赛程
43+
- 导入各轮成绩并推进晋级
44+
- 按组别或代表队导出最终积分表
45+
46+
当前项目已围绕以下项目建立主要流程:
47+
48+
- 长距离赛
49+
- 趴板划水赛(仅青少年)
50+
- 竞速赛
51+
- 技术赛
52+
53+
<a id="features"></a>
54+
55+
## 核心功能
56+
57+
| 模块 | 说明 |
58+
| --- | --- |
59+
| 赛事创建向导 | 支持下载报名模板、上传报名表、检查数据、配置每组人数并创建赛事数据库 |
60+
| 报名表校验 | 检查编号是否重复、是否为纯数字、组别命名是否合法、姓名与队伍是否为空 |
61+
| 长距离赛处理 | 生成长距离成绩登记表,导入成绩后写入积分,并作为后续项目的前置进度 |
62+
| 短距离项目流程 | 按组别和赛程生成分组表,支持趴板、竞速、技术赛各轮次成绩导入 |
63+
| 积分导出 | 支持按组别或按代表队导出最终成绩表,并可选择是否计算青年组趴板分数 |
64+
| 本地赛事归档 | 每场赛事使用独立 SQLite 数据库存储,方便持续录入与后续追踪 |
65+
66+
<a id="workflow"></a>
67+
68+
## 流程概览
69+
70+
```mermaid
71+
flowchart LR
72+
A["创建赛事"] --> B["下载报名模板"]
73+
B --> C["填写并上传报名表"]
74+
C --> D["校验组别 / 编号 / 姓名 / 队伍"]
75+
D --> E["配置各项目每组人数"]
76+
E --> F["创建本地 SQLite 赛事库"]
77+
F --> G["生成并导入长距离成绩"]
78+
G --> H["进入趴板 / 竞速 / 技术赛"]
79+
H --> I["按轮次生成分组表并导入成绩"]
80+
I --> J["导出最终积分表"]
81+
```
82+
83+
### 使用方式
84+
85+
1. 在首页输入赛事名称,进入创建流程。
86+
2. 下载应用提供的报名模板并填写运动员信息。
87+
3. 上传报名表,确认组别解析结果和错误检查项。
88+
4. 设置趴板、竞速、技术赛每组人数并创建赛事。
89+
5. 先处理长距离赛成绩,再进入后续短距离项目。
90+
6. 全部录入完成后导出最终积分表。
91+
92+
<a id="quick-start"></a>
93+
94+
## 快速开始
95+
96+
### 环境要求
97+
98+
- Flutter Stable
99+
- Dart SDK `>= 3.6.0`
100+
- 已启用你要运行的平台支持,推荐优先使用 Windows 桌面环境
101+
102+
### 获取项目
103+
104+
```bash
105+
git clone https://github.com/Apricityx/PaddleScoreApp.git
106+
cd PaddleScoreApp
107+
flutter pub get
108+
```
109+
110+
### 运行项目
111+
112+
```bash
113+
flutter run -d windows
114+
```
115+
116+
如果你希望运行到其他平台,可以改用对应设备,例如:
117+
118+
```bash
119+
flutter run -d linux
120+
flutter run -d macos
121+
```
122+
123+
> [!NOTE]
124+
> 仓库当前包含 `android/` 目录,但现有功能流和文件处理方式更偏向桌面端使用;README 中的运行示例因此以桌面平台为主。
125+
126+
### 构建产物
127+
128+
```bash
129+
flutter build windows
130+
flutter build apk
131+
```
132+
133+
> [!TIP]
134+
> 项目包含一个本地维护的 `excel` 依赖分支,位于 `fork/excel-4.0.6`,拉取仓库后直接执行 `flutter pub get` 即可。
135+
136+
<a id="screenshots"></a>
137+
138+
## 界面预览
139+
140+
<table>
141+
<tr>
142+
<td><img src="docs/image/1.png" alt="首页" width="100%" /></td>
143+
<td><img src="docs/image/2.png" alt="创建赛事" width="100%" /></td>
144+
</tr>
145+
<tr>
146+
<td align="center"><sub>首页与赛事入口</sub></td>
147+
<td align="center"><sub>创建赛事向导</sub></td>
148+
</tr>
149+
<tr>
150+
<td><img src="docs/image/3.png" alt="赛事详情" width="100%" /></td>
151+
<td><img src="docs/image/4.png" alt="分组与成绩流程" width="100%" /></td>
152+
</tr>
153+
<tr>
154+
<td align="center"><sub>赛事项目入口</sub></td>
155+
<td align="center"><sub>成绩录入与流程推进</sub></td>
156+
</tr>
157+
</table>
158+
159+
<a id="structure"></a>
160+
161+
## 目录结构
162+
163+
```text
164+
.
165+
|-- android/
166+
|-- docs/
167+
| |-- image/
168+
| |-- database.md
169+
| |-- pages.md
170+
| `-- race.md
171+
|-- fork/
172+
| `-- excel-4.0.6/
173+
|-- lib/
174+
| |-- assets/
175+
| |-- pageWidgets/
176+
| | |-- appEntrances/
177+
| | |-- longDistanceRace/
178+
| | |-- shortDistanceRace/
179+
| | `-- universalWidgets/
180+
| |-- utils/
181+
| |-- DataHelper.dart
182+
| `-- main.dart
183+
|-- linux/
184+
|-- macos/
185+
|-- windows/
186+
|-- pubspec.yaml
187+
`-- README.md
188+
```
189+
190+
### 主要代码区域
191+
192+
- `lib/pageWidgets/appEntrances/`: 首页、创建赛事、赛事入口、导出页、设置页
193+
- `lib/pageWidgets/longDistanceRace/`: 长距离赛成绩导入与展示
194+
- `lib/pageWidgets/shortDistanceRace/`: 趴板、竞速、技术赛流程与轮次组件
195+
- `lib/utils/`: Excel 分析生成、数据库管理、路由、设置与通用方法
196+
- `docs/`: 项目文档、截图、页面与业务说明
4197

5-
## This project is under development
198+
## 开发状态
6199

7-
## Snapshot
200+
- 已完成赛事创建、报名表校验、长距离成绩导入、项目入口与最终积分导出
201+
- 已具备短距离项目的分组生成与阶段推进基础能力
202+
- 仍在继续完善赛事列表管理、短距离分组展示、页面性能与本地进度体验
8203

9-
![image](docs/image/1.png)
10-
![image](docs/image/2.png)
11-
![image](docs/image/3.png)
204+
## License
12205

206+
This project is licensed under the GNU General Public License v3.0. See the [LICENSE](LICENSE) file for details.

0 commit comments

Comments
 (0)