jjzjj

【Go语言实战】(1) Gin+微信小程序 车辆信息联络平台

小生凡一 2024-05-23 原文

使用Golang+微信小程序前后端分离打造的车辆信息联络平台

(也有一部分的python在里面。

目录


1. 背景


1.1 创作背景:

在校园生活中,电动车是大多数同学的主要通勤工具,电动车的使用群体日益庞大。但问题接踵而来,有限的充电与停放空间给同学们带来了许多麻烦。同时,由于难以联系上车主,造成了许多不必要的冲突。

例如:电动车占了充电位却找不到人,车辆违规停泊影响出入,电动车丢失难以快速找回,刮伤别人车时难以及时联系车主……为了杜绝这些问题的发生,我们设计并开发了这套车辆联络信息小程序平台——斗量车联,功能包括:车主社区、在线聊天、消息提醒、亲友互联、电桩查看等,使车主们轻松交换信息,在避免个人信息泄露的同时,帮助用户更好、更快捷地解决中小范围内的车辆的停泊、充电、丢失、损伤等所引发的问题。

1.2 实现目标:

  1. 用户可通过拍照识别车牌号进行绑定车牌号,也能通过车牌号找到对应的车主。
  2. 车牌冲突可进行申诉反馈。
  3. 可通过文本消息提醒、在线聊天、短信提醒等形式与对方车主产生联系。
  4. 强大的社区模块,支持闲置物品的交互买卖。
  5. 实时获取充电桩信息,方便用户选择。
  6. 除基本管理操作,后台还可对车流量进行实时监控。

1.3 开发环境:

开发语言:
后 端:Golang v1.15、Python v3.7
前 端:微信小程序基础库 v2.16.0、Vue v3.3.0

算 法 : Pytorch v1.7.1、Cuda v11.0

数 据 库 : MySQL v5.7.30、MongoDB v4.4.6、Redis v4.0.9

短信服务 :腾讯云短信

文件存储 :七牛云存储
服 务 器 : 阿里云服务器

2. 功能介绍


2.1 主体部分

声明:这里的首页以及个人信息页面是参考隔壁有坑的小程序前端。
原作者github:GitHub

  • 主页面中,UI界面简介大方得体。方便用户快速了解小程序的大体功能,也非常感谢原作者的开源!
  • 主页面呈现四个模块
    1. 社区模块
    2. 亲友模块
    3. 聊天模块
    4. 个人中心

2.2 用户模块

个人中心是可以对用户个人的信息进行修改、由于是用微信登陆,所以姓名和头像是读取微信的头像和名字。所以名字和头像是不支持修改的。

但是手机号、邮箱号、车辆是可以进行解绑定的。
用户可以通过绑定自己的车牌号来管理自己的车辆。

车牌,我们提供了一个ocr的算法接口,可以对车牌进行识别,然后返回车牌信息进行绑定车辆。

  • 个人信息
  • 绑定邮箱
  • 绑定手机
  • 绑定车牌

2.3 社区模块

推荐模块、亲友圈、闲来康康、我的世界等。

  • 我的世界模块可以查看到用户个人发布的帖子。
  • 帖子详情、可以对帖子进行评论、点赞等操作。
  • 帖子发送,用户可以通过话题进行发布帖子。

2.4 聊天模块以及充电功能

  • 聊天功能,实现实时聊天。
  • 系统消息,系统可有针对性的对其进行发送信息。
  • 用户反馈,可以进行评论举报、聊天举报、车牌申诉等功能。
  • 充电桩查询,我们用爬虫将学校充电桩的情况进行爬取,使得用户能够查看充电桩的情况。

2.5 算法方面

算法部分的结果都是通过flask框架进行api接口的返回。


2.5.1 FasterRCNN网络车牌识别

2.5.2 YOLOV5 车辆识别


2.6 后台管理模块

后台模块相对简单,并没有设计到比较多的功能,后需再进行完善。

  • 用户模块管理
  • 车辆模块管理
  • 反馈信息管理
  • 车流监控管理


可对用户进行拉黑、封号处理


可下架、修改用户的帖子信息。


可对用户的车辆进行处理、更换车牌号等

3. 总结

这个项目是为了参加的微信的小程序开发大赛的

但是和去年不同,这次小程序居然要小程序的云函数进行后端开发。

罢了罢了,只能把这个当校赛投了算了。
其实就是也巩固了一下后端开发。

  • go的ws也有涉及。
  • gorm的多对多也有了深入的了解。还有后端的一些逻辑结构。
  • 熟悉了腾讯云短信,七牛云存储,阿里云服务器的一些操作。

这一次的算法方面

  • FasterRCNN的车牌识别
  • YOLO网络的车辆检测

不过顺便可以把这个当作下学期的软工实践了哈哈!

喜欢的小伙伴可以关注我噢~

有关【Go语言实战】(1) Gin+微信小程序 车辆信息联络平台的更多相关文章

  1. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  2. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  3. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  4. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  5. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  6. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  7. 7个大一C语言必学的程序 / C语言经典代码大全 - 2

    嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来

  8. 微信小程序通过字典表匹配对应数据 - 2

    前言一般来说,前端根据后台返回code码展示对应内容只需要在前台判断code值展示对应的内容即可,但要是匹配的code码比较多或者多个页面用到时,为了便于后期维护,后台就会使用字典表让前端匹配,下面我将在微信小程序中通过wxs的方法实现这个操作。为什么要使用wxs?{{method(a,b)}}可以看到,上述代码是一个调用方法传值的操作,在vue中很常见,多用于数据之间的转换,但由于微信小程序诸多限制的原因,你并不能优雅的这样操作,可能有人会说,为什么不用if判断实现呢?但是if判断的局限性在于如果存在数据量过大时,大量重复性操作和if判断会让你的代码显得异常冗余。wxswxs相当于是一个独立

  9. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  10. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

随机推荐