How sudeep-tr/elifin-advisor works
EliFin is a personal-finance and wealth-management web app. Users register or sign in, then manage transactions, budgets, and investments; the app presents financial summaries and health indicators, with AI guidance available for portfolios and through the advisor experience. The frontend communicates with an Express API, which authenticates protected requests and stores user financial data in MongoDB. README capabilities inform the feature map, but several frontend pages and backend route implementations were not sampled, so uncertain internal wiring is omitted.
Main entry points: server.js Express API · App.jsx React app · axios.js HTTP client · authMiddleware.js JWT protection
Components 27
Web application
- React app
Frontend/src/App.jsx - Login and registration
Frontend/src/pages/Login.jsx - Dashboard
Frontend/src/pages/Dashboard.jsx - Transactions
Frontend/src/pages/Transactions.jsx - Budgets
Frontend/src/pages/Budget.jsx - Investments
Frontend/src/pages/Investments.jsx - AI advisor
Frontend/src/pages/AIAdvisor.jsx - Advisor chatbot
Frontend/src/components/Chatbot.jsx - Profile
Frontend/src/pages/Profile.jsx - HTTP client
Frontend/src/api/axios.js
API and identity
- Express API
Backend/server.js - Authentication
Backend/routes/authRoutes.js - JWT protection
Backend/middleware/authMiddleware.js - User profile API
Backend/routes/userRoutes.js
Finance services
- Transactions and analysis
Backend/routes/transactionRoutes.js - Budget management
Backend/routes/budgetRoutes.js - Financial health
Backend/routes/healthRoutes.js - Portfolio management
Backend/routes/investmentRoutes.js - Portfolio advice
Backend/routes/aiRoutes.js - AI advisor API
Backend/routes/aiAdvisor.js
Financial data
- User records
Backend/models/User.js - Transaction records
Backend/models/Transaction.js - Budget records
Backend/models/Budget.js - Investment records
Backend/models/Investment.js
External services
- MongoDB
- Groq API
Other components
- Finance user
Connections 45
- Finance user → React app: uses
- React app → Login and registration: renders routes
- React app → Dashboard: renders routes
- React app → Transactions: renders routes
- React app → Budgets: renders routes
- React app → Investments: renders routes
- React app → AI advisor: renders routes
- React app → Profile: renders routes
- Login and registration → HTTP client: sends requests
- Dashboard → HTTP client: sends requests
- Transactions → HTTP client: sends requests
- Budgets → HTTP client: sends requests
- Investments → HTTP client: sends requests
- AI advisor → HTTP client: sends requests
- Profile → HTTP client: sends requests
- HTTP client → Express API: HTTP requests
- Express API → Authentication: dispatches
- Express API → Transactions and analysis: dispatches
- Express API → Budget management: dispatches
- Express API → Financial health: dispatches
- Express API → Portfolio management: dispatches
- Express API → Portfolio advice: dispatches
- Express API → AI advisor API: dispatches
- Express API → User profile API: dispatches
- Authentication → User records: reads and creates
- Transactions and analysis → JWT protection: protects routes
- Budget management → JWT protection: protects routes
- Financial health → JWT protection: protects routes
- Portfolio management → JWT protection: protects routes
- Portfolio advice → JWT protection: protects routes
- AI advisor API → JWT protection: protects routes
- User profile API → JWT protection: protects routes
- Transactions and analysis → Transaction records: reads and writes
- Transactions and analysis → Budget records: reads
- Budget management → Budget records: reads and writes
- Budget management → Transaction records: reads
- Financial health → Transaction records: reads
- Financial health → Budget records: reads
- Portfolio management → Investment records: reads and writes
- Portfolio advice → Investment records: reads
- Portfolio advice → Groq API: requests advice
- Transaction records → MongoDB: persists data
- Budget records → MongoDB: persists data
- Investment records → MongoDB: persists data
- User records → MongoDB: persists data