软件开发人员从0到1实现物联网项目:需求分析

news2024/11/18 17:35:18

文章目录

  • 前言
  • 市场调研
    • 线下考察
    • 竞品参考
  • 项目目标
  • 功能需求
    • 用户端功能需求
    • 商家功能需求
    • 系统管理功能需求
  • 非功能需求
    • 性能
    • 安全性
    • 易用性
    • 扩展性
    • 可靠性
  • 小结

image.png

前言

上文对实现自助棋牌室项目涉及到的技术做了调研,尤其是物联网技术。那接下来就是对需求进行一番分析了,经过几天对棋牌室的线下考察以及对市场竞品的参考,基本上明确了项目需要实现的功能,所以本文将尝试梳理出一份不专业的自助棋牌室系统的需求分析。

市场调研

线下考察

经过几天不全面的线下考察,发现棋牌室大概分几类:

  1. 传统的棋牌室:一间房几张桌子,环境谈不上,一般分布在城中村或是老小区,老年人居多。
  2. 半自助棋牌室:基本上是单间,环境较好,可以线上预约,也有老板坐镇看店,一般分布在公寓、酒店,用户群体主要是中年人、年轻人。
  3. 完全自助棋牌室:单间环境好,用户从预约到离店全部手机操作,一般分布在公寓、商场,用户群体主要是年轻人。

市面上大多数还是半自助,相对完全自助棋牌室,半自助棋牌室环境一般,少了几个硬件设备,使用的软件功能可能没那么完善,也多了人力成本,软件起到一个运营辅助作用。

竞品参考

市面上有很多成熟的竞品,百度一大堆的自助棋牌室Sass产品。

各产品核心功能大差不差,基本上是围绕用户和商家。用户线上预约以及用户留存的营销手段,储存赠送、会员优惠什么的。其次是商家的加盟、门店运营什么的。项目整体难度系数小。

项目目标

自助棋牌室系统主要是通过软件开发结合物联网技术,打造一款自动化、智能化、支持24小时无人运营店面的产品。

针对那些希望开启副业,但又因人力成本问题而犹豫不决的个体,自助棋牌室系统可以提供解决方案,从而减少副业运营的人力成本。

功能需求

用户端功能需求

自助棋牌室系统的使用对象主要就是用户,从用户的角度出发,需要支持以下几个功能:

  1. 一键登录注册:用户端目前主要考虑小程序,一键登录注册,尽量减少不必要的操作。
  2. 门店选择:根据用户的定位由近到远显示商家的门店信息,提供用户选择。
  3. 预约:选择门店后就可以查看各房间的状态及信息并进行预约,可以提前预约减少等待时间。
  4. 支付:预约时可以选择不同的支付方式进行支付,比如储值卡、微信、卡劵、线下等。
  5. 开门:支付成功后则预约成功,在预约的时间内可以通过小程序进行开门进入房间。
  6. 续费:当用户的服务时间即将到期时,可以通过小程序进行续费续时操作,确保服务的无缝衔接。

在这里插入图片描述

商家功能需求

从商家的角度出发,需要支持以下几个功能:

  1. 品牌管理:商家可以创建自己独立的品牌。(当然,小程序也需要单独部署)。
  2. 门店管理:商家的门店管理会涉及到几个功能:
    • 添加门店:只有独立品牌的商家可以添加多个分店或者作为加盟商添加加盟店。
    • 设置门店信息:所有的商家都可以设置自己门店信息,包括店名、地理位置、轮播图、文案什么的。
    • 门店续费:每个门店涉及到软件服务费,所以临近到期时可以进行续费操作,否则小程序将不显示该门店。
  3. 房间管理:每个门店下可以管理自己房间,包括:
    • 添加/删除房间:商家可通过添加删除操作控制小程序显示的房间信息。
    • 设置房间信息:商家可以自己房间的信息进行维护,包括基本信息、标签等。
    • 房间计费设置:每个房间可以设置自己的计费方式及费用,比如小时计费、时段计费、会员价、优惠什么的。
  4. 设备管理:商家的设备管理会涉及到几个功能:
    • 设备添加/删除: 用户在小程序进行开门以及房间电源、语音都需要远程控制,这些设备需要在此进行维护。
    • 绑定房间:要具体到某个房间设备的远程控制,需要与房间进行绑定,建立关系。
  5. 营销管理:通商家可以通过营销管理设置一些活动优惠吸引更多的用户,比如储值卡赠送、优惠卷赠送等。
  6. 订单管理:订单是商家营业最重要的数据,商家可以通过订单管理查看订单数据及状态。
  7. 营业数据:商家通过营业数据直观的看到每天的订单量、收入等营业数据。

