旅行行程管理系统

一个基于FastAPI和SQLAlchemy的后端系统,提供创建、查看旅行行程及根据旅行时长推荐行程的RESTful API。

  • by ThasnimaShereef
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 thasnimashereef/travel-itinerary

使用说明

🌴 旅游行程-FastAPI项目

这是一个用于管理旅行行程的后端系统,使用 快速 API 和 SQL炼金术,具有用于创建和查看行程的RESTful API,以及用于根据行程持续时间推荐行程的MCP服务器。


🚀 现场演示

🌐 实时网址: https://travel-itinerary-fdwd.onrender.com/docs


🧰 技术栈

  • Python 3.11+
  • 快速 API
  • SQL炼金术
  • 数据库 (用于开发;可切换到PostgreSQL)
  • 乌维科恩
  • 渲染 (用于部署)
  • 派丹蒂克 (用于输入验证)

📦 特性

  • 创建包含全天细分的新行程
  • 查看所有已存储的行程
  • MCP(最低成本路径)服务器,用于根据夜晚推荐行程
  • 预种子数据 普吉 和 甲米,泰国
  • 用于测试端点的交互式Swagger UI

📁 文件夹结构

travel-itinerary-backend/
│
├── app/                        # Main application package
│   ├── __init__.py            # Makes the app a Python package
│   ├── main.py                # Entry point of FastAPI app
│   ├── models.py              # SQLAlchemy models
│   ├── database.py            # DB connection setup
│   ├── schemas.py             # Pydantic schemas for validation
│   ├── seed_data.py           # Predefined itinerary data
│   └── routes/                # API route definitions
│       ├── itineraries.py       # CRUD routes for itineraries
│       
├── requirements.txt           # Project dependencies
├── README.md                  # Project documentation
├── .gitignore                 # Files to ignore in Git
└── start.sh                   # (Optional) Start script for deployment

⚙️ 特性

  • ✅ 使用酒店、接送和游览数据创建旅行行程
  • ✅ 获取2至8晚的推荐行程
  • ✅ 使用FastAPI、SQLAlchemy和SQLite的模块化代码
  • ✅ 自动生成Swagger和ReDoc API文档
  • ✅ 使用实时部署 渲染

🚀 入门指南

📦 1.克隆存储库

git clone https://github.com/ThasnimaShereef/Travel-Itinerary.git
cd Travel-Itinerary

🧪 2.创建虚拟环境

python -m venv venv
# For Windows:
venv\Scripts\activate
# For macOS/Linux:
source venv/bin/activate

📥 3.安装依赖项

pip install -r requirements.txt

▶️ 4.运行开发服务器

uvicorn app.main:app --reload

现在访问: http://127.0.0.1:8000/docs Swagger用户界面。


🧪 API终点

方法 端点 描述
职位 /itineraries/ 创建新行程
得到 /itineraries/ 获取所有行程
得到 /itineraries/{id} 按id获取行程
得到 /recommendations/{duration} 按持续时间获取推荐行程

📸 截图

📘 Swagger用户界面

🔍 GET/itenaries的行程JSON响应-所有行程

🔍 GET/itenaries/{id}的行程JSON响应-基于id的行程

🔍 POST/itenararies的行程JSON响应-创建新的itenararie

🔍 GET/推荐行程JSON响应{duration}-根据持续时间推荐会员


🌍 渲染部署

🔁 1.推送到GitHub

git init
git remote add origin https://github.com/ThasnimaShereef/Travel-Itinerary.git
git add .
git commit -m "Initial backend commit"
git push -u origin main --force

🚀 2.通过渲染进行部署

  • 首选 https://render.com
  • 创建一个 新建Web服务
  • 连接您的 GitHub仓库
  • 设置 生成命令 致:
    pip install -r requirements.txt
    
  • 设置 启动命令 致:
    uvicorn app.main:app --host 0.0.0.0 --port 10000
    
  • 集 端口 向 10000
  • ✅ 部署并等待实时链接!