Invoice Generator
Invoice Generator is an open-source web application that allows users to create, customize, and download professional invoices. Built with Next.js for speed and scalability, this project is perfect for small businesses and freelancers needing an easy-to-use invoicing tool.
Features
- Dynamic Invoice Creation: Fill in your details, and the invoice updates in real time.
- Customizable Templates: Choose from various invoice templates.
- Download as PDF: Easily download your invoices for record-keeping or sending to clients.
- Responsive Design: Fully responsive and works on all devices.
- UI Components: Built using the shadcn component library for consistent and polished UI.
- State Management: Uses Zustand to manage global application state efficiently.
- Forms: Uses React Hook form to manage the forms efficiently.
Technologies Used
- Frontend: Next.js
- Package Manager: PnpM
- UI Library: shadcn for highly reusable components.
- State Management: Zustand for managing application state.
- Forms: React Hook Form for forms.
- Styling: Tailwind CSS for modern and responsive designs.
- PDF Generation: ReactPDF for PDF Generation
Getting Started
Follow the steps below to get the project running on your local machine:
Prerequisites
Ensure you have the following installed:
- PnpM - Fast, disk space efficient package manager
- Node.js (if Bun isn't installed, it can act as an alternative for certain features)
Installation
-
Clone the repository:
git clone https://github.com/ypratham/invoice-generator.git
cd invoice-generator
-
Install dependencies using PnpM:
pnpm install
-
Run the development server:
pnpm dev
-
Open the app:
Visit http://localhost:3000 in your browser to see the application.
Building for Production
To build the project for production, run:
pnpm run build
This will create an optimized production build of your application.
Running in Production
After building the app, start the server in production mode:
pnpm run start
Contributing
We welcome contributions! Please see our Contributing Guidelines for details on how to get started.
To contribute:
- Fork the project.
- Create a new branch with your feature or bugfix:
git checkout -b feature-name
- Commit your changes:
git commit -m 'Add feature'
- Push to the branch:
git push origin feature-name
- Open a pull request on GitHub.
Issues
Have a bug or a feature request? Please check the existing issues before opening a new one.
License
This project is licensed under the MIT License. See the LICENSE file for more details.
Acknowledgements
- Thanks to the contributors and the open-source community for their help and feedback.