https://github.com/manineedtosleep/fintech_app
A Nordic-inspired financial management platform with secure authentication, transaction tracking, interactive analytics, and comprehensive financial planning tools, built on Next.js 14 with TypeScript and Prisma.
https://github.com/manineedtosleep/fintech_app
banking financial-tools fintech jwt-authentication nextjs nordic-design postgresql prisma tawilwindcss typescript
Last synced: about 2 months ago
JSON representation
A Nordic-inspired financial management platform with secure authentication, transaction tracking, interactive analytics, and comprehensive financial planning tools, built on Next.js 14 with TypeScript and Prisma.
- Host: GitHub
- URL: https://github.com/manineedtosleep/fintech_app
- Owner: ManINeedToSleep
- License: mit
- Created: 2025-01-13T14:27:54.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-05T16:12:47.000Z (over 1 year ago)
- Last Synced: 2025-04-08T11:51:38.530Z (about 1 year ago)
- Topics: banking, financial-tools, fintech, jwt-authentication, nextjs, nordic-design, postgresql, prisma, tawilwindcss, typescript
- Language: TypeScript
- Homepage: https://fin-tech-app-bay.vercel.app
- Size: 146 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Fintech Financial Bank
A modern financial management application with Nordic-inspired design, built with Next.js 14, TypeScript, and Prisma. Features a cosmic aurora theme, real-time financial tracking, and comprehensive financial tools.
## ✨ Features
### Core Features
- 🔐 Secure JWT authentication
- 💳 Transaction management (deposits, withdrawals, transfers)
- 📊 Interactive financial analytics with Recharts
- 🧮 Comprehensive financial calculators
- 🌌 Nordic-inspired cosmic design system
### Financial Tools
- 💰 Savings calculator
- 🏦 Loan calculator
- 📈 Investment planner
- 💵 Tax calculator
- 🏠 Mortgage calculator
- 🎯 Retirement planner
### Design System
- 🌠 Aurora borealis animations
- ⭐ Twinkling star effects
- 🎨 Nordic color palette
- 🌊 Glass-morphism UI elements
- 📱 Fully responsive design
## 🎨 Theme Colors
```css
:root {
--aurora-green: #7CFCD0;
--nordic-blue: #1E3D59;
--frost-blue: #E2E8F0;
--northern-pink: #FF61A6;
--snow-white: #F7F9FC;
}
```
## 🛠 Tech Stack
- **Framework**: Next.js 14 (App Router)
- **Language**: TypeScript
- **Database**: Neon PostgreSQL
- **ORM**: Prisma
- **Styling**: Tailwind CSS
- **Authentication**: JWT + bcrypt
- **Charts**: Recharts
- **Animations**: CSS + React
- **Icons**: FontAwesome
- **Deployment**: Vercel
## 📦 Installation
1. Clone the repository:
```bash
git clone https://github.com/yourusername/fintech-bank.git
cd fintech-bank
```
2. Install dependencies:
```bash
npm install
```
3. Set up environment variables:
```env
# Database (Neon)
DATABASE_URL="postgresql://user:password@endpoint/database"
DIRECT_URL="postgresql://user:password@endpoint/database"
# Authentication
JWT_SECRET="your-secret-key"
JWT_EXPIRES_IN="7d"
```
4. Initialize database:
```bash
npx prisma generate
npx prisma db push
npx prisma db seed
```
5. Run development server:
```bash
npm run dev
```
## 🚀 Deployment on Vercel
1. Connect your repository to Vercel
2. Add your environment variables in Vercel dashboard:
```env
DATABASE_URL="your-neon-db-url"
DIRECT_URL="your-neon-direct-url"
JWT_SECRET="your-secret"
JWT_EXPIRES_IN="7d"
```
3. Add build command override (optional, if needed):
```bash
prisma generate && next build
```
4. Deploy!
> **Note**: Prisma Client needs to be generated during build time on Vercel. The build command in package.json already includes `prisma generate` to handle this automatically.
## 📊 Database Schema
```prisma
model User {
id Int @id @default(autoincrement())
email String @unique
username String
passwordHash String
firstName String?
lastName String?
accounts Account[]
transactions Transaction[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model Account {
id Int @id @default(autoincrement())
accountType AccountType
accountName String
balance Float @default(0)
userId Int
user User @relation(fields: [userId], references: [id])
transactions Transaction[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model Transaction {
id Int @id @default(autoincrement())
type TransactionType
amount Float
description String
accountId Int
account Account @relation(fields: [accountId], references: [id])
userId Int
user User @relation(fields: [userId], references: [id])
categoryId Int
category Category @relation(fields: [categoryId], references: [id])
createdAt DateTime @default(now())
}
model Category {
id Int @id @default(autoincrement())
name String
type TransactionType
icon String
transactions Transaction[]
@@unique([name, type])
}
enum AccountType {
CHECKING
SAVINGS
INVESTMENT
}
enum TransactionType {
DEPOSIT
WITHDRAWAL
TRANSFER
}
```
## 🔒 API Routes
### Authentication
- `POST /api/auth/register` - Create new account
- `POST /api/auth/login` - User login
- `GET /api/user` - Get user profile
### Transactions
- `GET /api/transactions` - List transactions
- `POST /api/transactions/deposit` - Make deposit
- `POST /api/transactions/withdraw` - Make withdrawal
- `POST /api/transactions/transfer` - Make transfer
- `POST /api/transactions/expense` - Record expense
## 🌟 Contributing
1. Fork the repository
2. Create feature branch (`git checkout -b feature/amazing-feature`)
3. Commit changes (`git commit -m 'Add amazing feature'`)
4. Push to branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## 📝 License
This project is licensed under the MIT License.
```