UniFocus 是一个专为大学生设计的智能机会发现与管理平台,帮助学生:
- 🔍 自动发现机会:从官网、公众号等多渠道自动采集竞赛、实习、奖学金等信息
- 🎯 智能匹配推荐:基于用户画像的个性化评分与推荐
- 📊 可视化管理:日历视图、DDL提醒、标签宇宙等多维度展示
- 🏆 竞赛级别认定:自动识别国家级A类/B类、省级、校级竞赛
- 💡 能力缺口诊断:对比简历与机会要求,提供成长建议
后端服务 (Go)
- 框架: Gin
- 数据库: PostgreSQL 15+
- 缓存: Redis 7+
- 爬虫: Colly + Playwright
- 任务队列: Asynq
NLP/AI 服务 (Python)
- 框架: FastAPI
- NLP: SpaCy, Sentence-Transformers
- OCR: PaddleOCR, Tesseract
- 向量化: Sentence-BERT
前端 (待开发)
- 浏览器插件: React + TypeScript + Vite
- Web后台: Next.js 14
基础设施
- 容器化: Docker + Docker Compose
- CI/CD: GitHub Actions
- 监控: Prometheus + Grafana (计划中)
┌─────────────────────────────────────────────────────────────┐
│ 客户端层 │
│ 浏览器插件 (React) │ Web管理后台 (Next.js) │
└────────────────────────┬────────────────────────────────────┘
│ REST API
┌────────────────────────┼────────────────────────────────────┐
│ 后端服务层 │
│ API服务(Go) │ 爬虫服务(Go) │ NLP服务(Python) │
└────────────────────────┼────────────────────────────────────┘
│
┌────────────────────────┼────────────────────────────────────┐
│ 数据层 │
│ PostgreSQL │ Redis │ Elasticsearch (可选) │
└─────────────────────────────────────────────────────────────┘
- Docker 20.10+(或 Docker Desktop)
- Docker Compose 2.0+
- Go 1.21+ (本地开发)
- Python 3.11+ (本地开发)
- Node.js 18+ (前端开发)
macOS:
brew install --cask docker
# 或下载: https://www.docker.com/products/docker-desktopUbuntu/Debian:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USERWindows: 下载并安装 Docker Desktop for Windows
# 1. 克隆项目
git clone https://github.com/yourusername/unifocus.git
cd unifocus
# 2. 启动所有服务
docker-compose up -d
# 3. 查看服务状态
docker-compose ps
# 4. 查看日志
docker-compose logs -f api| 服务 | 地址 | 说明 |
|---|---|---|
| API 服务 | http://localhost:8080 | Go 后端 API |
| NLP 服务 | http://localhost:8000 | Python NLP 服务 |
| PostgreSQL | localhost:5432 | 数据库 (用户: unifocus, 密码: unifocus_dev_password) |
| Redis | localhost:6379 | 缓存 |
| pgAdmin | http://localhost:5050 | 数据库管理工具 (admin@unifocus.com / admin) |
# API 服务
curl http://localhost:8080/health
# NLP 服务
curl http://localhost:8000/healthunifocus/
├── backend/ # Go 后端服务
│ ├── cmd/ # 应用入口
│ ├── internal/ # 内部代码
│ │ ├── api/ # API 层
│ │ ├── domain/ # 领域模型
│ │ ├── repository/ # 数据访问层
│ │ ├── service/ # 业务逻辑层
│ │ └── crawler/ # 爬虫模块
│ ├── pkg/ # 可复用包
│ ├── migrations/ # 数据库迁移
│ └── configs/ # 配置文件
│
├── nlp-service/ # Python NLP 服务
│ ├── app/
│ │ ├── api/ # API 路由
│ │ ├── services/ # NLP 服务
│ │ └── models/ # 数据模型
│ └── requirements.txt
│
├── extension/ # 浏览器插件 (待开发)
├── web/ # Web 管理后台 (待开发)
├── infrastructure/ # 基础设施配置
├── docs/ # 项目文档
└── docker-compose.yml # Docker 编排配置
cd backend
# 安装依赖
go mod download
# 运行 API 服务
go run cmd/api/main.go
# 运行测试
go test ./...
# 构建
go build -o bin/api cmd/api/main.gocd nlp-service
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
# 运行服务
uvicorn app.main:app --reload --port 8000# 手动执行迁移 (连接到 PostgreSQL)
psql -h localhost -U unifocus -d unifocus_dev < backend/migrations/001_init_schema.up.sql
# 或使用 Docker
docker exec -i unifocus_postgres psql -U unifocus -d unifocus_dev < backend/migrations/001_init_schema.up.sql- 项目结构搭建
- 数据库 Schema 设计
- Docker 开发环境配置
- 后端基础框架 (Go)
- NLP 服务基础框架 (Python)
- 用户认证系统 (JWT)
- 机会数据采集 (爬虫引擎)
- NLP 文本提取与实体识别
- 基础 API 开发
- 浏览器插件开发
- 机会可达性评分系统
- 端侧协同采集 (公众号/小红书)
- 日历视图与 DDL 管理
- 标签宇宙可视化
- 竞赛级别自动识别
欢迎贡献代码!请遵循以下步骤:
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
本项目采用 MIT 许可证 - 详见 LICENSE 文件
- 项目负责人: [Your Name]
- 后端开发: [Backend Team]
- 前端开发: [Frontend Team]
- AI/NLP: [AI Team]
- 项目主页: GitHub
- 问题反馈: Issues
- 邮箱: unifocus@example.com
Built with ❤️ by UniFocus Team
⭐ 如果这个项目对你有帮助,请给我们一个 Star!