Skip to content

My1tw/ExCourt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏟️ ExCourt 易场地 - 校园场地资源交换平台

ExCourt 是一个基于 FastAPI + MongoDB 的现代化场地资源交换系统,旨在解决校园内场地资源错配问题。通过智能匹配、积分激励和严格的审核机制,实现场地使用权的安全、高效流转。

✨ 核心功能

1. 场地管理 (Courts)

  • 发布场地:用户提交闲置场地,需经过管理员审核。
  • 发布需求:用户发布想要的场地时间段。
  • 审核机制:管理员后台审核场地凭证(序列号),防止虚假信息。
  • 智能搜索:支持按时间、ID 组合查询,利用 MongoDB 复合索引实现毫秒级响应。

2. 交易与交换 (Exchange)

  • 申请制交换:用户 A 申请用户 B 的场地,B 同意后系统自动转移所有权。
  • 直接交换 (Direct Exchange):基于“双向需求匹配”的一键秒换(A有B想要的,B有A想要的)。
  • 积分系统
    • 交换成功双方获赠积分。
    • 支持“积分+场地”的混合出价模式。
    • 支持纯积分转账。
  • 赠予功能:支持将场地直接赠送给好友。

3. 智慧匹配 (Smart Match)

  • 发布即匹配:发布需求时,系统自动检测并提示广场上已存在的匹配场地。
  • 审核后推送:场地审核通过后,自动通知所有寻找该场地的用户。
  • 双向完美匹配:主页自动检测并推荐“双向奔赴”的交换机会。

4. 社交与通知 (Social)

  • 好友系统:添加、删除好友,好友列表管理。
  • 即时通讯:支持用户间私信聊天。
  • 全局通知:审核结果、交易状态变更、积分变动等系统消息实时推送。

🛠️ 技术架构

  • 后端:Python 3.11 + FastAPI
  • 数据库:MongoDB (Motor 异步驱动)
  • 容器化:Docker
  • 前端:原生 HTML/JS/CSS (无框架,轻量级)

🚀 快速开始

1. 环境配置

建议使用 Conda 管理环境:

conda create --name excourt python=3.11
conda activate excourt
pip install -r requirements.txt

2. 启动数据库

确保 Docker 已安装并运行,然后执行:

# 拉取 mongo 最新的镜像(若已拉取则不用执行)
docker pull mongo:latest
# 运行容器,启动数据库 
docker run -d -p 27017:27017 --name mongodb mongo:latest

3. 运行后端

# 必须在项目根目录下运行
python backend/main.py

API 文档地址: http://127.0.0.1:8000/docs

4. 访问前端

项目运行在http://127.0.0.1:8000/

目录结构

backend/
├── model/          # Pydantic 数据模型 (Schema)
├── routers/        # API 路由处理逻辑
├── database.py     # 数据库连接与索引初始化
├── main.py         # 程序入口
└── ...
frontend/
├── pages/          # HTML 页面
├── assets/         # 静态资源 (CSS/JS)
└── ...

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors