A comprehensive, secure, and user-friendly personal finance management application built with modern web technologies. Take control of your financial future with intuitive budgeting, goal tracking, and insightful analytics.
- Welcome Back Flow: Returning users now get a clearer recovery path from the welcome page straight back to the dashboard.
- MeroShare Automation & Extension Bridge: Added remote Browserless browser support for IPO automation and a global companion extension bridge for seamless sync.
- Dropbox Sync & Security: Upgraded flows to remember backup PINs, validate OAuth scopes, and revoke active tokens on disconnect.
- Portfolio Snapshots: Enriched views with grouped price histories, live value previews, dividend what-if planning, and conventional transaction drafts.
- Budget Boundaries: Fixed transaction counting to start exactly from the 1st day of the active month/week, and redesigned the exceeded budget UI with premium red-bordered dark glows.
- Goal & Challenge UX: Streamlined expanded goals into a clean Key Metrics Grid, restored Hard Plan Point/Penalty tracking with 'Use for Investment' actions, and stabilized transaction history scrolls.
- Bug Fix: Improved decimal number formatting and precision for better financial calculations
- NEPSE Integration: Real-time Nepali stock market data, IPO tracking, and MeroShare automation
- Portfolio Management: Comprehensive stock and crypto portfolio with market snapshots and notifications
- SIP Plans: Systematic Investment Plan automation with transaction enrollment
- Dropbox Backup: Secure cloud backup with selective data import/export
- Biometric Authentication: Enhanced security with fingerprint and face recognition
- Timed Wallet Mode: Track expenses in terms of work hours with time-equivalent calculations
- Fast Debt: New debt account type for interest-free loans
- Bill Reminders: Never miss payment deadlines with automated reminders
- Enhanced UI: Improved mobile responsiveness, theme customization, and accessibility
- PWA Improvements: Better offline support and automatic update notifications
- Transaction Tracking: Record and categorize all your income and expenses
- Budget Management: Set spending limits with subcategories and monitor your progress
- Goal Setting: Save for your dreams with visual progress tracking and auto-contribution
- Goal Challenges: Gamified savings with penalty tracking and investment rewards
- Category Organization: Custom categories for better expense analysis
- Debt & Credit Management: Track loans, credit cards, and repayment plans
- Fast Debt: Interest-free debt accounts for quick borrowing
- Timed Wallet Mode: Track expenses in terms of work hours with time-equivalent calculations
- Financial Health Score: Get a comprehensive view of your financial wellness
- Spending Trends: Visualize your spending patterns over time
- Category Performance: Analyze which categories are consuming your budget
- Scenario Planning: Calculate how long it takes to reach your financial goals
- Achievements System: Unlock achievements for financial milestones
- PIN Lock: Secure your app with a customizable PIN
- Biometric Authentication: Use fingerprint or face recognition (where supported)
- Data Encryption: All sensitive data is encrypted locally
- Privacy Mode: Hide sensitive information when needed
- Data Backup & Export: Securely backup and export your financial data
- Dropbox Integration: Cloud backup with selective import and tombstone sync
- Session Management: Automatic timeout and cleanup with security logging
- Developer Menu: Debug tools for development and troubleshooting
- Responsive Design: Works seamlessly on desktop, tablet, and mobile
- Dark/Light Themes: Choose your preferred visual theme
- Accessibility: Built with accessibility best practices
- Offline Mode: Continue using the app even without internet
- PWA Support: Install as a native app on your device
- Quick Actions: Fast access to frequently used functions via floating action button
- Bill Reminders: Never miss a payment deadline with automated notifications
- Receipt Scanner: OCR-powered receipt scanning with Tesseract.js
- QR Code Scanner: Scan QR codes for quick data entry
- Currency Converter: Real-time currency conversion with multiple providers
- Social Sharing: Share your financial achievements and insights
- Motivational Quotes: Stay motivated on your financial journey
- Multi-currency Support: Handle different currencies with custom currency options
- Data Migration: Easily migrate data between devices
- Productivity Tools: Built-in calculator and other productivity features
- Gaming Features: Gamification elements for engagement
- Framework: Next.js 16.2.3 with App Router
- UI Library: React 18.2.0
- Language: TypeScript 5
- Styling: Tailwind CSS 4.1.9
- Components: Radix UI (comprehensive component library)
- Icons: Lucide React
- Fonts: Geist
- Theme: next-themes for dark/light mode
- State Management: React Context with custom hooks
- Data Fetching: TanStack Query (React Query)
- Forms: React Hook Form with Zod validation
- Storage: Local Storage with encryption (SecureWallet)
- Caching: Redis (Upstash) for push notifications
- Charts: Recharts 2.15.4
- Date Handling: date-fns 4.1.0, nepali-date-converter 3.4.0
- OCR: Tesseract.js 6.0.1 for receipt scanning
- QR Codes: jsqr, qrcode, react-qr-code
- PDF: pdfjs-dist, @react-pdf-viewer
- Automation: Puppeteer Core for MeroShare automation
- Service Worker: Serwist 9.5.7 (next-generation service worker)
- Build: Webpack (forced for Serwist compatibility)
- Analytics: Vercel Analytics
- Testing: Vitest 3.2.4 with React Testing Library
- Linting: ESLint 9.39.4 with React and React Hooks plugins
- Formatting: Prettier 3.6.2
- Type Checking: TypeScript strict mode
- Node.js 20+ (LTS) and npm/pnpm
- Git
-
Clone the repository
git clone https://github.com/Shubhamnpk/mywallet.git cd mywallet-app -
Install dependencies
npm install # or pnpm install -
Run the development server
npm run dev # or pnpm dev -
Open your browser Navigate to http://localhost:3000
npm run build
npm startSet these environment variables in Vercel Project Settings for Production:
VAPID_PUBLIC_KEYVAPID_PRIVATE_KEYVAPID_SUBJECT(example:mailto:alerts@yourdomain.com)UPSTASH_REDIS_REST_URLUPSTASH_REDIS_REST_TOKEN
Optional:
NEXT_PUBLIC_VAPID_PUBLIC_KEY(same value asVAPID_PUBLIC_KEY)PUSH_HEALTH_SECRET(recommended; protects/api/push/healthdiagnostics endpoint)
Generate VAPID keys locally:
pnpm vapidCheck production push health:
curl -H "Authorization: Bearer $PUSH_HEALTH_SECRET" https://your-app.vercel.app/api/push/health- First Time Setup: Complete the onboarding process to set up your profile
- Set Security: Configure PIN lock and biometric authentication
- Add Transactions: Start recording your income and expenses
- Create Budgets: Set spending limits for different categories
- Set Goals: Define your financial objectives
- Monitor Insights: Review your financial health and trends
mywallet-app/
βββ app/ # Next.js app directory
β βββ api/ # API routes
β β βββ cron/ # Scheduled jobs
β β βββ crypto/ # Cryptocurrency APIs
β β βββ currency/ # Currency conversion
β β βββ dropbox/ # Dropbox OAuth
β β βββ meroshare/ # MeroShare automation
β β βββ nepse/ # NEPSE stock market data
β β βββ proxy/ # Proxy routes
β β βββ push/ # Web push notifications
β βββ dropbox-callback/ # Dropbox OAuth callback
β βββ onboarding/ # User onboarding flow
β βββ releases/ # Release notes page
β βββ settings/ # Settings pages
β βββ welcome/ # Welcome page
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
β βββ page.tsx # Main page
βββ components/ # React components
β βββ achievements/ # Achievement system
β βββ budgets/ # Budget management
β βββ categories/ # Category management
β βββ dashboard/ # Dashboard components
β βββ debt-credit/ # Debt & credit tracking
β βββ dropbox/ # Dropbox integration
β βββ goals/ # Goal tracking
β βββ insights/ # Analytics components
β βββ onboarding/ # Onboarding components
β βββ portfolio/ # Investment portfolio
β βββ productivity/ # Productivity tools
β βββ pwa/ # PWA components
β βββ security/ # Security features
β βββ settings/ # Settings components
β βββ social/ # Social sharing
β βββ tools/ # Utility tools
β βββ transactions/ # Transaction management
β βββ ui/ # Reusable UI components (Radix UI)
β βββ welcome/ # Welcome components
βββ contexts/ # React contexts
β βββ wallet-data-context.tsx # Global wallet data context
βββ hooks/ # Custom React hooks
β βββ nepse/ # NEPSE data hooks
β βββ use-accessibility.ts # Accessibility features
β βββ use-achievements.tsx # Achievement system
β βββ use-authentication.ts # Authentication logic
β βββ use-color-theme.ts # Theme management
β βββ use-mobile.ts # Mobile detection
β βββ use-offline-mode.ts # Offline mode handling
β βββ use-privacy-mode.tsx # Privacy mode
β βββ use-service-worker.ts # Service worker management
β βββ use-toast.ts # Toast notifications
β βββ use-wallet-data.ts # Main wallet data hook
βββ lib/ # Utility functions
β βββ push/ # Push notification utilities
β βββ api-error.ts # API error handling
β βββ backup.ts # Backup management
β βββ biometric-key.ts # Biometric authentication
β βββ categories.ts # Category utilities
β βββ currency.ts # Currency conversion
β βββ data-integrity.ts # Data validation
β βββ dropbox.ts # Dropbox integration
β βββ goal-calculations.ts # Goal calculations
β βββ goal-challenge.ts # Goal challenge logic
β βββ key-manager.ts # Secure key management
β βββ migration.ts # Data migration
β βββ nepali-date-utils.ts # Nepali date utilities
β βββ notifications.ts # Notification management
β βββ portfolio-colors.ts # Portfolio color mapping
β βββ secure-pin-manager.ts # PIN management
β βββ security.ts # Security utilities
β βββ session-manager.ts # Session management
β βββ shift-tracker-storage.ts # Work shift tracking
β βββ sip.ts # SIP plan management
β βββ sound-utils.ts # Sound effects
β βββ stock-symbol.ts # Stock symbol utilities
β βββ storage.ts # Local storage utilities
β βββ wallet-ops.ts # Wallet operations
β βββ wallet-utils.ts # Wallet utilities
βββ scripts/ # Build and utility scripts
β βββ generate-vapid-keys.cjs # VAPID key generation
β βββ sync-manifest-version.mjs # Manifest version sync
βββ types/ # TypeScript type definitions
β βββ nepali-date.d.ts # Nepali date types
β βββ wallet.ts # Main wallet types
β βββ web-push.d.ts # Web push types
βββ worker/ # Service worker
β βββ sw.ts # Service worker implementation
βββ public/ # Static assets
βββ .eslintrc.json # ESLint configuration
βββ eslint.config.mjs # ESLint flat config
βββ next.config.mjs # Next.js configuration
βββ package.json # Dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ vitest.config.ts # Vitest configuration
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow TypeScript best practices
- Use ESLint and Prettier for code formatting
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
This project is licensed under the YoGuru Limited Contributor License.
- Radix UI for the amazing component library
- Tailwind CSS for the utility-first CSS framework
- Next.js for the React framework
- Lucide React for the beautiful icon
- Coinlore API for free cryptocurrency market data
- Frankfurter API for currency conversion rates
- Open Exchange Rates API (open.er-api.com) as currency conversion fallback
- yonepsescaper for public market datasets used in the app
- Bhagwoti/woma for the shift tracker idea and UI inspiration
If you have any questions or need help, please:
- Open an issue on GitHub
- Follow the Security Policy for vulnerability reports
- Check the documentation
- Contact the maintainers
Made with β€οΈ by mywllet & yoguru team for better financial management
