# short_url **Repository Path**: fanhao0416/short_url ## Basic Information - **Project Name**: short_url - **Description**: 这个项目是一个 URL 短链生成器,允许用户将长链接转换为短链接,并提供访问统计功能。 项目使用 FastAPI 作为后端框架,Vue.js 作为前端框架,使用 Docker 进行容器化部署。 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-03-05 - **Last Updated**: 2025-03-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 开发环境 docker compose up --build # 生产环境 docker compose -f docker-compose.yml -f docker-compose.prod.yml up --build # How to use - 浏览器访问: http://localhost:5173/ - 注册账号 [符合邮箱格式] - 输入长链接,点击“生成短链”按钮 - 点击“访问短链”按钮,即可跳转至长链接 # URL Shortener 项目总结 ## 项目概述 这个项目是一个 URL 短链生成器,允许用户将长链接转换为短链接,并提供访问统计功能。项目使用 FastAPI 作为后端框架,Vue.js 作为前端框架,使用 Docker 进行容器化部署。 ## 技术栈 - **后端**: - FastAPI: 用于构建高性能的 API。 - SQLAlchemy: 用于数据库操作。 - aiomysql: 用于异步 MySQL 数据库连接。 - Alembic: 用于数据库迁移。 - Redis: 用于缓存短链接。 - Celery: 用于异步任务处理(如点击统计和过期链接清理)。 - **前端**: - Vue.js: 用于构建用户界面。 - Vite: 用于快速构建和开发。 - Element Plus: 用于 UI 组件库。 - **数据库**: - MySQL: 用于存储用户信息和短链接信息。 - **容器化**: - Docker: 用于构建和管理应用的容器。 ## 项目结构 ``` . ├── app/ # 后端代码 │ ├── core/ # 核心配置和工具 │ ├── db/ # 数据库模型和CRUD操作 │ ├── routes/ # API路由 │ ├── schemas/ # 数据验证和序列化 │ ├── tasks/ # Celery任务 │ ├── main.py # FastAPI应用入口 │ ├── create_tables.py # 数据库表创建脚本 │ └── migrations/ # 数据库迁移文件 ├── docker/ # Docker相关文件 │ ├── Dockerfile # 后端Dockerfile │ ├── docker-entrypoint.sh # 启动脚本 │ └── nginx/ # Nginx配置 ├── shortener-frontend/ # 前端代码 │ ├── Dockerfile # 前端Dockerfile │ ├── Dockerfile.dev # 前端开发Dockerfile │ ├── nginx.conf # Nginx配置 │ ├── src/ # Vue.js源代码 │ └── vite.config.js # Vite配置 ├── docker-compose.yml # Docker Compose配置 ├── requirements.txt # Python依赖 └── .gitignore # Git忽略文件 ``` ## 功能 1. **短链生成**: 用户可以输入长链接,生成短链接。 2. **短链访问**: 用户可以通过短链接访问原始链接。 3. **访问统计**: 系统记录每个短链接的访问次数、独立访客数、访问时间等信息。 4. **用户注册和登录**: 用户可以注册账户并登录,管理自己的短链接。 5. **过期链接清理**: 定期清理过期的短链接。 ## 部署 1. **Docker**: 使用 Docker 容器化应用,确保环境一致性。 2. **Docker Compose**: 使用 Docker Compose 管理多个服务(前端、后端、数据库、Redis)。 3. **健康检查**: 配置健康检查,确保服务可用性。 ## 未来改进 1. **用户管理**: 增加用户管理功能,允许用户查看和删除自己的短链接。 2. **API 文档**: 使用 Swagger UI 提供 API 文档。 3. **前端优化**: 改进前端界面,提升用户体验。 4. **安全性**: 增强安全性,防止恶意链接和攻击。 这个项目展示了如何使用现代技术栈构建一个完整的 Web 应用,涵盖了前后端开发、数据库管理、容器化和异步任务处理等多个方面。