Hello All,
This happen to be my first post since I join this forum in 2019 and I’m happy to share with you a side project I’ve been working on for some months now. Having gone through many web projects on Github, I noticed that these projects are mostly ecommerce or blog sites, so I decided to do something different in order to challenge myself and to up my skills in software development.
I build a full stack invoicing application, using the MERN stack (MongoDB, Express, React & Nodejs). This app is specially designed for freelancers and small businesses, but can be used for almost any type of business need. With this application, you can send beautiful invoices, receipts, estimates, quotes, bills etc to your clients. I have made the Source code available in my GitHub profile for anyone who is interested. You can also find a Demo link in the Github repo of this project.
Key Features
- Send invoices, receipts, estimates, quotations and bills via email
- Generate and send/download pdf invoices, receipts, estimates, quotations and bills via email
- Set due date.
- Automatic status change when payment record is added
- Payment history section for each invoice with record about payment date, payment method and extra note.
- Record partial payment of invoice.
- Clean admin dashboard for displaying all invoice statistics including total amount received, total pending, recent payments, total invoice paid, total unpaid and partially paid invoices.
- Multiple user registration.
- Authentication using jsonwebtoken (jwt) and Google auth
Technologies used
This project was created using the following technologies.
Client
- React JS
- Redux (for managing and centralizing application state)
- React-router-dom (To handle routing)
- Axios (for making api calls)
- Material UI & CSS Module (for User Interface)
- React simple Snackbar (To display success/error notifications)
- Cloudinary (to allows users to upload their business logo)
- Apex Charts (to display payment history)
- React-google-login (To enable authentication using Google)
Server
- Express
- Mongoose
- JWT (For authentication)
- bcryptjs (for data encryption)
- Nodemailer (for sending invoice via email)
- html-pdf (for generating invoice PDFs)
Database
MongoDB (MongoDB Atlas)
I have written a detailed documentation of how to run this project locally, and it can be found in the readme file of the project repository here.
I intend to keep adding more features to this application, so if you found this project interesting, please give it a star, it will encourage me a lot.
Top comments (45)
I had built something similar but not so many functionalities. I can understand the amount of time and effort required. really appreciate your effort in this.
Thanks so much. I really appreciate.
I am creating a community for developers, would you be interested to join?
discord.gg/ncRsYT33uG
I have joined.
I have gone through ur app . I noticed one issue there. The issue is that if u login with wrong credentials it says user does not exist as it's correct but the loader which comes in place of login button keeps moving continuosly which is supposed to stop once back end sends response to frond end. I hope u are aware of this issue. If you are not aware of this issue then I think u should look into it.
Thanks so much for reporting. I'll definitely look at it.
Congratulations on a well done project 👏
I'm interested in the database structure, I'm new to NoSQL databases and I'm having a time understandimg how to organize related data. Any advice in that aspect?
Thanks very much. Can you give an example of what you wanted to do?
There's a lot of interesting code in this project to look at, even is one is not looking for this particular application. Many of the bits and pieces inside are universal to most apps and are worth to take a look at.
Thanks for sharing!
Very true. Thanks so much
Superb project mate. Truly inspiring!!!
Thanks so much.
Awesome, i would love to try that. But would like to know if you have any documentation describing features, implementation. So that i can take up as user stories and develop each feature and hopefully do similar as urs
Thanks so much. There's no documentation describing features yet. But I'll definitely look into it.
Dude, this is legit. I'll take a look at it later this weekend.
Thanks very much. I'll really appreciate your feedback.
Hi Panshak, great work. Am in Abuja. How can I contact you please?
Thanks bro. Feel free to shoot me a mail. My email is in my github profile
Baa yawa. I go Hala you.
Thanks a lot for this contribute. I'll definitely use it for a small business experiment.
Thanks so much, and I'm glad this will help.
Something like this is a project idea for me, too. I will check your code for inspiration 😘