Here’s the About the Project story reorganized to match those Devpost sections:
## Inspiration
Freelancers and small businesses can receive payments through PayPal yet still struggle to understand what their records show after fees, currency differences, and invoice statuses are considered. A transaction list alone does not explain which fees were actually recorded, what remains unpaid, or where information is missing.
We built PayLeak to bring those records and workflows into one place—and to make a distinction between verified data and estimates.
## What it does
PayLeak is a financial management application for freelancers and businesses that receive payments through PayPal.
- **Dashboard:** Summarizes confirmed PayPal payments, gross volume by currency, recorded fees, invoice statuses, and monthly transaction activity. It keeps currencies separate and does not replace missing fee or conversion data with estimates.
- **Transactions:** Synchronizes PayPal transaction records and provides a filterable history with transaction details. Actual PayPal values remain distinct from PayLeak calculations.
- **Money Leak Analysis:** Provides an editable scenario calculator for modeling fees, GST, and currency-conversion assumptions. It is not a live-rate feed or an automated detector of losses in synced transactions.
- **Invoices:** Lists PayLeak and PayPal invoices, with search, status filters, CSV export, and invoice details. PayLeak drafts can be created and, when PayPal permissions allow, published as PayPal drafts. Sending is a separate, explicit action; a draft is not a sent or paid invoice.
- **AI invoice drafting:** Users describe an invoice in natural language. Groq extracts structured details, and PayLeak validates them and asks for missing information rather than guessing.
- **Financial AI assistant:** Google Gemini answers questions using authenticated financial records and backend-calculated evidence. It can provide client summaries and PDF reports where records can be linked to a client. Amounts remain grouped by currency, and missing information is disclosed.
- **Notifications:** Users can review and manage stored notifications. For overdue invoices, PayLeak can save and display a reminder draft; it does not send the reminder.
The current PayPal integration uses a shared, server-configured Sandbox account rather than individual seller-account connections. The available records do not include project expenses, so PayLeak does not determine complete net profit or project profitability.
## How we built it
The frontend uses React, JavaScript, and Vite. A Node.js, TypeScript, and Express backend validates requests, applies financial calculations, stores records in MongoDB through Mongoose, and communicates with PayPal and AI providers.
PayPal REST APIs support transaction search, invoice workflows, and a separate Sandbox checkout flow. Gemini and Groq have distinct roles: Gemini explains financial records and contributes insights to reports; Groq extracts invoice details into structured data for validation by the backend. PayLeak uses Decimal.js for money calculations and PDFKit for client reports.
Passwords are hashed, authenticated sessions use HTTP-only cookies, and PayPal and AI credentials are managed by the backend rather than exposed in the browser.
## Challenges we ran into
- PayPal permissions vary by API operation: read access does not automatically establish permission to create or send invoices.
- Transaction records can contain refunds, reversals, different fee currencies, or missing conversion details. Treating every record as a completed payment or combining currencies would produce misleading totals.
- Local drafts, PayPal drafts, sent invoices, and paid invoices must remain distinct.
- AI-generated invoice details need structured validation and clarification when required facts are missing.
- Financial explanations must distinguish PayPal-reported values from PayLeak calculations and avoid inventing unavailable costs.
- Reminder drafting and reminder delivery are separate workflows; the current Notifications feature only saves and displays drafts.
## Accomplishments that we're proud of
We brought PayPal transaction and invoice workflows together with financial summaries and two AI-assisted experiences. The invoice assistant turns natural-language descriptions into validated draft details, while the Gemini assistant works from supplied account records rather than treating missing information as fact.
We’re also proud that the application keeps important boundaries visible: currencies are not combined, unavailable values are not presented as zero, and invoice drafts are not described as sent or paid.
## What we learned
We learned that financial software needs to communicate data provenance and limitations, not just totals. AI is most useful here when paired with backend validation, deterministic calculations, and clear rules about what the underlying records can support.
We also learned to treat multi-currency data carefully and to avoid calling revenue after recorded fees “profit” when project and expense records are not available.
## What's next for PayLeak
Potential next steps include per-merchant PayPal authorization where supported, verified conversion and bank-settlement data, and client, project, and expense-management workflows. These could support more complete profitability analysis.
We would also like to add a supported reminder-delivery workflow. Today, PayLeak saves reminder drafts but does not send them.
Built With
- css
- express.js
- fintech
- full-stack-development
- generative-ai
- google-gemini
- groq
- javascript
- mongodb
- mongoose
- node.js
- paypal
- paypal-rest-api
- pdfkit
- react
- render
- rest-api
- typescript
- vite