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

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.

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

![SpendSmart Landing Page](public/landing-page.png)

## ๐Ÿš€ 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