🚀 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.
- 📝 Customizable invoice templates
- 💌 Direct email delivery to clients
- 💳 Multiple payment gateway integrations
- 📊 Real-time payment tracking
- 📱 Responsive dashboard interface
- 🔒 Secure payment processing
- Stripe
- PayPal
- Flutterwave
- Paystack
- Skrill
- GooglePay
- 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
The frontend uses VITE_API_URL as the shared API origin for authentication,
workspace data, usage, and billing. It must point to the Express server, not
another application using the same port.
For example, when port 3000 is occupied:
# server/.env
PORT=3001
BACKEND_URL=http://localhost:3001
FRONTEND_URL=http://localhost:5173
# frontend/.env.development.local
VITE_API_URL=http://localhost:3001Run npm run dev separately in server/ and frontend/. Restart the backend
after changing its environment; restart Vite if it does not reload the frontend
environment automatically. GET http://localhost:3001/api/health should return
{"service":"proforma-api","status":"ok"}. An HTML response means the request
has reached a different application.
- Node.js (v16 or higher)
- npm or yarn
- Git
- 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 devWe welcome contributions of all sizes! Here's how you can help:
- 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
- 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
- Follow the existing code style
- Use meaningful variable and function names
- Comment complex logic
- Write tests for new features
- Keep components modular and reusable
-
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
- Create a Stripe account
- Get API keys from dashboard
- Configure webhook endpoints
- Add keys to environment variables
- Create a PayPal Developer account
- Create an application
- Get Client ID and Secret
- Configure OAuth scopes
- Add credentials to environment variables
and so on...
npm run test
# or
yarn test(Deployment instructions to be added)
This project is licensed under the MIT License - see the LICENSE file for details.
Thank you to all contributors who help make this project better! 🙏
Don't forget to ⭐ the repo if you like what you see!