Live: https://www.duitr.my.id Repo: https://github.com/julianromli/duitr
Duitr is a modern and intuitive personal finance management application, built with a cutting-edge web stack. This app empowers you to effortlessly track your expenses, manage your budgets, and achieve your financial goals.
- Expense Logging: Record all your expenses with customizable categories.
- Income Tracking: Manage your various sources of income.
- Wallet Transfers: Seamlessly move funds between your wallets.
- Transaction History: View all transactions with advanced filtering and search capabilities.
- Transaction Details: Access comprehensive information for every transaction.
- Aggregated Balance: See the total balance from all your wallets at a glance.
- Expense Charts: Visualize your monthly spending patterns.
- Recent Transactions: Get quick access to your latest transactions.
- Financial Statistics: Gain deep insights into your financial habits.
- Budget Creation: Set up budgets for various spending categories.
- Progress Tracking: Monitor your budget adherence in real-time.
- Budget Alerts: Receive notifications when you're approaching your budget limits.
- Wishlist: Manage items you plan to purchase.
- Loan Management: Record and manage your loans.
- Multi-Wallet Support: Manage various wallet types (e.g., cash, bank accounts, e-wallets).
- Real-time Balance: Enjoy automatic balance updates.
- Wallet Categories: Organize your wallets by type for better clarity.
- Financial Evaluation: AI-powered analysis of spending patterns and financial health.
- Smart Recommendations: Personalized tips for better financial management.
- Spending Analysis: Intelligent categorization and trend identification.
- Financial Health Score: Overall assessment of your financial wellness.
- Multi-language: Support for both English and Indonesian with complete internationalization.
- Dark/Light Mode: Choose a theme that suits your preference.
- PWA (Progressive Web App): Installable on your mobile devices.
- Offline Support: Functions seamlessly without an internet connection.
- Data Export: Export your data to Excel/CSV formats.
- Responsive Design: Optimized for a perfect experience on both desktop and mobile.
- Modern Landing Page: Engaging landing page with optimized copywriting and social proof.
- React 18 - A modern UI library.
- TypeScript - For type safety and an enhanced developer experience.
- Vite - A blazing-fast build tool.
- Tailwind CSS - A utility-first CSS framework.
- shadcn/ui - A collection of customizable UI components.
- Framer Motion - For creating smooth animations.
- React Router - For application routing.
- React Hook Form - For efficient form management.
- Zod - For schema validation.
- Supabase - A comprehensive Backend-as-a-Service platform.
- PostgreSQL - A powerful relational database.
- Row Level Security - Ensuring row-level data security.
- React Query (TanStack Query) - For server state management.
- React Context - For client state management.
- i18next - An internationalization framework.
- react-i18next - React integration for i18next.
- Vite PWA Plugin - To enable Progressive Web App capabilities.
- Service Worker - For caching and offline support.
- Web App Manifest - For app installation metadata.
- MCP Servers - Model Context Protocol integration for enhanced development workflow.
- Git MCP Server - AI-powered Git operations and repository management.
- Context7 MCP - Advanced context management for development.
- shadcn/ui MCP - Component library integration and management.
- Node.js (v18 or newer) or Bun (v1.0 or newer)
- Bun package manager (recommended)
- A Supabase account
-
Clone the repository
git clone https://github.com/julianromli/duitr.git cd duitr -
Install dependencies
bun install
-
Set up environment variables
cp .env.example .env
Edit the
.envfile and add your Supabase configuration:VITE_SUPABASE_URL=your_supabase_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
-
Set up the database
- Run the SQL scripts located in the
supabase/migrations/folder. - Import the schema from
supabase_schema.sql.
- Run the SQL scripts located in the
-
Run the application
bun dev
The application will be running at
http://localhost:8080.
The project includes Model Context Protocol (MCP) servers for enhanced development workflow:
- Git MCP Server: Provides AI-powered Git operations
- Context7 MCP: Advanced context management
- shadcn/ui MCP: Component library integration
MCP servers are configured in .trae/mcp.json and work automatically with compatible AI development tools.
src/
├── components/ # React Components
│ ├── app/ # Core application components
│ ├── auth/ # Authentication components
│ ├── budget/ # Budgeting components
│ ├── dashboard/ # Dashboard components
│ ├── layout/ # Layout components
│ ├── shared/ # Shared components
│ ├── transactions/ # Transaction components
│ ├── ui/ # Base UI components
│ └── wallets/ # Wallet components
├── context/ # React Context providers
├── hooks/ # Custom React hooks
├── lib/ # Utilities and configurations
├── pages/ # Page components
├── services/ # Service layer
├── types/ # TypeScript type definitions
└── utils/ # Utility functions
Duitr uses a centralized logo system for easy customization:
-
Base Logo (
src/components/ui/logo.tsx)import Logo from '@/components/ui/logo'; // Basic usage <Logo size={32} variant="default" /> // With custom colors <Logo size={48} bgColor="#ff0000" color="#ffffff" /> // Shape variations <Logo size={32} variant="square" /> <Logo size={32} variant="circle" /> <Logo size={32} variant="text-only" />
-
AppLogo (
src/components/shared/Logo.tsx)import AppLogo from '@/components/shared/Logo'; // Logo with text <AppLogo size={32} withText={true} /> // Logo only <AppLogo size={32} withText={false} /> // Logo with a link <AppLogo linkTo="/" />
- Edit the
public/duitr-logo.svgfile. - Use
public/logo-generator.htmlto generate the assets. - Visit
/logo-generator.htmlin your browser.
- Visit
/favicon-customizer.html. - Adjust the color, size, and radius.
- Preview and download the new favicon.
bun run build:devbun run buildbun run build:pwabun run vercel:deploybun run preview- Run tests:
bun test - Run once (CI):
bun run test:run - Coverage:
bun run test:coverage - Watch mode:
bun run test:watch - UI runner:
bun run test:ui
The application uses Supabase with the following schema:
- users - User data
- wallets - User wallets
- categories - Transaction categories
- transactions - Financial transactions
- budgets - User budgets
- want_to_buy - Wishlist items
- pinjaman - Loan data
- Row Level Security (RLS) - User data is isolated.
- JWT Authentication - Secure authentication flow.
- Environment Variables - Sensitive configurations are kept secret.
- Input Validation - Data validation powered by Zod.
bun run security:audit # audit all dependencies
bun run security:check # audit with high severity threshold
bun run security:fix # attempt automatic fixesThe application supports multiple languages:
- Indonesian (default)
- English
Translation files are stored in src/locales/.
- Installable - Can be installed on your device.
- Offline Support - Works without an internet connection.
- Push Notifications - (Coming soon)
- Background Sync - Automatic data synchronization.
- App Shortcuts - Shortcuts to key features.
- Blank page after deploy (PWA/site cache):
- DevTools > Application > Service Workers > Unregister
- Application > Clear storage > Clear site data
- Hard refresh (Ctrl+F5)
- Validate production build locally:
bun run buildthenbun run preview - React context error in production: ensure React/ReactDOM versions match; if in doubt, delete node_modules and reinstall (
rm -rf node_modules && bun install).
- Fork the repository.
- Create a new 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 LICENSE for details.
If you encounter any issues or have questions:
- Create an issue in the GitHub repository.
- Contact the development team.
- ✅ Git MCP Server Integration: Added AI-powered Git operations through Model Context Protocol
- ✅ Enhanced Development Tools: Integrated multiple MCP servers for improved development workflow
- ✅ Repository Management: Streamlined Git operations with intelligent automation
- ✅ Context Management: Advanced context handling for better development experience
- ✅ MCP Configuration: Properly configured
.trae/mcp.jsonfor development tools - ✅ AI-Assisted Development: Enhanced development workflow with AI-powered tools
- ✅ Component Integration: Improved shadcn/ui component management through MCP
- ✅ Copywriting Optimization: Improved English and Indonesian copy for better conversion
- ✅ Unified Messaging: Aligned tone and context between English and Indonesian versions
- ✅ Social Proof Update: Updated user count to 100+ for accuracy and authenticity
- ✅ CTA Improvements: Enhanced call-to-action buttons with urgency and benefit focus
- ✅ Complete Internationalization: Fixed hardcoded Indonesian text in AI evaluator components
- ✅ Translation Keys: Added proper translation support for AI features:
ai.evaluation- AI Financial Evaluationai.analyzingData- Data analysis statusai.tips- AI recommendationsai.useChatboxTip- Chatbox usage guidanceai.askQuestionPlaceholder- Question input placeholder
- ✅ Navigation Enhancement: Added consistent border styling to navigation components
- ✅ Visual Consistency: Improved component styling alignment across the application
- ✅ Component Optimization: Enhanced reusable component structure
- ✅ Code Quality: Improved component modularity and maintainability
- ✅ Translation Management: Better organization of translation keys
- ✅ Performance: Optimized component rendering and state management
- ✅ Complete transaction management
- ✅ Dashboard with analytics
- ✅ Budgeting system
- ✅ Multi-wallet support
- ✅ PWA support
- ✅ Multi-language
- ✅ Data export
Duitr - Smart Money, Smarter Future | Kelola Uang, Capai Impian 💰✨