Accountill

Fullstack open source Invoicing application made with MongoDB, Express, React & Nodejs (MERN)

Full Stack Web DevelopmentJavaScriptMIT

Abstract

Accountill is an open-source Full Stack Web Development project. Fullstack open source Invoicing application made with MongoDB, Express, React & Nodejs (MERN). I am pleased to inform you that the name of this repository has been changed from Arc Invoice to Accountill. There are so many things coming! It is built using JavaScript, React, Redux, Express. Key capabilities include: 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. The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building a Full Stack Web Development mini project or final-year project.

1. Introduction

I am pleased to inform you that the name of this repository has been changed from Arc Invoice to Accountill. There are so many things coming! Stay tuned!!

This is a side project I've been working on. A full stack invoicing application made using the MERN stack (MongoDB, Express, React & Nodejs), 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. Jump right off the Live App and start sending invoice or download the entire Source code and run it on your server. This project is something I've been working on in my free time so I cannot be sure that everything will work out correctly. But I'll appreciate you if can report any issue.

Built with the MERN stack (MongoDB, Express, React and NodeJS).

2. Objective

Fullstack open source Invoicing application made with MongoDB, Express, React & Nodejs (MERN)

This project demonstrates how JavaScript, React, Redux can be applied to a real-world Full Stack Web Development problem.

3. Key Features / Modules

  • 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

4. Technology Stack

JavaScriptReactReduxExpress

5. System Requirements

General requirements for this technology stack — check the README for exact versions.

  • Node.js (LTS) and npm
  • A modern web browser
  • VS Code or any code editor
  • Git (to clone the repository)

6. Installation & Setup

git clone https://github.com/panshak/accountill.git
cd accountill
  1. Open the project in your prefered code editor.
  2. Go to terminal -> New terminal (If you are using VS code)
  3. Split your terminal into two (run the client on one terminal and the server on the other terminal)
  4. cd client and create a .env file in the root of your client directory.
  5. Supply the following credentials
  6. Click Create credentials > OAuth client ID.
  7. Select the Web application type.
  8. Name your OAuth client and click Create
REACT_APP_GOOGLE_CLIENT_ID =
REACT_APP_API = http://localhost:5000
REACT_APP_URL = http://localhost:3000
$ cd client
$ npm install (to install client-side dependencies)
$ npm start (to start the client)
DB_URL =
PORT = 5000
SECRET =
SMTP_HOST =
SMTP_PORT =
SMTP_USER =
SMTP_PASS =
$ cd server
$ npm install (to install server-side dependencies)
& npm start (to start the server)

Full setup instructions are in the project README.

7. Future Enhancements

Suggested extensions you can add to make this your own project.

  • Add role-based access control
  • Deploy on a VPS or cPanel hosting with a custom domain
  • Add automated tests and a CI pipeline

8. Viva / Review Questions

Common questions examiners ask for projects in this domain.

  1. Explain the frontend, backend and database layers of this application.
  2. How is user authentication and authorisation implemented?
  3. Describe the main database tables / collections and their relationships.
  4. Which REST APIs or routes are exposed and what do they return?
  5. How would you deploy this application to production?

9. Source Code & License

This project is developed by panshak and published on GitHub under the MIT License. Please follow the license terms and credit the original author when you use or modify this code.

Want to build this as your internship project?

Work on a Full Stack Web Development project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.

Apply for Full Stack Web Development Internship