https://github.com/sankalp20tiwari/spendsmart
SpendSmart is a modern finance management web application designed to help users track their expenses, manage budgets, and gain insights into their financial health. Built with cutting-edge technologies.Main highlight of the project is receipt scanning using AI , bot protection and rate limiting using arcjet and using Inngest for cron jobs.
https://github.com/sankalp20tiwari/spendsmart
arcjet clerk inngest nextjs
Last synced: 3 months ago
JSON representation
SpendSmart is a modern finance management web application designed to help users track their expenses, manage budgets, and gain insights into their financial health. Built with cutting-edge technologies.Main highlight of the project is receipt scanning using AI , bot protection and rate limiting using arcjet and using Inngest for cron jobs.
- Host: GitHub
- URL: https://github.com/sankalp20tiwari/spendsmart
- Owner: Sankalp20Tiwari
- Created: 2025-01-29T12:46:55.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-03-02T16:52:28.000Z (4 months ago)
- Last Synced: 2025-03-02T17:32:58.081Z (4 months ago)
- Topics: arcjet, clerk, inngest, nextjs
- Language: JavaScript
- Homepage: https://spend-smart-navy.vercel.app
- Size: 611 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SpendSmart
## ๐ Project Overview
SpendSmart is a modern finance management web application designed to help users track their expenses, manage budgets, and gain insights into their financial health. Built with cutting-edge technologies, SpendSmart offers a seamless user experience with real-time analytics, visualized reports, and AI-powered financial insights. Main highlight of the project is receipt scanning using AI , bot protection and rate limiting using arcjet and using Inngest for cron jobs.
## ๐ผ๏ธ Preview

## ๐ Features
- **User Authentication** using Clerk
- **Expense Tracking** with interactive charts and reports
- **Budget Management** for better financial planning
- **AI-powered financial insights** using Google Generative AI
- **Modern UI/UX** with Tailwind CSS and Radix UI
- **Dark Mode Support** with Next Themes
- **Automated Email Notifications** using Resend
- **Data Validation** using Zod
- **Responsive Design** ensuring accessibility across devices
- **Database Management** with Prisma ORM
- **Bot Protection,Rate Limiting** using Arcjet
- **Cron jobs** using Inngest## ๐ Live Demo
Check out the live version of SpendSmart here: [Live Site](https://spend-smart-navy.vercel.app/)
## ๐ Installation & Setup
To set up and run the project locally, follow these steps:
### Prerequisites
Ensure you have the following installed:
- **Node.js** (Latest LTS version recommended)
- **npm** or **yarn** for package management
- **A PostgreSQL database**
- **Clerk account** for authentication
- **Inngest account** for scheduling cron jobs
- **Arcjet account** for bot protection and rate limiting### Steps to Run
1. **Clone the repository:**
```sh
git clone https://github.com/Sankalp20Tiwari/SpendSmart.git
```2. **Navigate to the project directory:**
```sh
cd SpendSmart
```3. **Install dependencies:**
```sh
npm install # or yarn install
```4. **Configure environment variables:**
Create a `.env` file in the root directory and define the necessary environment variables:
```sh
DATABASE_URL=
DIRECT_URL=
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
RESEND_API_KEY=
GEMINI_API_KEY=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=
NEXT_PUBLIC_CLERK_SIGN_UP_URL=
ARCJET_KEY=```
5. **Run Prisma migrations:**
```sh
npx prisma migrate dev
```6. **Run the development server:**
```sh
npm run dev # or yarn dev
```7. Open [http://localhost:3000](http://localhost:3000) in your browser to view the application.
## ๐ Project Structure
```
SpendSmart/
โโโapp/ # Next.js app directory
โ โโโ(auth)/ # Authentication-related pages
โ โโโ(main)/ # User dashboard pages
โ โโโ(api)/ # API routes
โ โโโlib/ # Schemas
โ โโโlayout.tsx # Layout file
โ โโโpage.tsx # Landing Page
โโโcomponents/ # UI components (Radix, Tailwind, etc.)
โโโdata/ # Static data files
โโโemails/ # Email template
โโโhooks/ # Custom hooks
โโโlib/ # Utility functions
โโโmodels/ # Database models
โโโpublic/ # Static assets (images, icons, etc.)
โโโprisma/ # Prisma schema and migrations
โโโnext.config.ts # Next.js configuration
โโโpackage.json # Project metadata and dependencies
โโโ.env # Environment variables (excluded from Git)
```## ๐ฐ Technologies Used
- **Next.js** - React framework for SSR & SSG
- **React 19** - Latest React version for a fast UI
- **Tailwind CSS** - Modern styling framework
- **Radix UI** - Accessible UI components
- **Clerk** - User authentication and management
- **Prisma** - ORM for database management
- **PostgreSQL** - Database for financial data
- **Google Generative AI** - AI-powered financial insights
- **Resend** - Email automation for notifications
- **Zod** - Data validation for forms and API inputs
- **Arcjet** - Bot protection and rate limiting
- **Inngest** - Used for creating cron jobs## ๐ค Contributing
We welcome contributions to enhance the project! To contribute:
1. Fork the repository.
2. Create a new branch (`feature/your-feature-name`).
3. Implement your changes and commit.
4. Push to your forked repository and submit a pull request.Made with โค๏ธ by Sankalp Tiwari