Accountill 使用 MongoDB、Express、React 和 Nodejs (MERN) 制作的全栈开源发票应用程序

news2024/10/6 8:22:51

Accountill 使用 MongoDB、Express、React 和 Nodejs (MERN) 制作的全栈开源发票应用程序。

介绍

使用 MERN 堆栈(MongoDB、Express、React 和 Nodejs)制作的全栈发票应用程序,专为自由职业者和小型企业设计,几乎可用于任何类型的业务需求。使用此应用程序,可以向客户发送精美的发票、收据、估价单、报价单、账单等。立即跳出 Live App 并开始发送发票或下载整个源代码并在服务器上运行。

主要特征

  • 通过电子邮件发送发票、收据、估价、报价单和账单

  • 通过电子邮件生成并发送/下载 pdf 发票、收据、估算、报价单和账单

  • 设置截止日期。

  • 添加付款记录时自动更改状态

  • 每张发票的付款历史记录部分,包含有关付款日期、付款方式和额外说明的记录。

  • 记录发票的部分付款。

  • 干净的管理仪表板,用于显示所有发票统计信息,包括收到的总金额、待处理总额、最近付款、已支付发票总额、未支付发票总额和部分已支付发票。

  • 多用户注册。

  • 使用 jsonwebtoken (jwt) 和 Google auth 进行身份验证

使用的技术

客户

  • 反应 JS

  • Redux(用于管理和集中应用程序状态)

  • React-router-dom(处理路由)

  • Axios(用于调用 api)

  • Material UI & CSS 模块(用于用户界面)

  • React simple Snackbar(显示成功/错误通知)

  • Cloudinary(允许用户上传他们的企业标志)

  • Apex 图表(显示付款历史)

  • React-google-login(启用使用 Google 的身份验证)

服务器

  • Express

  • Mongoose

  • JWT(用于身份验证)

  • bcryptjs(用于数据加密)

  • Nodemailer(用于通过电子邮件发送发票)

  • html-pdf(用于生成发票 PDF)

数据库

  • MongoDB(MongoDB 地图集)

配置和设置

为了在本地运行这个项目,只需 fork 并克隆存储库或下载为 zip 并在您的计算机上解压缩。

  • 在您喜欢的代码编辑器中打开项目。

  • 转到终端 -> 新终端(如果您使用的是 VSCode)

  • 将您的终端一分为二(在一个终端上运行客户端,在另一个终端上运行服务器)

在第一个终端

  • cd client 并在客户端目录的根目录中创建一个 .env 文件。

  • 提供以下凭据

REACT_APP_GOOGLE_CLIENT_ID =  
REACT_APP_API = http://localhost:5000  
REACT_APP_URL = http://localhost:3000  

示例(Docker)

使用 docker 很简单的网络。只需添加与 docker 关联的 .env 即可。

例如:

转到路径“server/.env

DB_URL = mongodb://mongo:27017/arch  
PORT = 5000  
SECRET =  
SMTP_HOST =  
SMTP_PORT =  
SMTP_USER =  
SMTP_PASS =  

转到路径“client/.env

REACT_APP_GOOGLE_CLIENT_ID =  
REACT_APP_API = http://localhost:5000  
REACT_APP_URL = http://localhost  

并运行

docker-compose -f docker-compose.prod.yml build  
  
And then  
  
docker-compose -f docker-compose.prod.yml up

开源地址

  • https://github.com/panshak/accountill

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

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

相关文章

职场中有哪些不成熟的表现

(点击即可收听) 大家好,这里是人人领读,今天给大家分享的,职场中有哪些不成熟的表现,希望能给大家带来一些启发. 1. 不主动汇报自己的工作进度 这个在职场当中,是非常忌讳的,一定要积极反馈,不能闷声憋着,说什么自己社恐,不敢跟上级领导交流,害怕被说 自己被分配的任务做到哪个…

仙人掌之歌——权力的游戏(4)

技术大培训 周一上午,陈速在工位上有些坐立不安,他也不知道自己在等待着什么。脑子里不可遏止地又想起上周五时,易伟成过来找自己说的那些没头没脑的话。易伟成先是询问直播串的参数细节,因为他要设计播放串加密方案,…

大数据架构系列:如何理解湖仓一体?

转载:如有侵权,告知即删除 引言 这十多年大数据技术蓬勃发展,从市场的表现来看基于大数据的数据存储和计算是非常有价值的,其中以云数据仓库为主打业务的公司Snowflake市值最高(截止当前449亿美元)&#x…

【Spring Cloud】演进与应用的分布式系统开发利器(文末赠书三本)

🌸作者简介:花想云,目前大二在读 ,C/C领域新星创作者、运维领域新星创作者、CSDN2023新星计划导师、CSDN内容合伙人、阿里云专家博主、华为云云享专家 🌸专栏推荐:C语言初阶系列 、C语言进阶系列 、C系列、…

亚马逊测评养号系统是怎么操作的?

