当前位置: 首页 > news >正文

开源全站第一个Nextron(NextJS+electron)项目--NextTalk:一款集成chatgpt的实时聊天工具

NextTalk

简介

该项目是一个基于Nextron(NextJS+Electron)的桌面端实时聊天工具。

但由于使用了NextJS中的ssr及api route功能,该程序只能在开发环境运行。

关于生产版本:我将其网页端部分分离,并用Pake将其打包成桌面端,生产体验安装包我放在了release里,目前只打包了windows版本。

github:Mebius1916/NextTalk: A real-time chat tool based on nextron (NextJS+electron) with integrated AI functions

觉得不错的话给个star吧~


技术栈

前端: NextJS (React) + TailwindCSS + TypeScript + ThreeJS + NextUI + MaterialUI (icons) + NextAuth + Cloudinary + Electron + Pusher + React-toastify + OpenAI + React-email

后端: NextJS (SSR) + MongoDB + Mongoose


功能

登陆、注册、重制密码与邮箱验证

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注册和重置模块需要邮箱验证,发送code后请及时查看注册邮箱填写验证码。

聊天界面

在这里插入图片描述

右上角登出按钮可登出账号。

发送消息及图片

在这里插入图片描述

点击输入框左侧图片按钮即可发送图片。

创建聊天

在这里插入图片描述

单选创建一对一聊天,多选创建群组聊天。

右边是个3D星球,可自行旋转。

申请好友、同意申请

在这里插入图片描述

成为好友之前是不能发送消息的,请点击Add friend按钮发送好友请求。

在这里插入图片描述

对方接受到好友请求后点击消息旁的对勾即可加为好友。

圣地巡礼

在这里插入图片描述

用内联框架嵌入,因为个人很喜欢这个网站所以嵌入哈哈哈。

右下角功能键最上方有个刷新图标,点击可以重置页面。

AI助手

在这里插入图片描述

GPT3.5助手,比较粗糙,没有对生产消息做格式处理,不能生产markdown等格式只能生成普通文本格式。

修改个人头像名字、群组头像名称

在这里插入图片描述

点击聊天界面右上角即可修改自己的头像和名字。

在这里插入图片描述

点击聊天中的群聊头像,即可修改群聊头像和名称。


注意

该项目虽然是基于Nextron的,但是当我打包的时候发现Nextron生产环境是不支持NextJS的ssr及api route的(我使用了),所以这个项目只能在开发环境运行,也就是说这个项目严格意义上来说只是个nextjs项目,这就导致我并不喜欢nextron,具体体现在以下几点:

  1. 我认为api route(ssr)是NextJS中不可或缺的一部分,我之所以使用NextJS便是因为其可以快速开发全栈项目的特性,而Nextron阉割掉了这个功能就让我感觉Nextron只是拥有NextJS生态的react+electron。作者说阉割是因为安全问题,而我个人认为这个功能可以不用,但是得存在,像我这种个人开发者并不担心什么安全性问题。
  2. Nextron中不支持app route的写法,只支持传统的pages route,这就是为什么我的项目中使用的是pages route而不是ap route这是不好的,app route才是NextJS的未来。
  3. Nextron只支持webpack打包,我个人认为在现在webpack作为打包工具唯一的优势应该就是其生态广阔,我个人还是更加喜欢vite打包。

运行

下载依赖:npm install

开发环境运行:npm run dev

注意:.env文件在/renderer目录下,请补全后运行。


网页版

网页版通过vercel部署。

github:Mebius1916/NextTalk_web: NextTalk项目的网页版

体验地址:https://nexttalk.mebius.fun


提交pr

可以参考我设置的issue,当然你有不错的想法也是可以的,不局限于我设置的issue

如果有想法且不会配置.env的可以提issue,审核通过后给你发我自己的.env


免责申明

写该项目的初衷是因为我初学reactnextjs所以想自己从0到1写一个项目来熟悉语法,所以该项目代码难免会粗糙,各位当成小玩具看待就可以啦。

http://www.lryc.cn/news/475463.html

相关文章:

  • 多样化的编程模型:并发与并行策略
  • npm入门教程2:npm历史
  • Cuebric:用AI重新定义3D创作的未来
  • 前端react常见面试题目(basic)
  • 机器人技术基础(4章逆运动解算和雅克比矩阵)
  • OpenGL入门002——顶点着色器和片段着色器
  • [数组排序] LCR 164. 破解闯关密码
  • 05 Django 框架模型介绍(一)
  • 【简道云 -注册/登录安全分析报告】
  • 【C++题解】1970. 判断是什么字符
  • Python自动化操作Word文档详解
  • 常用滤波算法(二)-中位值滤波法
  • HCIP--以太网交换安全(总实验)
  • C语言 | Leetcode C语言题解之第519题随机翻转矩阵
  • 《机器人SLAM导航核心技术与实战》第1季:第10章_其他SLAM系统
  • 《双指针篇》---快乐数
  • U盘引导丢失问题的处理办法
  • layui tree customSelet选中的内容重写,查找父级
  • Maven 插件
  • MybatisPlus入门(七)MybatisPlus-DQL编程控制
  • K8S概念及其常见组件和整体架构
  • LabVIEW继电器视觉检测系统
  • linux操作系统进程
  • jeecgbootvue2菜单路由配置静态文件夹(public)下的html
  • PHP反序列化原生类字符串逃逸框架反序列化利用
  • 6.1、属性动画
  • v-model还可以作用于其他表单元素的使用
  • 最短路的求解
  • 四:java 基础知识(4)-- 异常 字符串
  • Uniapp 实现app自动检测更新/自动更新功能