A full-stack wealth management application with AI-powered financial recommendations built with Next.js 15, TypeScript, Tailwind CSS, and Node.js Express.
- Income Tracking - Manage multiple income sources with frequencies
- Asset Management - Track properties, investments, savings, and more
- Liability Tracking - Monitor loans, mortgages, and debts
- Credit Card Management - Track limits, balances, and utilization
- Personalized Recommendations - AI-generated financial advice using AWS Bedrock Claude 3 Sonnet
- Context-Aware Suggestions - Based on complete financial picture
- Category-Based Recommendations - Savings, investments, debt, spending
- Wealth Score - A+ to F grading based on 6 factors
- Interactive Charts - Built with Recharts
- Real-Time Updates - Charts update automatically
- Multi-Currency Support - LKR, USD, EUR
- Modern Design - Clean, intuitive interface
- Dark/Light Mode - Theme switching support
- Responsive - Works on all devices
- Accessible - WCAG compliant components
- Next.js 15 - React framework with App Router
- TypeScript - Type safety throughout
- Tailwind CSS - Utility-first styling
- Recharts - Data visualization
- Radix UI - Accessible UI components
- Node.js Express - REST API server
- MongoDB Atlas - Cloud database
- AWS Bedrock - AI recommendations (Claude 3 Sonnet)
- Security - Helmet, CORS, Rate Limiting
- Node.js 18.x or higher
- MongoDB Atlas account
- AWS Account with Bedrock access
# Clone the repository
git clone <your-repo-url>
cd "AI Boot Camp"
# Install backend dependencies
cd Backend
npm install
# Install frontend dependencies
cd ../Frontend
npm installCreate Backend/.env:
# Server Configuration
PORT=5000
FRONTEND_URL=http://localhost:3000
NODE_ENV=development
# MongoDB Atlas
MONGO_URI=mongodb+srv://<username>:<password>@<cluster>.mongodb.net/<database>?retryWrites=true&w=majority
# AWS Bedrock
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your_aws_key
AWS_SECRET_ACCESS_KEY=your_aws_secret
BEDROCK_MODEL_ID=anthropic.claude-3-sonnet-20240229-v1:0
ANTHROPIC_VERSION=bedrock-2023-05-31Create Frontend/.env.local:
NEXT_PUBLIC_API_URL=http://localhost:5000/api# Terminal 1: Start backend
cd Backend
npm run dev
# Terminal 2: Start frontend
cd Frontend
npm run devVisit http://localhost:3000 to access the application.
AI Boot Camp/
βββ Backend/ # Node.js Express API server
β βββ src/
β β βββ controllers/ # Request handlers
β β βββ middleware/ # Security, validation, logging
β β βββ models/ # MongoDB schemas
β β βββ routes/ # API route definitions
β β βββ services/ # Business logic
β β βββ utils/ # Helper functions
β βββ server.js # Entry point
β βββ .env # Environment variables
βββ Frontend/ # Next.js 15 frontend
β βββ app/ # App router pages
β βββ components/ # React components
β βββ lib/ # Utilities and services
β βββ hooks/ # Custom React hooks
β βββ public/ # Static assets
βββ docs/ # Organized documentation
βββ architecture/ # System design docs
βββ deployment/ # Deployment guides
βββ general/ # Setup and usage guides
βββ testing/ # Testing documentation
The repository pushed to GitHub (branch main) contains the following top-level items:
Backend/β Node.js Express API server and all backend code and scriptsFrontend/β Next.js 15 frontend application (App Router)deploy-frontend/β helper/deployment files for frontenddocs/β full project documentation and deployment guidescomprehensive-test.jsβ project-wide test scripttest-frontend-backend-connectivity.jsβ quick connectivity test (local).gitignoreβ repository ignores (node_modules, build artifacts, .env, *.zip)
If you need a different subset pushed (for example excluding large deployment artifacts), tell me which folders to keep or remove and I'll update the repo accordingly.
- Started the backend (default PORT 5000) and confirmed the
/healthendpoint returns 200. - Started the Next.js frontend (localhost:3000) and confirmed it serves pages.
- Ran
test-frontend-backend-connectivity.jswhich confirmed the backend health andGET /api/incomeendpoint.
GET /api/income- Get all income recordsPOST /api/income- Create new income recordGET /api/income/:id- Get specific income recordPUT /api/income/:id- Update income recordDELETE /api/income/:id- Delete income record
GET /api/assets- Get all assetsPOST /api/assets- Create new assetGET /api/assets/:id- Get specific assetPUT /api/assets/:id- Update assetDELETE /api/assets/:id- Delete asset
GET /api/liabilities- Get all liabilitiesPOST /api/liabilities- Create new liabilityGET /api/liabilities/:id- Get specific liabilityPUT /api/liabilities/:id- Update liabilityDELETE /api/liabilities/:id- Delete liability
GET /api/creditcards- Get all credit cardsPOST /api/creditcards- Create new credit cardGET /api/creditcards/:id- Get specific credit cardPUT /api/creditcards/:id- Update credit cardDELETE /api/creditcards/:id- Delete credit card
GET /api/recommendations- Auto-generate recommendationsPOST /api/recommendations/generate- Generate with custom parametersGET /api/recommendations/generate- Generate with query parametersPOST /api/recommendations/generate-keywords- Generate with keywordsGET /api/recommendations/history- Get recommendation history
- Install EB CLI:
pip install awsebcli - Initialize:
eb init - Create environment:
eb create production-env - Deploy:
eb deploy
- Install Vercel CLI:
npm install -g vercel - Build:
npm run build - Deploy:
vercel --prod
- Helmet.js - Security headers
- CORS - Cross-origin resource sharing
- Rate Limiting - Request throttling
- Input Validation - Server-side validation
- Environment Variables - Secret management
- Error Handling - Secure error responses
- Comprehensive API testing with Postman
- CRUD operation validation
- AI recommendation testing
- Error handling verification
- Component rendering tests
- API integration tests
- User interaction tests
- Responsive design validation
All project documentation has been organized into the docs directory:
- 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.
- AWS Bedrock for AI capabilities
- MongoDB Atlas for database hosting
- Next.js and React communities
- All contributors to this project