Latest commit

History

96 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

FlowLedger 💰

A lightweight financial management dashboard for micro and small businesses.


🎨 Links & Resources

Design & Prototype

Live Links & API Documentation


📌 Description

FlowLedger is a web-based SaaS application that helps small business owners and freelancers manage their finances without the complexity of a full ERP system. It provides a clean, intuitive interface for creating invoices, tracking payment statuses, monitoring cash flow, and managing recurring transactions — all in one place.


🧩 Problem Statement

Micro and small businesses often rely on spreadsheets or paper records to manage invoices and cash flow. This approach is error-prone, hard to scale, and offers no real-time visibility into financial health.

FlowLedger solves this by offering:

  • A fast, no-fuss invoicing system with PDF export
  • Real-time payment status tracking
  • Cash flow monitoring with threshold-based visual alerts
  • Automated recurring transaction handling
  • Client management and insights

✨ Key Features

FeatureDescription
📄 Invoice ManagementCreate, edit, send, and delete invoices with line items
🖨️ PDF ExportExport professional invoices as PDF for printing or sharing
💳 Payment TrackingTrack invoices as Paid, Pending, or Overdue
📈 Financial InsightsGet detailed breakdowns of revenue and expenses
📊 Cash Flow DashboardVisual balance overview with threshold-based alerts
🔁 Recurring TransactionsAuto-generate fixed expenses/subscriptions on a schedule
📱 WhatsApp ShareDirectly share invoice details via WhatsApp

🛠 Tech Stack

LayerTechnology
FrontendReact.js, React Router, Axios, Recharts, React Helmet (SEO)
BackendNode.js, Express.js
DatabaseMongoDB with Mongoose ODM
AuthJWT (JSON Web Tokens)
StylingVanilla CSS, Tailwind CSS
PDF Genhtml2pdf.js

🖼 Screenshots

Dashboard
Cash Flow
Clients
Create Invoice
View Invoices
Invoice
Invoice PDF
Payments
Recurring

🗂 Folder Structure

flowledger/
├── frontend/ # React Frontend
│ ├── public/
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ │ ├── Layout/ # Layout components (Sidebar, TopNav)
│ │ │ └── (other UI components)
│ │ ├── pages/ # Route-level pages (Dashboard, Invoices, CashFlow, etc.)
│ │ ├── services/ # API call wrappers (api.js, invoiceService.js, etc.)
│ │ ├── context/ # Global state management (AuthContext, ThemeContext)
│ │ ├── utils/ # Frontend utilities (format.js, whatsapp.js)
│ │ ├── App.jsx
│ │ └── main.jsx
│ ├── package.json
│ ├── vite.config.js
│ └── eslint.config.js
├── backend/ # Express Backend
│ ├── config/ # Database configuration (db.js)
│ ├── controllers/ # Business logic for routes (authController, invoiceController, ...)
│ ├── models/ # Mongoose schemas (User, Invoice, Transaction, etc.)
│ ├── routes/ # API endpoint definitions (authRoutes, invoiceRoutes, ...)
│ ├── middleware/ # Auth and error handling (authMiddleware)
│ ├── utils/ # Backend helpers (dateHelpers.js)
│ ├── index.js # Entry point
│ └── package.json
|
└── README.md

⚙️ Setup Instructions

Prerequisites

  • Node.js >= 18.x
  • MongoDB (local or Atlas URI)

1. Clone the Repository

git clone https://github.com/Jivan-Patel/flowLedger.git
cd flowLedger/flowLedger

2. Configure Environment Variables

Create a .env file inside the backend/ directory:

PORT=5000MONGO_URI=mongodb://localhost:27017/flowledgerJWT_SECRET=your_secret_key

Create a .env file inside the frontend/ directory:

VITE_API_URL=http://localhost:5000

3. Install Dependencies

# Install backend dependenciescd backend
npm install
# Install frontend dependenciescd ../frontend
npm install

4. Run the Application

# Run backend (from backend directory)
npm run dev
# Run frontend (from frontend directory)
npm run dev

5. Access the App

  • Frontend: http://localhost:5173
  • Backend API: http://localhost:5000/api

📁 Deployment

The frontend is configured to automatically point to the production backend when deployed.


👤 Author

Jivan Patel


📜 License

MIT License — free to use and modify.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

