A website made as a sort of webpage where I can put any crazy ideas that come to mind. Right now its only functionality is a modern receipt management and sharing system. Effortlessly split bills using AI!
🌐 Live Site: https://bragster.vercel.app
- 📸 Receipt Scanning: Automatically extract data from receipts using AI
- 📋 Receipt Management: Organize and track all your receipts in one place
- 🤝 Smart Receipts: Split bills and share receipts with others
- 🔐 Secure Authentication: Built-in authentication system
- 💰 Multi-Currency Support: Handle receipts in different currencies and languages
Before you begin, ensure you have the following installed:
- Node.js (version 18 or higher)
- pnpm (recommended package manager)
- PostgreSQL (or another database supported by Prisma)
You'll also need:
- An Azure account for Form Recognizer API (optional, for receipt scanning)
- Database connection string
-
Clone the repository
git clone <repository-url> cd Bragster
-
Install dependencies
pnpm install
-
Set up environment variables
Create a
.envfile in the root directory with the following variables:# Database DATABASE_URL="postgresql://user:password@localhost:5432/bragster" # NextAuth NEXTAUTH_URL="http://localhost:3000" NEXTAUTH_SECRET="your-secret-key-here" # Azure Form Recognizer (optional) AZURE_FORM_RECOGNIZER_ENDPOINT="your-azure-endpoint" AZURE_FORM_RECOGNIZER_KEY="your-azure-key"
-
Set up the database
Run Prisma migrations to set up your database schema:
npx prisma migrate dev --schema=./src/prisma/schema.prisma
Generate Prisma client:
pnpm run prisma-generate
Start the development server:
pnpm devThe application will be available at http://localhost:3000
Build the application for production:
pnpm buildStart the production server:
pnpm startRun Storybook for component development and testing:
pnpm storybookStorybook will be available at http://localhost:6006
pnpm dev- Start development serverpnpm build- Build for productionpnpm start- Start production serverpnpm storybook- Start Storybook for component developmentpnpm build-storybook- Build Storybook static sitepnpm prisma-generate- Generate Prisma clientpnpm lint- Run linterpnpm lint:fix- Fix linting issues automatically
To create a new database migration:
npx prisma migrate dev --name your_migration_name --schema=./src/prisma/schema.prisma
pnpm run prisma-generate/src/app- Next.js app directory with routes and pages/src/components- Reusable React components/src/lib- Utility libraries and shared logic/src/prisma- Database schema and migrations/src/types- TypeScript type definitions/src/utils- Helper functions and utilities
- Framework: Next.js 15 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- Database: Prisma ORM
- Authentication: NextAuth.js
- UI Components: Radix UI
- State Management: TanStack Query
- AI/ML: Azure AI Form Recognizer
- Form Handling: React Hook Form + Zod