Invoify
Invoify is a web-based invoice generator application built with Next.js 13, TypeScript, React, and the Shadcn UI library. It provides an easy way to create and manage professional invoices.
![Invoify Website image](https://github.com/al1abb/invoify/raw/master/public/assets/img/invoify-web-app.png)
Table of Contents
Technologies
Core Technologies
- Next.js: React framework for SSR and client-side navigation.
- TypeScript: JavaScript superset with static typing.
- Shadcn-UI: UI library for enhanced visuals.
- Tailwind: Utility-first CSS framework.
- React Hook Form: Form management for React.
- Zod: TypeScript-first schema validation.
- Puppeteer: PDF generation with headless browsers.
Additional Dependencies
- Nodemailer: Node.js module for sending emails.
- Lucide Icons: Collection of customizable SVG icons.
Roadmap
- [x] Easily Create Invoices: Utilize a simple form to quickly generate invoices.
- [x] Save for Future Access: Store your invoices directly in your browser for easy retrieval.
- [x] Retrieve Invoices Effortlessly: Load and access invoices seamlessly from your saved list.
- [x] Flexible Download Options: Download invoices directly or send them via email in PDF format.
- [x] Template Variety: Choose from multiple (currently 2) invoice templates.
- [x] Live Preview: Edit the form and see changes in real-time with the live preview feature.
- [x] Export in Various Formats: Export invoices in different formats, including JSON, XLSX, CSV, and XML.
- [ ] I18N Support: i18n support with multiple languages for UI and templates.
- [ ] Themeable Templates: Select a theme color for the invoice
- [ ] Custom Inputs: Define your own inputs that are missing from the default invoice builder. (Ex: VAT number)
- [ ] Individual Tax for Line Items: Add tax details for a specific line item other than the general tax
Demo
[!NOTE]
Please be advised that there are currently issues when using this application in the Mozilla Firefox browser. For more information, refer to Issue #11.
Visit the live demo to see Invoify in action.
Getting Started
Follow these instructions to get Invoify up and running on your local machine.
Prerequisites
- Node.js and npm installed on your system.
Installation
-
Clone the repository:
git clone https://github.com/aliabb01/invoify.git
cd invoify
-
Install dependencies
npm install
- Create an .env.local file with this content (This step is for sending pdf to email feature):
NODEMAILER_EMAIL=your_email@example.com
NODEMAILER_PW=your_email_password
-
Start development server
npm run dev
- Open your web browser and access the application at http://localhost:3000
License
Distributed under the MIT License. See LICENSE.txt
for more information.