A Duolingo-style gamified financial literacy platform designed to empower women through bite-sized, interactive lessons.
FinFemme makes learning personal finance fun and accessible, focusing on budgeting, investing, retirement, credit, and loans. Built for HackViolet 2026.
- XP System - Earn experience points for completing lessons
- Streak Tracking - Maintain daily streaks to stay motivated
- Hearts System - 5 hearts that refill daily, lose hearts on wrong answers
- Levels - Progress through levels as you gain XP
- Multiple-choice and true/false questions
- Immediate feedback with explanations
- Courses covering:
- Budgeting Basics
- Investing Fundamentals
- Retirement Planning
- Credit Management
- Loans & Debt
- Visual learning path with course progression
- Dashboard with XP, level, streak, and hearts display
- Lesson completion tracking with accuracy metrics
- Authentication - Secure sign-up/sign-in with Google OAuth or email/password
- Responsive Design - Mobile-first experience with beautiful UI components
- Smooth Animations - Delightful transitions powered by Framer Motion
| Technology | Version | Purpose |
|---|---|---|
| Next.js | 16.1.6 | React framework with App Router |
| React | 19.2.3 | UI library |
| TypeScript | 5.x | Type-safe JavaScript |
| Tailwind CSS | 4.x | Utility-first CSS framework |
| Shadcn UI | - | Beautiful UI components (Radix UI) |
| Framer Motion | 12.x | Animation library |
| Lucide React | 0.563.0 | Icon library |
| Technology | Version | Purpose |
|---|---|---|
| NextAuth.js | 4.24.13 | Authentication (Google OAuth + Credentials) |
| Prisma | 5.22.0 | Type-safe ORM |
| SQLite | - | Database (easily scalable to PostgreSQL) |
| bcryptjs | 3.x | Password hashing |
| Service | Purpose |
|---|---|
| Vercel | Hosting & deployment |
src/
├── app/ # Next.js App Router pages
│ ├── api/ # API routes
│ │ ├── auth/ # NextAuth.js routes
│ │ └── progress/ # Progress tracking endpoints
│ ├── dashboard/ # Main dashboard
│ ├── lesson/[id]/ # Dynamic lesson pages
│ ├── budgeting/ # Course: Budgeting
│ ├── investing/ # Course: Investing
│ ├── retirement/ # Course: Retirement
│ ├── credit/ # Course: Credit
│ ├── loans/ # Course: Loans
│ ├── quests/ # Daily quests
│ ├── friends/ # Social features
│ └── onboarding/ # User onboarding flow
├── components/ # Reusable UI components
│ ├── ui/ # Shadcn UI components
│ ├── sidebar.tsx # Navigation sidebar
│ ├── course-card.tsx # Course display card
│ ├── lesson-card.tsx # Lesson display card
│ ├── learning-path.tsx # Visual progress path
│ ├── xp-progress.tsx # XP progress bar
│ ├── heart-display.tsx # Hearts UI
│ └── streak-badge.tsx # Streak display
├── data/ # Static lesson data
│ └── lessons.ts # Course & lesson definitions
├── lib/ # Utility functions
│ ├── prisma.ts # Prisma client
│ └── utils.ts # Helper functions
└── types/ # TypeScript definitions
└── next-auth.d.ts # NextAuth type extensions
prisma/
├── schema.prisma # Database schema
├── dev.db # SQLite database (local)
└── migrations/ # Database migrations
- Node.js 18+
- npm or yarn
-
Clone the repository
git clone https://github.com/aadils29/hackviolet26.git cd hackviolet26 -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
Configure your
.envfile:DATABASE_URL="file:./dev.db" NEXTAUTH_SECRET="your-secret-key" NEXTAUTH_URL="http://localhost:3000" GOOGLE_CLIENT_ID="your-google-client-id" GOOGLE_CLIENT_SECRET="your-google-client-secret"
-
Set up the database
npx prisma migrate dev npx prisma generate
-
Run the development server
npm run dev
-
Open the app Visit http://localhost:3000 in your browser
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run start |
Start production server |
npm run lint |
Run ESLint |
npx prisma studio |
Open Prisma database GUI |
npx prisma migrate dev |
Run database migrations |
The app uses Prisma with SQLite for data persistence:
- User - User accounts with NextAuth.js integration
- UserProgress - XP, level, streak, and hearts tracking
- LessonProgress - Individual lesson completion and accuracy
- Account - OAuth provider accounts
- Session - User sessions
Contributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.
Built for HackViolet 2026