FinWise.ly is a modern, AI-powered personal finance management platform that helps users track their expenses, set financial goals, and learn about personal finance through interactive content and AI assistance.
All planned features have been successfully implemented and the application is ready for use!
The main dashboard provides an overview of financial health, recent transactions, and goal progress
Feature | Description |
---|---|
Financial Overview | Track income, expenses, and savings at a glance |
Goal Tracking | Visual progress bars for financial goals |
AI Assistant | Get personalized financial advice through natural language |
Learning Hub | Access curated financial education resources |
-
📊 Advanced Dashboard
- Real-time financial health overview
- Interactive expense tracking and categorization
- Dynamic charts and visualizations for expense analysis
- Monthly budget overview
-
💰 Smart Finance Management
- Manual expense tracking and categorization
- Budget planning and tracking
- Transaction history
- Expense analytics and insights
-
🎯 Goal Setting & Tracking
- Custom financial goal creation
- Progress tracking with visual indicators
- Milestone celebrations
- Goal-based savings suggestions
-
📚 Interactive Learning Hub
- Comprehensive financial education modules
- Interactive quizzes with scoring system
- Video tutorials on financial topics
- Progress tracking
- Downloadable resources
-
🤖 AI Financial Assistant
- Natural language query processing
- Basic financial advice
- Budget suggestions
- Learning recommendations
-
🔒 Security
- Secure authentication with Firebase
- Protected routes
- Email verification
-
📱 User Experience
- Responsive design for all devices
- Intuitive navigation
- Real-time updates
- Framework: Next.js 15
- Language: TypeScript
- Styling: Tailwind CSS with custom theming
- UI Components:
- State Management: React Hooks
- Charts: Recharts for financial visualizations
- Framework: Next.js API Routes
- Database: Firebase Firestore
- Authentication: NextAuth.js with Firebase
- AI Integration: Google Generative AI (Gemini)
- File Storage: Firebase Storage
- Security: Firebase Rules
- Google Generative AI (Gemini): For financial advice and conversational assistance
- Firebase Authentication: For user management and security
- Firebase Firestore: For storing user data, transactions, and goals
- Firebase Storage: For storing user documents and images
- NextAuth.js: For authentication flow management
- YouTube Data API: For fetching financial education videos in the learning section
Before you begin, ensure you have the following installed:
git clone https://github.com/JyotirmoyDas05/finwise.ly.git
cd finwise-ly
npm install
# or
yarn install
- Go to the Firebase Console
- Click on "Add project" and create a new project
- Once your project is created, click on "Web" to add a web app to your project
- Register your app with a nickname and click "Register app"
- Copy the Firebase configuration values for the next step
- In the Firebase Console, go to "Authentication" in the left sidebar
- Click on "Get Started"
- Enable the "Email/Password" and "Google" providers
- For Google provider, configure the OAuth consent screen as prompted
- In the Firebase Console, go to "Firestore Database" in the left sidebar
- Click on "Create database"
- Start in production mode and choose a location closest to your users
- Set up the following collections:
users
: To store user profilestransactions
: To store financial transactionsgoals
: To store financial goalslearn
: To store learning resources
- In the Firebase Console, go to "Storage" in the left sidebar
- Click on "Get Started"
- Select the default rules and click "Next"
- Choose a location closest to your users
- Go to the Google AI Studio
- Create an account or sign in with your Google account
- Navigate to "API Keys" or "Get API Key"
- Create a new API key and make sure it has access to the Gemini model
- Copy the API key for the next step
- Go to the Google Cloud Console
- Create a new project or select an existing one
- Navigate to "APIs & Services" > "Library"
- Search for "YouTube Data API v3" and click on it
- Click "Enable" to activate the API for your project
- After enabling, go to "APIs & Services" > "Credentials"
- Click "Create Credentials" and select "API key"
- Copy the generated API key for the next step
- (Optional but recommended) Restrict the API key to only be used with YouTube Data API
Create a .env.local
file in the root directory with the variables from the provided .env.example
file:
# Firebase Configuration
NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_firebase_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_firebase_app_id
# Google AI API
GOOGLE_AI_API_KEY=your_google_ai_api_key
# YouTube Data API
YOUTUBE_API_KEY=your_youtube_api_key
# NextAuth Configuration
NEXTAUTH_SECRET=any_random_string_for_security
NEXTAUTH_URL=http://localhost:3000
Replace all placeholders with your actual values from the previous setup steps.
For beginners: An .env.example
file is included in the repository to use as a template. You can copy this file and rename it to .env.local
, then fill in your own API keys and credentials.
npm run dev
# or
yarn dev
Open http://localhost:3000 in your browser.
To create a production build:
npm run build
# or
yarn build
To start the production server:
npm start
# or
yarn start
finwise-ly/
├── src/
│ ├── app/ # Next.js app directory
│ │ ├── api/ # API routes
│ │ ├── components/ # Page-specific components
│ │ ├── context/ # React context providers
│ │ ├── dashboard/ # Dashboard pages
│ │ ├── login/ # Authentication pages
│ │ ├── profile-setup/ # User onboarding
│ │ ├── signup/ # Registration pages
│ │ ├── lib/ # App-specific utilities
│ │ ├── globals.css # Global styles
│ │ └── layout.tsx # Root layout
│ ├── components/ # Shared components
│ │ ├── ui/ # UI components library
│ │ ├── charts/ # Chart components
│ │ ├── forms/ # Form components
│ │ ├── educational-card.tsx
│ │ ├── video-tutorial-card.tsx
│ │ ├── expense-distribution-chart.tsx
│ │ ├── budget-comparison-chart.tsx
│ │ ├── expense-breakdown-chart.tsx
│ │ └── dashboard-skeleton.tsx
│ ├── data/ # Static data and constants
│ │ ├── quiz/ # Quiz questions and answers
│ │ └── tutorials/ # Learning resources
│ ├── hooks/ # Custom React hooks
│ └── lib/ # Shared utilities
│ ├── firebase/ # Firebase configuration
│ ├── auth/ # Authentication utilities
│ └── ai/ # AI integration utilities
├── public/ # Static assets
│ ├── images/ # Image assets
│ └── icons/ # Icon assets
├── .env.example # Environment variables template
├── .env.local # Local environment variables
└── package.json # Project dependencies
The dashboard provides a comprehensive overview of your financial health, including expense tracking, income monitoring, and goal progress.
Users can add, categorize, and analyze expenses. The system automatically categorizes expenses and provides insights on spending patterns.
Set financial goals with target amounts and dates. The system provides progress tracking and suggestions to help achieve goals faster.
Access a library of financial education resources, from basic concepts to advanced investment strategies.
The AI-powered assistant can answer financial questions, provide personalized advice, and help with budgeting decisions.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, email [email protected] or join our Discord Channel(To be Given soon).
- Next.js team for the amazing framework
- Firebase team for the backend services
- Google AI team for the generative AI capabilities
- All contributors who have helped shape this project