OnlyFunds Development Roadmap
This roadmap outlines the phased development of OnlyFunds, an AI-powered personal finance advisor. Each phase builds upon the previous one, introducing new features and technologies.
Phase 1: Core UI & Local Data Management (MVP)
Goal: Establish the fundamental user interface, local data storage, and basic user authentication to demonstrate core financial tracking capabilities without any external backend or AI services. This phase focuses on a fully client-side, self-contained application.
Technologies: Next.js, TypeScript, Zustand, Zod, Tailwind CSS, localStorage, bcryptjs (for local hashing).
1. Application Foundation & Setup
2. Core UI Components & Theming
3. Data Modeling & Validation
4. Local Data Persistence & Security
5. Zustand State Management
6. User Authentication & Session
7. Core Financial Tracking Features
8. Page Routing & Navigation
Phase 2: Backend Integration & Core AI Features
Goal: Transition from local data storage to a secure, scalable backend, and introduce the first set of AI-powered features for automated categorization and basic financial insights.
Technologies: Appwrite, OpenAI API, Next.js API Routes, Charting Library (e.g., Recharts).
1. Robust Backend Integration (Appwrite)
2. Initial AI-Powered Categorization
3. Basic Personalized Financial Advice
4. Enhanced Data Visualization
5. User Profile & Settings Management
Phase 3: Advanced AI, Input Methods & Financial Planning
Goal: Transform OnlyFunds into a truly intelligent and proactive financial advisor by implementing advanced AI analytics, diverse input methods, and sophisticated financial planning tools.
Technologies: OCR Service (e.g., Google Cloud Vision), Speech-to-Text API, more advanced LLM prompting/fine-tuning, potentially dedicated ML models.
1. Advanced Input Methods
2. Intelligent Financial Planning (LLM-Driven)
3. AI-Powered Analytics & Insights
OnlyFunds Development Roadmap
This roadmap outlines the phased development of OnlyFunds, an AI-powered personal finance advisor. Each phase builds upon the previous one, introducing new features and technologies.
Phase 1: Core UI & Local Data Management (MVP)
Goal: Establish the fundamental user interface, local data storage, and basic user authentication to demonstrate core financial tracking capabilities without any external backend or AI services. This phase focuses on a fully client-side, self-contained application.
Technologies: Next.js, TypeScript, Zustand, Zod, Tailwind CSS,
localStorage,bcryptjs(for local hashing).1. Application Foundation & Setup
bcryptjs,react-hook-form,@hookform/resolvers.tsconfig.json,next.config.js,globals.css.package.jsonscripts and dependencies.src/app/layout.tsx) including<html>,<body>, and global styles.2. Core UI Components & Theming
Button.tsx: Reusable button component with variants (primary, secondary) and sizes.Input.tsx: Reusable input field component with label, placeholder, and error display.Card.tsx: Generic card component for content containers.ThemeToggle.tsx: Component to switch between light/dark themes.localStorageand Tailwind'sdark:variant.bodyelement based on current theme.3. Data Modeling & Validation
Userinterface (id, username, passwordHash) insrc/lib/types/auth.ts.Transactioninterface (id, amount, date, description, category, type: 'expense'|'income') insrc/lib/types/expense.ts.Budgetinterface (categoryId, amount) insrc/lib/types/budget.ts.index.tsinsrc/lib/types/to export all types.signupSchemafor user registration validation using Zod insrc/lib/utils/validation.ts.loginSchemafor user login validation using Zod insrc/lib/utils/validation.ts.transactionSchemafor expense/income entry validation using Zod.budgetSchemafor budget limit validation using Zod.4. Local Data Persistence & Security
src/lib/utils/localDb.tswith generic functions:saveItem(key, value),getItem(key),removeItem(key).localDbfunctions forsaveUser,getUser,saveTransactions,getTransactions,saveBudgets,getBudgets.bcryptjsfor local user storage.5. Zustand State Management
src/lib/zustand/authStore.ts:user,isAuthenticated,isLoading.signup(hashes password, saves tolocalDb),login(compares password, setsisAuthenticated),logout(clearslocalDb),checkAuthStatus(on app load).src/lib/zustand/expenseStore.ts:transactions(array ofTransactionobjects).addTransaction(saves tolocalDb),fetchTransactions(loads fromlocalDb).src/lib/zustand/budgetStore.ts:budgets(map of categoryId to amount).setBudget(saves tolocalDb),fetchBudgets(loads fromlocalDb),getBudgetProgress(calculates spending vs. budget usingexpenseStoredata).src/lib/zustand/index.tsto combine and export all stores.6. User Authentication & Session
SignupForm.tsx(src/components/auth/): Usesreact-hook-formwithzodResolverandsignupSchema. CallsauthStore.signup.LoginForm.tsx(src/components/auth/): Usesreact-hook-formwithzodResolverandloginSchema. CallsauthStore.login.AuthProvider.tsx(src/components/auth/): React Context Provider to manage global authentication state and theme. ChecksauthStore.isAuthenticatedand redirects unauthenticated users from protected routes.7. Core Financial Tracking Features
ExpenseForm.tsx(src/components/expenses/): Form for adding new expenses/income. Usesreact-hook-formwithzodResolverandtransactionSchema. CallsexpenseStore.addTransaction.TransactionList.tsx(src/components/expenses/): Displays transactions fromexpenseStore. Implements basic sorting (date, amount) and filtering (expense/income).BudgetForm.tsx(src/components/budgets/): Form to set or edit monthly budget limits for predefined categories. Usesreact-hook-formwithzodResolverandbudgetSchema. CallsbudgetStore.setBudget.BudgetList.tsx(src/components/budgets/): Displays budget categories, their limits, and calculated progress using data frombudgetStoreandexpenseStore.8. Page Routing & Navigation
src/app/page.tsx(Home): Redirects to/loginif not authenticated, or/dashboardif authenticated.src/app/signup/page.tsx: RendersSignupForm.src/app/login/page.tsx: RendersLoginForm.src/app/dashboard/page.tsx:ThemeToggle.src/app/transactions/page.tsx:ExpenseFormandTransactionList.src/app/budgets/page.tsx:BudgetFormandBudgetList.Navbar.tsx(src/components/layout/): Responsive navigation bar with links to Dashboard, Transactions, Budgets, and a Logout button. IncludesThemeToggle.Footer.tsx(src/components/layout/): Simple copyright footer.Phase 2: Backend Integration & Core AI Features
Goal: Transition from local data storage to a secure, scalable backend, and introduce the first set of AI-powered features for automated categorization and basic financial insights.
Technologies: Appwrite, OpenAI API, Next.js API Routes, Charting Library (e.g., Recharts).
1. Robust Backend Integration (Appwrite)
authStoreto use Appwrite's Authentication SDK for user management.expenseStoreto use Appwrite's Database SDK fortransactions.budgetStoreto use Appwrite's Database SDK forbudgets.src/app/api/) to proxy requests to Appwrite, securing API keys.localStorageto Appwrite for existing users (if applicable).2. Initial AI-Powered Categorization
/api/categorize) to send transaction descriptions to OpenAI.ExpenseForm.tsxto send description to/api/categorizeand display the suggested category.3. Basic Personalized Financial Advice
/api/advice) to aggregate user spending data from Appwrite.dashboard/page.tsxor a dedicated "Tips" section.4. Enhanced Data Visualization
5. User Profile & Settings Management
src/app/settings/page.tsxfor user settings.Phase 3: Advanced AI, Input Methods & Financial Planning
Goal: Transform OnlyFunds into a truly intelligent and proactive financial advisor by implementing advanced AI analytics, diverse input methods, and sophisticated financial planning tools.
Technologies: OCR Service (e.g., Google Cloud Vision), Speech-to-Text API, more advanced LLM prompting/fine-tuning, potentially dedicated ML models.
1. Advanced Input Methods
src/app/scan/page.tsxfor receipt scanning.2. Intelligent Financial Planning (LLM-Driven)
src/app/goals/page.tsxfor goal setting.src/app/debt/page.tsxfor debt management.3. AI-Powered Analytics & Insights