立项背景和目标:随着本地餐饮行业快速发展,消费者面对海量的美食店铺信息时常常难以抉择,同时店铺经营者也缺乏有效的数据工具来了解市场动态和竞争格局。本项目旨在构建一套美食数据管理系统,帮助消费者浏览、搜索和管理感兴趣的美食店铺,通过订阅机制关注店铺动态,并借助数据可视化工具直观了解价格分布、订阅趋势等市场信息,为用户提供数据支撑的美食决策参考。
软件功能、核心功能模块的介绍:系统包含六大核心功能模块。数据总览模块提供店铺列表展示、价格排序和分页浏览功能;数据管理模块支持店铺信息的增删改查全生命周期管理;订阅中心模块实现店铺订阅与取消订阅功能,记录用户订阅行为;搜索查询模块支持按店铺名称和特色菜品进行关键字模糊检索;数据统计模块集成5种可视化图表(价格分布柱状图、价格趋势折线图、自定义价格区间统计、月度订阅分布堆叠图、阶段内各店铺月度订阅量分组图);系统设置模块提供分页配置和CSV数据导出功能。此外,系统包含完整的用户认证体系,支持注册、登录和注销操作。
业务流程、功能路径描述:用户打开系统后进入登录注册页面,完成身份认证后进入主界面。通过左侧导航栏切换六个功能页面:在数据总览页浏览店铺信息,可按价格排序和翻页,点击店铺可查看详情或新增店铺;在数据管理页对店铺进行编辑、订阅或删除操作;在订阅中心查看已订阅店铺列表,支持取消订阅;在搜索查询页输入关键字快速定位目标店铺;在数据统计页查看各类图表分析;在系统设置页调整每页显示数量或导出数据。系统后端提供RESTful API接口,前端通过AJAX异步请求与后端交互,实现无刷新的单页面应用体验。
整体架构和设计思路,不同模块使用的技术栈:项目采用前后端分离的B/S架构,后端使用Python FastAPI框架构建RESTful API服务,通过SQLAlchemy ORM进行数据持久化操作,数据库选用SQL Server Express,利用pyodbc通过ODBC驱动进行连接。前端采用原生HTML/CSS/JavaScript构建单页面应用(SPA),引入Chart.js 4.4.1实现数据可视化图表渲染,使用Jinja2模板引擎进行页面服务端渲染。数据库层面充分运用SQL Server特性,包括8个存储过程(覆盖订阅创建、批量订阅、模拟数据生成、多种取消订阅场景)、6个自定义函数(含内联表值函数和标量函数,用于统计查询和随机数生成)、辅助视图(解决UDF内调用NEWID()的限制)、外键级联删除、IDENTITY自增主键等。认证模块采用SHA-256加盐哈希存储密码,通过secrets模块生成Token并以内存字典方式管理会话状态。
"我"的负责模块和结果:我独立完成了整个系统的设计与开发工作,包括:数据库设计方面,设计3张核心业务表(Food、Subscription、Users),创建索引优化查询性能,编写8个存储过程和6个自定义函数,生成约700条模拟测试数据(200条店铺数据、500条订阅记录、500条用户数据);后端开发方面,设计并实现25个RESTful API接口,覆盖用户认证、店铺CRUD、订阅管理和统计分析四大模块;前端开发方面,编写约2340行代码实现完整的单页面应用,包含6个功能页面、5种图表展示、响应式布局(768px断点适配)和模态框交互;最终交付20余个源文件,项目可正常运行演示,实现了从数据库建表到前端展示的完整全栈开发流程。