producthunt在国内没有找到类似的产品,所以利用业余时间写了一个类似简单版本。
在写这个产品之前,写过自己的博客系统、评论系统、登陆系统,所以登陆、授权、评论、文章、发邮件、点赞等功能都已经有了,后端需要把这些功能整合到一起,前端基本重头再写。
一、产品主要功能
本网站主要为用户提供一个快捷方便的寻找产品的场所。用户也可以推荐自己的、发现的产品,可以发起提问,也可以记录对某个产品的使用心得。
- 产品模版:发布、查看(列表、详情)、编辑、删除、点赞、评论数
- 问答模块:发布、查看(列表、详情)、编辑、删除、点赞、评论数
- 产品笔记:发布、查看(列表、详情)、编辑、删除、点赞、评论数
- 点赞模块
- 登陆(github登录)
- 授权
- 邮件
二、系统设计
1、后端
由于以前的功能模块使用语言不同,有nodejs和golang两种,所以使用docker部署,在网关(gateway)部分映射端口到宿主机对外提供服务。
网关对外只抛出接口portA,外界访问时需进行接口认证,没有权限时返回错误信息;通过则代理到对应的服务。任意两个功能模块的访问都需要通过“网关”代理,比如“产品”要访问“用户”就需要发到“网关”,再由网关转发到“用户”模块。
使用技术:golang、postgres、nodejs、docker
2、前端
为了使网站对SEO友好,需要在服务器上渲染,结合自己熟悉的技术,最终选择了React + Nextjs + Mobx + Antd的方式。在服务器上渲染成html后再返回给客户端,客户端再对进行操作。
前期的UI和交互都参考了producthunt的设计,主要以实现功能为主,后面再做调整