An open API service indexing awesome lists of open source software.

https://github.com/sreenathkumar/quinvox

QuInvox is a modern, lightweight invoice generator built with Next.js, Tailwind CSS, and Zustand. It helps users create, preview, and manage invoices effortlessly โ€” all from a clean, responsive interface.
https://github.com/sreenathkumar/quinvox

better-auth nextjs shadcn-ui taildwindcss typescript zustand

Last synced: about 1 month ago
JSON representation

QuInvox is a modern, lightweight invoice generator built with Next.js, Tailwind CSS, and Zustand. It helps users create, preview, and manage invoices effortlessly โ€” all from a clean, responsive interface.

Awesome Lists containing this project

README

          

# Quinvox

Quinvox is a modern, fast, and free online invoice creator. It allows freelancers and small businesses to generate professional invoices, manage client details, and export documents to PDF seamlessly.

---

## ๐Ÿš€ Features

- **Instant Invoice Generation:** Create invoices quickly with a user-friendly form interface.
- **Live Preview:** See changes in real-time as you edit invoice details.
- **PDF Export & Print:** Download invoices as high-quality PDFs or print them directly from the browser.
- **Local Persistence:** Invoices are saved locally using browser storage, so you don't lose your work on refresh.
- **Cloud Backup:** Invoices will be saved on cloud automatically for multi device sync.
- **Authentication:** Optional User Sign-up/Login to manage sessions (powered by Better Auth).
- **Client & Biller Management:** Easily input and manage billing details for both parties.
- **Tax & Totals Calculation:** Automatic calculation of subtotals, taxes, and grand totals.

---

## ๐Ÿ› ๏ธ Tech Stack

- **Framework:** Next.js 15 (App Router)
- **Language:** TypeScript
- **Styling:** Tailwind CSS
- **UI Components:** Shadcn UI (Radix UI)
- **State Management:** Zustand with persistence
- **Forms & Validation:** React Hook Form + Zod
- **Auth:** Better-Auth
- **PDF Generation:** html2canvas, jspdf, react-to-print
- **Testing:** Vitest + React Testing Library
- **Deployment:** Vercel

---

## ๐Ÿ“‚ Project Structure

```

quinvox/
โ”œโ”€โ”€ app/ # Next.js App Router pages
โ”‚ โ”œโ”€โ”€ dashboard/
โ”‚ โ”œโ”€โ”€ invoice/
โ”‚ โ”œโ”€โ”€ login/
โ”‚ โ””โ”€โ”€ signup/
โ”œโ”€โ”€ components/ # Reusable UI components
โ”œโ”€โ”€ hooks/ # Custom hooks (Zustand stores, utilities)
โ”œโ”€โ”€ lib/ # Firebase config, helpers, utils
โ”œโ”€โ”€ styles/ # Global Tailwind styles
โ”œโ”€โ”€ tests/ # Vitest + RTL test files
โ”œโ”€โ”€ public/ # Public static assets
โ””โ”€โ”€ package.json

```

---

## ๐Ÿ”ง Environment Variables

Create a `.env` file in the root directory and add:

```bash
BETTER_AUTH_SECRET
BETTER_AUTH_URL
DATABASE_URL
GOOGLE_CLIENT_ID
GOOGLE_CLIENT_SECRET
LINKEDIN_CLIENT_ID
LINKEDIN_CLIENT_SECRET
EMAIL_SEVER_API_KEY
```

---

## ๐Ÿ’ป Getting Started

### Prerequisites

- Node.js v18+
- pnpm (recommended), npm, or yarn

### Installation Steps

1. **Clone the repository**

```bash
git clone https://github.com/your-username/quinvox.git
cd quinvox
```

2. **Install dependencies**

```bash
pnpm install
# or npm install
```

3. **Run the development server**

```bash
pnpm dev
```

4. Visit:

```
http://localhost:3000
```

---

## ๐Ÿ“œ Available Scripts

| Command | Description |
| ------------ | ----------------------- |
| `pnpm dev` | Run development server |
| `pnpm build` | Build for production |
| `pnpm start` | Start production server |
| `pnpm lint` | Run ESLint |
| `pnpm test` | Run tests |

---

## ๐Ÿงช Testing

Quinvox uses:

- **Vitest** for unit testing
- **React Testing Library** for component testing
- **(Optional)** MSW for API mocking

Run tests:

```bash
pnpm test
```

---

## ๐Ÿ“ฆ Deployment

You can deploy Quinvox easily using **Vercel**:

1. Push the project to a GitHub repository
2. Import it into Vercel
3. Add required environment variables
4. Deploy ๐Ÿš€

---

## ๐ŸŒฑ Roadmap

- [ ] Send invoices via email
- [ ] Invoice templates & themes
- [ ] Multi-language support
- [ ] Team & workspace collaboration
- [ ] Easy share

---

## ๐Ÿค Contributing

Contributions are welcome and appreciated!

1. Fork the repository
2. Create a new feature branch
3. Commit using conventional commit messages
4. Open a pull request

**Example commit messages:**

```
feat: add dark mode toggle
fix: correct invoice total calculation
refact: optimize Zustand store
```

---

## ๐Ÿ“„ License

Quinvox is released under the **MIT License**.
You are free to use, modify, and distribute this project.

---

## โญ Support the Project

If you find Quinvox useful:

- โญ Star the repository
- ๐Ÿ“ฎ Share it with others
- ๐Ÿ› ๏ธ Contribute improvements