A Next.js application that helps you track and analyze your cab receipts by connecting to your Gmail account and automatically extracting receipt data.
- ⚡ Next.js 15 with App Router
- 🔒 Authentication with Clerk
- 📧 Gmail API integration to fetch cab receipts
- 📊 Receipt data extraction and parsing
- 📅 Date range filtering
- 📊 Receipt statistics and analytics
- 🎨 Tailwind CSS with shadcn/ui components
- 🌙 Light/dark mode support
- 🧰 TypeScript support
- 🛠 Development tools setup (ESLint, Prettier)
- 🗃 Database integration with DrizzleORM and PostgreSQL
-
Clone the repository:
git clone <repository-url> cd cab-receipts
-
Install dependencies:
pnpm install
-
Copy the example environment file:
cp .env.example .env
-
Set up required environment variables in .env file:
- Clerk authentication keys:
- NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
- CLERK_SECRET_KEY
- Gmail API credentials:
- GOOGLE_CLIENT_ID
- GOOGLE_CLIENT_SECRET
- Database connection:
- DATABASE_URL
- Clerk authentication keys:
-
Start the development server:
pnpm dev
Open http://localhost:3000 with your browser to see the result.
/src/app- Application routes and pages/src/components- Reusable UI components/src/db- Database configuration and schema/src/lib- Utility functions and shared logic/src/lib/email-client- Gmail API integration/src/lib/receipt-parser- cab receipt parsing logic
/src/types- TypeScript type definitions
- Sign in with Clerk authentication
- Connect your Gmail account
- Select a date range to search for cab receipts
- View and analyze your receipt data
- Export or manage your receipt information
- Next.js Documentation
- Clerk Documentation
- Gmail API Documentation
- Tailwind CSS Documentation
- DrizzleORM Documentation
This project is licensed under the MIT License.