An open API service indexing awesome lists of open source software.

https://github.com/bernietv/financial-saas-platform

Next-gen AI finance app rocking the MERN stack & TypeScript β€” slick analytics, set-and-forget automation, and a UX that just hits different πŸ’Έβš‘πŸ“ˆπŸ”₯
https://github.com/bernietv/financial-saas-platform

cloudinary expressjs gemini-ai mongodb nodejs reactjs redux-toolkit resend shadcn-ui tailwindcss tanstack-table typescript

Last synced: 3 months ago
JSON representation

Next-gen AI finance app rocking the MERN stack & TypeScript β€” slick analytics, set-and-forget automation, and a UX that just hits different πŸ’Έβš‘πŸ“ˆπŸ”₯

Awesome Lists containing this project

README

          

Project Banner

# 🌟 Financial SaaS Platform πŸ’Ή

> πŸ’Έ A professional, AI-powered financial management system built with the MERN stack and TypeScript, designed to deliver robust analytics, automation, and a premium user experience. πŸš€βœ¨πŸ“Š

---

## πŸ“– Project Description πŸ“

Financial SaaS Platform is a modern, cloud-based personal and business finance management application. It empowers users to track πŸ’³ transactions, analyze πŸ“ˆ spending patterns, automate πŸ” recurring payments, and receive πŸ€– AI-assisted insights. The platform combines advanced backend data processing with a sleek, responsive frontend, delivering a seamless experience for individuals and organizations alike. With features like AI-powered receipt scanning 🧾, monthly automated reports πŸ“…, and rich data visualizations πŸ“Š, it helps users make informed financial decisions with minimal effort.

---

## πŸš€ Core Features 🌐

- πŸ”’ **Authentication & Security:** Email + Password login, JWT-based authentication with refresh tokens.
- πŸ’³ **Transaction Management:** Create, edit, duplicate, bulk delete transactions with ease.
- πŸ€– **AI-Driven Receipt Scanning:** Integrates Google AI to automatically extract transaction data from receipts.
- πŸ“Š **Advanced Analytics:** MongoDB Aggregation Pipelines for real-time, data-rich dashboards.
- πŸ“ˆ **Data Visualization:** Expense breakdown pie charts, income/expense trend lines, and interactive tables.
- πŸ“… **Date Range Filtering:** Customizable ranges, including presets such as last 30 days.
- πŸ” **Recurring Transactions:** Automated scheduling via cron jobs.
- πŸ“§ **Automated Monthly Reports:** Generated and sent to users via email.
- πŸ“₯ **Data Import & Export:** CSV transaction import with column mapping.
- πŸ‘€ **Profile Management:** Cloudinary-powered profile photo uploads.

---

## πŸ“‚ Project Structure πŸ“

```
financial-saas/
β”œβ”€β”€ backend/ # API server built with Node.js, Express, and MongoDB
β”‚ β”œβ”€β”€ src/
β”‚ β”‚ β”œβ”€β”€ config/ # Environment, database, and third-party configurations
β”‚ β”‚ β”œβ”€β”€ controllers/ # Request handling and response logic
β”‚ β”‚ β”œβ”€β”€ cron/ # Scheduled jobs and task scheduling
β”‚ β”‚ β”œβ”€β”€ enums/ # Application-wide constants and enumerations
β”‚ β”‚ β”œβ”€β”€ mailers/ # Email sending logic and templates
β”‚ β”‚ β”œβ”€β”€ middlewares/ # Request validation, error handling, authentication
β”‚ β”‚ β”œβ”€β”€ models/ # Mongoose schemas for data persistence
β”‚ β”‚ β”œβ”€β”€ routes/ # API endpoint definitions
β”‚ β”‚ β”œβ”€β”€ services/ # Business logic and reusable modules
β”‚ β”‚ β”œβ”€β”€ utils/ # Utility functions (date helpers, currency formatters, etc.)
β”‚ β”‚ └── validators/ # Data validation schemas
β”‚ β”œβ”€β”€ package.json
β”‚ └── tsconfig.json
β”‚
β”œβ”€β”€ client/ # Web application built with React, TypeScript, and TailwindCSS
β”‚ β”œβ”€β”€ src/
β”‚ β”‚ β”œβ”€β”€ app/ # Global state management and API client configuration
β”‚ β”‚ β”œβ”€β”€ assets/ # Images, icons, and static media
β”‚ β”‚ β”œβ”€β”€ components/ # Reusable UI components and widgets
β”‚ β”‚ β”œβ”€β”€ features/ # Redux slices and feature-specific logic
β”‚ β”‚ β”œβ”€β”€ hooks/ # Custom React hooks
β”‚ β”‚ β”œβ”€β”€ layouts/ # Page layouts for consistent UI structure
β”‚ β”‚ β”œβ”€β”€ pages/ # Page-level components
β”‚ β”‚ β”œβ”€β”€ routes/ # Route configuration and protected routes
β”‚ β”œβ”€β”€ public/ # Publicly accessible static files
β”‚ β”œβ”€β”€ package.json
β”‚ └── vite.config.ts
```

---

## πŸ”§ Backend Environment Variables βš™οΈ

```env
PORT="*"
NODE_ENV="*"

MONGO_URI="*"

JWT_SECRET="*"
JWT_EXPIRES_IN="*"

JWT_REFRESH_SECRET="*"
JWT_REFRESH_EXPIRES_IN="*"

GEMINI_API_KEY="*"

CLOUDINARY_CLOUD_NAME="*"
CLOUDINARY_API_KEY="*"
CLOUDINARY_API_SECRET="*"

RESEND_API_KEY="*"
RESEND_MAILER_SENDER="*"

FRONTEND_ORIGIN="*"
```

## 🎨 Frontend Environment Variables 🎯

```env
VITE_API_URL="*"
VITE_REDUX_PERSIST_SECRET_KEY="*"
```

---

## πŸ› οΈ Technology Stack 🧩

**Frontend:**

- βš›οΈ React 18 for building a performant, component-driven UI.
- πŸ“ TypeScript for type-safe, maintainable codebases.
- 🎨 TailwindCSS for utility-first, responsive styling.
- πŸ–ŒοΈ Shadcn UI for accessible, production-ready UI components.
- πŸ“¦ Redux Toolkit for state management and API data caching.
- πŸ“Š @tanstack/react-table for advanced, customizable, and performant data tables.

**Backend:**

- 🟩 Node.js (v18+) for scalable, event-driven server logic.
- πŸ› οΈ Express.js for structured and maintainable RESTful APIs.
- πŸ“ TypeScript for backend code consistency and safety.
- πŸƒ MongoDB with Mongoose for flexible, schema-based data persistence.
- πŸ” JSON Web Tokens (JWT) for secure authentication.
- ⏲️ Node-cron for task automation.

**AI & Cloud Integrations:**

- πŸ€– Google Gemini API for intelligent document parsing and data extraction.
- ☁️ Cloudinary for optimized media storage and delivery.
- πŸ“§ Resend for transactional and automated email services.

---

## πŸ“¦ Installation πŸ“₯

```bash
git clone https://github.com/BernieTv/Financial-SAAS-Platform.git
cd Financial-SAAS-Platform

# Install backend dependencies
cd backend && npm install

# Install frontend dependencies
cd ../client && npm install
```

---

## ▢️ Running Locally πŸ’»

```bash
# Start backend
cd backend && npm run dev

# Start frontend
cd ../client && npm run dev
```

> ⚠️ Ensure `.env` files are correctly configured before running.