Contoso Real Estate 项目介绍
Contoso Real Estate 项目是一个企业级的智能参考架构,它运用了JavaScript语言,集成了OpenAI和多个Azure服务。这一项目提供了一种现代化且组合式的前端结构,共同构建并部署到Azure云平台中。对于那些想要构建现代JavaScript应用程序的开发者来说,这项目提供了最佳实践、架构模式及丰富的功能组件。
项目支持的应用场景
Contoso Real Estate 项目包括以下应用示例场景:
- AI 聊天机器人集成(RAG 模式)
- 与 Stripe 的支付集成
- 实时通知功能
- 门户应用程序:包含房产列表、收藏夹、用户身份验证和个人资料功能
- 无头CMS和博客
系统架构
该项目提供了一个完整的企业级 JavaScript 参考架构,涉及前端、后端、开发运维和开发者工具组件的使用。
前端组件
- Angular:用于查看和预订房源的门户应用。
- Next.js:用于查看和创建博客文章的博客应用。
- Playwright:用于门户应用的端到端测试。
- Azure Static Web Apps:用于托管门户应用。
后端组件
- Strapi:用于管理门户和博客应用数据的CMS。
- Stripe:用于支付处理服务。
- Fastify:用作Stripe API和门户应用接口的API。
- Azure Functions:用于与门户应用通信的API。
- Azure Cosmos DB的MongoDB:用于存储门户应用的数据。
- Azure PostgreSQL数据库:用于存储CMS应用的数据。
- Azure Storage:用于存储CMS和博客应用的数据。
- Azure Container Apps:用于托管博客、Stripe和Strapi API。
- Azure Application Insights:用于应用程序和API的日志访问及性能监测。
开发环境
该项目优化用于GitHub Codespaces,这是一个托管在GitHub云上的开发环境。以下是开始使用的步骤:
- 复制该项目仓库。
- 从你复制的版本创建一个新的GitHub Codespaces。这将自动生成一个包含所有必备依赖项的环境。
- 打开终端运行
npm install && npm start
,启动开发服务器。
AI 聊天机器人集成
Contoso Real Estate应用程序可以与一个使用 Azure OpenAI 构建的AI支持聊天机器人集成,以提供智能帮助和支持。
使用成本
GitHub Codespaces的使用是需要付费的,每日配额和使用限制会根据个人或者组织账户的类型而有所不同。
项目结构
项目使用npm
工作区,其结构如下:
packages/
:包含所有的软件包api
:包含无服务器的Azure Functions API。portal
:包含Angular网络门户。blog
:包含Next.js博客。blog-cms
:包含Strapi CMS。docs
:包含开发者指南网站内容。stripe
:包含Stripe webhook。testing
:包含Playwright测试。
部署到Azure
本项目使用Azure Developer CLI (azd
)来配置基础设施、打包和部署应用程序到Azure。按照以下步骤开始部署:
- 登录到azd,首次使用每台设备需要进行一次。
- 运行
azd provision
进行基础设施配置。 - 运行
azd deploy
进行应用部署。
CI/CD 配置
可以通过运行以下命令来配置CI/CD流水线:
azd pipeline config --auth-type client-credentials
清理资源
完成之后,可以通过以下命令删除用此模板创建的所有Azure资源:
azd down
开发者指南
项目提供了一个独立的开发者指南(Developer Guide),可以在packages/docs
路径下找到,并实现为一个互动网站。更多信息请查看这里。