在这里插入图片描述

目前考虑商家分为小程序端和PC端,小程序中展示一些关键数据及操作,比如门店的营业数据和营业报表,也可以通过小程序远程控制房间设备等。

系统管理功能需求

系统管理功能除支撑用户和商家的功能外,还要有一套权限管理功能,包括用户管理、角色管理、菜单管理等。因为商家的入驻、加盟以及相关的业务数据可以通过权限设计进行数据隔离,实现一个简单的多租户系统。

在这里插入图片描述

非功能需求

除功能需求之外,还要考虑系统的性能、安全性、易用性、可扩展性以及可靠性等非功能需求,因为这个事关用户的体验以及留存。

性能

  • 响应时间:95%的情况下,用户请求响应时间不超过1.5秒,高峰时段不超过4秒。
  • 并发数:弹性。

保障手段:数据库优化、负载、缓存、监控

安全性

  • 严格权限访问控制,用户只能访问其权限范围内的数据和操作。
  • 提供日志管理及安全审计功能,可追踪系统的历史使用情况。
  • 能经受来自互联网的一般性恶意攻击。

保障手段:权限控制、日志、限流、DDoS防护

易用性

  • 80%的用户应该可以在30秒内完成预约支付或充值操作。
  • 90%的商家在接受系统培训后,可以品牌、门店、房间以及设备的维护。

保障手段:用户问卷、在线反馈

扩展性

  • 在增加新功能模块时,避免影响其他功能。
  • 根据请求量、数据量的增大,系统可相应增加服务器实现扩展。

保障手段:无状态、弹性伸缩、模块低耦合

可靠性

  • 在服务、数据节点故障时可以迅速恢复服务,最小化对业务的影响。
  • 系统出现异常或潜在风险时及时发出报警,以便快速响应和处理。
  • 服务进行升级时不可影响现有用户使用。

保障手段:容错与故障恢复、监控与报警、灰度发布

小结

系统功能涵盖了小程序端和Web端,同时需要关注系统安全以及维护运维工作。鉴于个人精力有限,计划在后期主要采用云开发的方式进行开发部署,从而降低运维成本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1509235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Swing不显示图片

文件在同一目录下,这样写运行不显示图片 把路径改为绝对路径 程序正常运行

ubuntu 23开机界面美化教程

效果 方法 GRUB开机界面美化 从上述网站中,查找GRUB Themes分类,并下载GRUB主题包(tar.gz格式),如CyberSynchro.tar.gz; 解压下载得到的压缩包,得到CyberSynchro; 将CyberSynchro…

网络安全防御保护 Day7

1.因为FW1和FW2已处于双机热备状态,所以只需要对主设备进行配置即可。进入FW1的配置界面,选择“网络”界面,点击“IPsec”,进行IPsec通道的基本配置,这里选择的是“电信”链路。 2.完成上述配置后,进行待加…

springboot259交通管理在线服务系统的开发

交通管理在线服务系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装交通管理在线服务系统软件…

3505. 这也是一道排序题

一、题目 输入 10 7334774857 8461862436 540886577 5245195052 9194400521 5412986878 6694133363 1186771950 1405713915 7115286932 输出 -29430338967 二、思考 构造差分数组:C[i] A[i1] - A[i] 由题目条件可知:当A[i] A[i1] A[i-1] - A[i]时&am…

爱普生高稳定性温补晶振TG-5510CA和TG7050CMN的区别

爱普生之前同期推出过两款高精度温补晶振TCXO(TCXO),即晶体振荡器TG-5510CA和TG7050CMN。同属性能优异的温补晶振,它们有相同点,也有不同之处。相同的比如:外形尺寸、可输出的频率范围等。不同点在:工作温度、频率/温度…

代码随想录刷题笔记-Day32

1. 最大子序和 53. 最大子数组和https://leetcode.cn/problems/maximum-subarray/ 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组:是数组中的一个连续…

实战案例——Kafka集群部署