亚马逊鲲鹏测评养号系统可以注册亚马逊买家号、智能一键养号、批量绑定收货地址及支付卡、自动点击广告、货比三家后自动下单、自动留评、QA等,功能非常齐全,基本上是一款从注册到下单于一体的自动化软件。 具体操作流程是先准备好一批账号(没…

《SIMD instruction considered harmful》SIMD指令被认为是有害的

作者:大卫帕特森 (David Patterson) 和安德鲁沃特曼 (Andrew Waterman),2017 年 9 月 18 日 原文链接:SIMD Instructions Considered Harmful | SIGARCH 在撰写 《RISC-V 手册》的过程中,我们将 RISC-V 向量代码与 SIMD 进行了比…

创建一个 vue2.0 的项目(从0到1)的过程

1、首先:下载前端编码工具(如:VSCode) 2、其次:下载 node 与 npm 环境和管理: // 此时就说明成功安装 node 环境与 npm 管理工具: 3、然后:创建全局的 vue (如:vue2.0.8) 和 vue-cli 脚手架; …

Wiki.js 安装 linux(图解)

wiki.js是个开源的知识库系统,官方的docker安装总是出现各种问题, 官方也有给windows的安装包 wiki.js github 一、基础环境 1.nodejs环境 注意,wikijs2.0版本最高支持nodejs16 wikijs3.0支持nodejs18 参考这篇:nodejs编译安装…

Java爬虫通用模板它来了

Java 爬虫在实际应用中有很多场景,例如:数据挖掘和分析、搜索引擎、电商平台、数据更新、监控与预测等行业都需要爬虫借入,那么在实际爬虫中需要注意什么?又该怎么样快速实现爬虫?下面的文章值得看一看。 单线程java爬…

精准监测 智慧气象数据可视化大屏监测系统

前言 风云变幻,气象先行。天气、气候和水对公众的福祉、健康和粮食安全至关重要。 建设背景 市场背景 在全球气候变暖背景下,我国极端天气气候事件明显增多、强度明显增强,气候复杂多变,台风、暴雨、冰雹等灾害多发。常给人民…

网易NDH基于Impala的高性能SQL引擎建设实践

导读:本文将从四个方面来进行介绍。首先是分析在网易NDH中使用 Impala 过程遇到的一些痛点;第二个部分是基于这些痛点问题,我们提出了建设高性能SQL引擎的方案,以及这些方案是基于什么原则来创建的;第三个是基于这些原…

Qt使用第三方库openssl进行RSA加密解密操作详解

一、openssl库的编译,可以参考文档: https://blog.csdn.net/liang19890820/article/details/51658574/ 因为我这里使用的是windows操作系统,可以直接下载exe格式的安装文件,直接安装即可,就包含了我们需要的头文件和库文件,省去了编译操作。exe安装文件下载地址: htt…

Matlab中求解线性方程组——高斯消元法、LU分解法、QR分解法、SVD分解法、迭代法等

系列文章目录 MATLAB迭代的三种方式以及相关案例举例 MATLAB矩阵的分解函数与案例举例 MATLAB当中线性方程组、不定方程组、奇异方程组、超定方程组的介绍 MATLAB语句实现方阵性质的验证 MATLAB绘图函数的相关介绍——海底测量、二维与三维图形绘制 MATLAB求函数极限的简…

文件系统考古2:1984 - BSD Fast Filing System

今天继续与大家分享系列文章《50 years in filesystems》,由 KRISTIAN KHNTOPP 撰写。 我们将进入文件系统的第二个十年,即1984年,计算机由微型计算机发展到了桌面和机柜工作站, BSD Fast Filing System 登场。 回看第一篇&…

浅谈开源与闭源

开源指的是那些源代码或源设计可以被大众使用、修改发行的软件或设计体,闭源就是不开放源代码。 Linux 无疑是开源软件里最最成功的一个,不管是从它目前的生态建设角度,还是从业界评价来看,包括今天云计算的基础也都倚赖Linux的贡…

【SQL Server】数据库开发指南(九)详细讲解 MS-SQL 触发器的基础概念与应用场景

本系列博文还在更新中,收录在专栏:#MS-SQL Server 专栏中。 本系列文章列表如下: 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南(一)数据库设计的核心概念…

WIN10:Cognos10.2_x32安装运行问题总结(二)

一、Cognos安装Congfiguration启动服务异常解决方法 1、用管理员权限启动IBM Cognos Configuration、关闭本机安全软件、关闭防火墙; 2、不卸载本机JDK不删除本机JDK环境,指定c10\bin目录,cogconfig -java:local 命令CMD启动Cognos。 测试…

JavaSE07_static和final

JavaSE-07 【static-final】 第一章 static关键字 1.1 静态static关键字概述 static关键字 一个类的不同对象有些共享的数据,这样我们就可以使用static来修饰 。一旦使用了static关键字,那么这样的内容不再属于对象,而是属于类的&#xff…

通过python封装接口seller_nick获取阿里巴巴店铺所有商品数据,阿里巴巴店铺所有商品数据接口,阿里巴巴API接口

今天给大家分享一个大体的思路和代码示例。请确保采集过程遵循相关网站的使用规则和政策。 使用阿里巴巴开放平台提供的API接口文档,找到seller_nick接口的具体参数及请求方式。使用ython中的requests库发送请求,获取接口返回的数据。对返回的数据进行处…

深度解读新档案法①:企业如何提高档案管理规范性?

上一次,我们列举了关于档案管理需要遵守的法律法规清单,想要了解详情的,可点击添加链接描述。关于如何依法进行档案管理,许多朋友仍有疑问。为此,我们开设了一个专栏,结合企业实践案例,详细解读…