SA
Sammyarc/Proforma
An invoice generator web app that lets users create and customize invoices, send them directly to clients, and handle payments seamlessly.
Proforma - Open Source Invoice Generator
๐ A modern, user-friendly invoice generator web application built with React that allows users to create, customize, and send professional invoices with integrated payment tracking.
Features
Core Functionality
- ๐ Customizable invoice templates
- ๐ Direct email delivery to clients
- ๐ณ Multiple payment gateway integrations
- ๐ Real-time payment tracking
- ๐ฑ Responsive dashboard interface
- ๐ Secure payment processing
Payment Integrations
- Stripe
- PayPal
- Flutterwave
- Paystack
- Skrill
- GooglePay
Tech Stack
- Frontend: React, TailwindCSS, Framer Motion
- Payment Processing: Stripe API, PayPal API, Square API
- Authentication: Google OAuth
- Email Service: Google Mail Service API and NodeMailer
- Database: MongoDB
Getting Started
Prerequisites
- Node.js (v16 or higher)
- npm or yarn
- Git
Installation
- Clone the repository
git clone https://github.com/sammyarc/proforma.git
cd proforma- Install dependencies
npm install
# or
yarn install- Start the development server
npm run dev
# or
yarn devContributing
We welcome contributions of all sizes! Here's how you can help:
For First-Time Contributors
- Look for issues labeled
good-first-issueorhelp-wanted - Comment on the issue you'd like to work on
- Fork the repository
- Create a new branch for your feature/fix
- Submit a Pull Request
Development Workflow
- Fork the repo
- Create a new branch
git checkout -b feature/your-feature-name- Make your changes
- Commit with clear, descriptive messages
- Push to your fork
- Create a Pull Request
Code Style Guidelines
- Follow the existing code style
- Use meaningful variable and function names
- Comment complex logic
- Write tests for new features
- Keep components modular and reusable
Current Priority Areas
-
Payment Integration Improvements
- Webhook implementations
- Payment status tracking
- Account connection error handling
-
Invoice Template System
- New template designs
- Template customization options
- PDF generation
-
Email System
- Email template design
- Delivery tracking
- Bounce handling
Project Structure
Setting Up Payment Providers
Stripe Setup
- Create a Stripe account
- Get API keys from dashboard
- Configure webhook endpoints
- Add keys to environment variables
PayPal Setup
- Create a PayPal Developer account
- Create an application
- Get Client ID and Secret
- Configure OAuth scopes
- Add credentials to environment variables
and so on...
Running Tests
npm run test
# or
yarn testDeployment
(Deployment instructions to be added)
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Thank you to all contributors who help make this project better! ๐
Don't forget to โญ the repo if you like what you see!
On this page
Languages
JavaScript99.3%CSS0.7%HTML0.1%
Contributors
MIT License
Created February 14, 2025
Updated June 4, 2025