96 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

FlowLedger 💰

A lightweight financial management dashboard for micro and small businesses.


🎨 Links & Resources

Design & Prototype

Live Links & API Documentation


📌 Description

FlowLedger is a web-based SaaS application that helps small business owners and freelancers manage their finances without the complexity of a full ERP system. It provides a clean, intuitive interface for creating invoices, tracking payment statuses, monitoring cash flow, and managing recurring transactions — all in one place.


🧩 Problem Statement

Micro and small businesses often rely on spreadsheets or paper records to manage invoices and cash flow. This approach is error-prone, hard to scale, and offers no real-time visibility into financial health.

FlowLedger solves this by offering:

  • A fast, no-fuss invoicing system with PDF export
  • Real-time payment status tracking
  • Cash flow monitoring with threshold-based visual alerts
  • Automated recurring transaction handling
  • Client management and insights

✨ Key Features

FeatureDescription
📄 Invoice ManagementCreate, edit, send, and delete invoices with line items
🖨️ PDF ExportExport professional invoices as PDF for printing or sharing
💳 Payment TrackingTrack invoices as Paid, Pending, or Overdue
📈 Financial InsightsGet detailed breakdowns of revenue and expenses
📊 Cash Flow DashboardVisual balance overview with threshold-based alerts
🔁 Recurring TransactionsAuto-generate fixed expenses/subscriptions on a schedule
📱 WhatsApp ShareDirectly share invoice details via WhatsApp

🛠 Tech Stack

LayerTechnology
FrontendReact.js, React Router, Axios, Recharts, React Helmet (SEO)
BackendNode.js, Express.js
DatabaseMongoDB with Mongoose ODM
AuthJWT (JSON Web Tokens)
StylingVanilla CSS, Tailwind CSS
PDF Genhtml2pdf.js

🖼 Screenshots

Dashboard
Cash Flow
Clients
Create Invoice
View Invoices
Invoice
Invoice PDF
Payments
Recurring

🗂 Folder Structure

flowledger/
├── frontend/ # React Frontend
│ ├── public/
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ │ ├── Layout/ # Layout components (Sidebar, TopNav)
│ │ │ └── (other UI components)
│ │ ├── pages/ # Route-level pages (Dashboard, Invoices, CashFlow, etc.)
│ │ ├── services/ # API call wrappers (api.js, invoiceService.js, etc.)
│ │ ├── context/ # Global state management (AuthContext, ThemeContext)
│ │ ├── utils/ # Frontend utilities (format.js, whatsapp.js)
│ │ ├── App.jsx
│ │ └── main.jsx
│ ├── package.json
│ ├── vite.config.js
│ └── eslint.config.js
├── backend/ # Express Backend
│ ├── config/ # Database configuration (db.js)
│ ├── controllers/ # Business logic for routes (authController, invoiceController, ...)
│ ├── models/ # Mongoose schemas (User, Invoice, Transaction, etc.)
│ ├── routes/ # API endpoint definitions (authRoutes, invoiceRoutes, ...)
│ ├── middleware/ # Auth and error handling (authMiddleware)
│ ├── utils/ # Backend helpers (dateHelpers.js)
│ ├── index.js # Entry point
│ └── package.json
|
└── README.md

⚙️ Setup Instructions

Prerequisites

  • Node.js >= 18.x
  • MongoDB (local or Atlas URI)

1. Clone the Repository

git clone https://github.com/Jivan-Patel/flowLedger.git
cd flowLedger/flowLedger

2. Configure Environment Variables

Create a .env file inside the backend/ directory:

PORT=5000MONGO_URI=mongodb://localhost:27017/flowledgerJWT_SECRET=your_secret_key

Create a .env file inside the frontend/ directory:

VITE_API_URL=http://localhost:5000

3. Install Dependencies

# Install backend dependenciescd backend
npm install
# Install frontend dependenciescd ../frontend
npm install

4. Run the Application

# Run backend (from backend directory)
npm run dev
# Run frontend (from frontend directory)
npm run dev

5. Access the App

  • Frontend: http://localhost:5173
  • Backend API: http://localhost:5000/api

📁 Deployment

The frontend is configured to automatically point to the production backend when deployed.


👤 Author

Jivan Patel


📜 License

MIT License — free to use and modify.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