1. 规划节点 IP主机名节点192.168.100.10zookeeper1集群节点192.168.100.20zookeeper2集群节点192.168.100.30zookeeper集群节点 2. 基础准备 使用ZooKeeper集群搭建的3个节点来构建Kafka集群,因为Kafka服务依赖于ZooKeeper服务, 所以不再多创建云主机…

Spring Boot Configuration Processor使用

一、功能介绍 spring-boot-configuration-processor的作用就是将自己的配置你自己创建的配置类生成元数据信息,这样就能在你自己的配置文件中显示出来非常的方便。在META-INF目录下生成spring-configuration-metadata.json文件,从而告诉spring这个jar包…

大模型GPU监控之nvitop

背景 在进行大模型训练的时候,往往需要用到多张GPU卡,如何实现多卡的管理和监控,这是一个比较好的话题,下面介绍一个小工具。 安装nvitop pip install nvitop nvitop -m full 监控界面

二次封装 element-plus的Table 表格组件,减少代码臃肿

为什么要二次封装element-plus的Table 表格组件,言简意赅:以后难免会在表格里面加一些统一的逻辑,可以在表格里面书写重复的方法或样式 封装后的使用方式 props 参数类型可选值默认值说明tableDataArray——表格数据tableConfigArray——表…

【MySQL | 第四篇】区分SQL语句的书写和执行顺序

文章目录 4.区分SQL语句的书写和执行顺序4.1书写顺序4.2执行顺序4.3总结4.4扩充&#xff1a;辨别having与where的异同&#xff1f;4.5聚合查询 4.区分SQL语句的书写和执行顺序 注意&#xff1a;SQL 语句的书写顺序与执行顺序不是一致的 4.1书写顺序 SELECT <字段名> …

小程序学习 1

pages/goods/search/home.wxml首页功能设定 1. loading入场 2. 下拉刷新 3. 搜索栏 4. 分类切换 5. 商品列表 6. 规格弹层 7. 加载更多 <view style"text-align: center; color: #b9b9b9" wx:if"{{pageLoading}}"><t-loading theme"circula…

springboot-整合mybatis

1.导入依赖 <!--整合mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency><!--mysql--><dependen…

如何在Windows中对硬盘进行分区?这里有详细步骤

本文介绍如何在Windows11、10、8、7、Vista和XP中对硬盘进行分区 如果这个过程听起来比你想象的要复杂一点,不要担心,因为事实并非如此。在Windows中对硬盘进行分区一点也不难,通常只需要几分钟。以下是操作方法。 注意:这些说明适用于Windows 11、Windows 10、Windows 8…

Linux文件系列: 深入理解缓冲区和C标准库的简单模拟实现

Linux文件系列: 深入理解缓冲区和C标准库的简易模拟实现 一.缓冲区的概念和作用二.一个样例三.理解样例1.样例解释2.什么是刷新? 四.简易模拟实现C标准库1.我们要实现的大致框架2.mylib.h的实现1.文件结构体的定义2.myfopen等等函数的声明3.完整mylib.h代码 3.myfopen函数的实…

JEECMS相关语法最近更新(大家等一等,我刚开始写,有问题就问因为我也在做,发的都是实现得了)

JEECMS相关语法 1.[cms_channel_list parentId217]显示栏目标题图片与标题2.[cms_content_list count4 orderBy4 typeId1,2,3,4 titLen10 channelOption1 channelId96]显示内容图片与标题3.[cms_channel pathxypj]、[cms_content_list typeId1,2,3 count6 orderBy4 channelId22…

uniapp列表进入动画

app列表入场动画 - DCloud 插件市场 列表入场动画https://ext.dcloud.net.cn/plugin?id16957

为什么智能制造离不开MES管理系统

在当今日新月异的智能制造领域&#xff0c;MES管理系统以其独特的优势&#xff0c;成为引领车间智能化的核心技术系统。它不仅仅是一个简单的软件工具&#xff0c;更是企业实现生产优化、流程简化、效率提升、成本降低以及质量优化的重要支撑。 在生产工厂中&#xff0c;MES管…

传统网络组网配置

锐捷实验 一、核心1 开局MLAG组网(厂商初始化工作)1.1 peerlink&#xff1a;1.2 keepalive:1.3 vap domain 1 2 开局基础配置&#xff08;厂商初始化工作&#xff09;2.1 关闭 telnet 服务、web服务2.2 时钟 NTP2.3 LLDP封装&#xff1a;2.4 snmp2.5 日志&#xff1a;2.6 trap …