Skip to content

YASSINENFAI/invoiceflow

Repository files navigation

InvoiceFlow - Free Invoice Management System

A free, open-source invoice management system for small businesses and freelancers.
FeaturesDemoInstallationContributingLicense

License Next.js Supabase GitHub Stars


🌟 Features

  • Unlimited Invoices - Create as many invoices as you need
  • Unlimited Products - Manage your product inventory
  • Multi-Currency Support - SAR, MAD, AED, USD, EUR, GBP
  • Bilingual Interface - Full Arabic & English support with RTL
  • PDF Export - Generate professional PDF invoices
  • Sales Reports - Analytics and revenue tracking
  • Email & WhatsApp Sharing - Send invoices directly
  • Google OAuth - Quick sign-in with Google
  • 100% Free & Open Source - MIT License

🎯 Perfect For

  • 🏪 Small business owners
  • 💼 Freelancers
  • 📊 Accountants
  • 🛒 Retail stores
  • 🚀 Startups

🚀 Demo

Live Demo: https://invoice-saas-xi.vercel.app


📦 Installation

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase account (free)
  • Google OAuth credentials (optional)

Setup

  1. Clone the repository
git clone https://github.com/YASSINENFAI/invoiceflow.git
cd invoiceflow
  1. Install dependencies
npm install
  1. Create .env.local file
# Supabase
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key

# Google OAuth (optional)
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret

# NextAuth
NEXTAUTH_SECRET=your_random_secret_key
NEXTAUTH_URL=http://localhost:3000
  1. Set up Supabase database

Create a new Supabase project and run the SQL schema in supabase-schema.sql

  1. Run development server
npm run dev
  1. Open http://localhost:3000

🛠️ Tech Stack

Technology Purpose
Next.js 14 React framework with App Router
Supabase PostgreSQL database & Authentication
NextAuth.js Authentication system
Tailwind CSS Styling
TypeScript Type safety
Vercel Deployment

📁 Project Structure

invoiceflow/
├── src/
│   ├── app/              # Next.js App Router pages
│   ├── components/       # React components
│   ├── lib/              # Utilities & configurations
│   └── types/            # TypeScript types
├── public/               # Static assets
├── supabase-schema.sql   # Database schema
└── package.json

🗄️ Database Schema

The project uses Supabase (PostgreSQL) with the following tables:

Table Description
users User profiles and settings
products Product inventory
invoices Invoice records
invoice_items Invoice line items

See supabase-schema.sql for complete schema.


🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.


📧 Contact

Email: azffhk@gmail.com

GitHub: https://github.com/YASSINENFAI/invoiceflow


🙏 Acknowledgments


⭐ Support

If you find this project useful, please consider giving it a ⭐ on GitHub!


Made with ❤️ for small businesses