96 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

FlowLedger 💰

A lightweight financial management dashboard for micro and small businesses.


🎨 Links & Resources

Design & Prototype

Live Links & API Documentation


📌 Description

FlowLedger is a web-based SaaS application that helps small business owners and freelancers manage their finances without the complexity of a full ERP system. It provides a clean, intuitive interface for creating invoices, tracking payment statuses, monitoring cash flow, and managing recurring transactions — all in one place.


🧩 Problem Statement

Micro and small businesses often rely on spreadsheets or paper records to manage invoices and cash flow. This approach is error-prone, hard to scale, and offers no real-time visibility into financial health.

FlowLedger solves this by offering:

  • A fast, no-fuss invoicing system with PDF export
  • Real-time payment status tracking
  • Cash flow monitoring with threshold-based visual alerts
  • Automated recurring transaction handling
  • Client management and insights

✨ Key Features

FeatureDescription
📄 Invoice ManagementCreate, edit, send, and delete invoices with line items
🖨️ PDF ExportExport professional invoices as PDF for printing or sharing
💳 Payment TrackingTrack invoices as Paid, Pending, or Overdue
📈 Financial InsightsGet detailed breakdowns of revenue and expenses
📊 Cash Flow DashboardVisual balance overview with threshold-based alerts
🔁 Recurring TransactionsAuto-generate fixed expenses/subscriptions on a schedule
📱 WhatsApp ShareDirectly share invoice details via WhatsApp

🛠 Tech Stack

LayerTechnology
FrontendReact.js, React Router, Axios, Recharts, React Helmet (SEO)
BackendNode.js, Express.js
DatabaseMongoDB with Mongoose ODM
AuthJWT (JSON Web Tokens)
StylingVanilla CSS, Tailwind CSS
PDF Genhtml2pdf.js

🖼 Screenshots

Dashboard
Cash Flow
Clients
Create Invoice
View Invoices
Invoice
Invoice PDF
Payments
Recurring

🗂 Folder Structure

flowledger/
├── frontend/ # React Frontend
│ ├── public/
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ │ ├── Layout/ # Layout components (Sidebar, TopNav)
│ │ │ └── (other UI components)
│ │ ├── pages/ # Route-level pages (Dashboard, Invoices, CashFlow, etc.)
│ │ ├── services/ # API call wrappers (api.js, invoiceService.js, etc.)
│ │ ├── context/ # Global state management (AuthContext, ThemeContext)
│ │ ├── utils/ # Frontend utilities (format.js, whatsapp.js)
│ │ ├── App.jsx
│ │ └── main.jsx
│ ├── package.json
│ ├── vite.config.js
│ └── eslint.config.js
├── backend/ # Express Backend
│ ├── config/ # Database configuration (db.js)
│ ├── controllers/ # Business logic for routes (authController, invoiceController, ...)
│ ├── models/ # Mongoose schemas (User, Invoice, Transaction, etc.)
│ ├── routes/ # API endpoint definitions (authRoutes, invoiceRoutes, ...)
│ ├── middleware/ # Auth and error handling (authMiddleware)
│ ├── utils/ # Backend helpers (dateHelpers.js)
│ ├── index.js # Entry point
│ └── package.json
|
└── README.md

⚙️ Setup Instructions

Prerequisites

  • Node.js >= 18.x
  • MongoDB (local or Atlas URI)

1. Clone the Repository

git clone https://github.com/Jivan-Patel/flowLedger.git
cd flowLedger/flowLedger

2. Configure Environment Variables

Create a .env file inside the backend/ directory:

PORT=5000MONGO_URI=mongodb://localhost:27017/flowledgerJWT_SECRET=your_secret_key

Create a .env file inside the frontend/ directory:

VITE_API_URL=http://localhost:5000

3. Install Dependencies

# Install backend dependenciescd backend
npm install
# Install frontend dependenciescd ../frontend
npm install

4. Run the Application

# Run backend (from backend directory)
npm run dev
# Run frontend (from frontend directory)
npm run dev

5. Access the App

  • Frontend: http://localhost:5173
  • Backend API: http://localhost:5000/api

📁 Deployment

The frontend is configured to automatically point to the production backend when deployed.


👤 Author

Jivan Patel


📜 License

MIT License — free to use and modify.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages