A professional financial advisory platform designed to provide portfolio analytics, risk assessment, and performance insights. Built with React, TypeScript, and modern web technologies, featuring a professional financial terminal design.
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Start production server
npm run start
- Search-Centric Interface: Advanced search with category-based discovery
- Portfolio Analytics: Comprehensive portfolio performance analysis and risk metrics
- Account Management: Flexible account and group selection with business rule enforcement
- Answer Cards: Rich financial data presentation with interactive charts and KPIs
- Dark Mode: Professional financial terminal design
- Responsive Design: Mobile-optimized with desktop-first approach
- React 18 + TypeScript for type-safe development
- Vite for fast development and optimized builds
- Tailwind CSS + shadcn/ui for consistent styling
- TanStack Query for server state management
- Recharts for financial data visualization
- Express.js + TypeScript REST API
- Drizzle ORM + PostgreSQL for data persistence
- Express Sessions with PostgreSQL storage
finsight/
├── client/src/ # React frontend
│ ├── components/ # UI components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utilities and config
│ └── App.tsx # Main application
├── server/ # Express.js backend
│ ├── index.ts # Server entry point
│ ├── routes.ts # API routes
│ └── storage.ts # Data layer
├── shared/ # Shared types and schemas
└── Configuration files
npm run dev
- Start development server with hot reloadnpm run build
- Build for production (client + server)npm run start
- Start production servernpm run check
- Run TypeScript type checkingnpm run db:push
- Apply database schema changes
- App.tsx - Main application with state management
- ContextBar.tsx - Account selection and filtering
- AnswerCard.tsx - Financial data presentation
- SearchOverlay.tsx - Search interface with suggestions
- TopNavigation.tsx - Header with branding and search
- Mutually Exclusive Selection: Users select either individual accounts OR account groups
- Minimum Selection Enforcement: At least one account must always be selected
- Layout Stability: Fixed-width containers prevent UI shifting during selections
- Colors: Professional financial palette with dark backgrounds
- Typography: Inter for UI text, JetBrains Mono for data
- Spacing: Consistent 2/4/6/8 unit spacing system
- Components: Specialized financial components (KPIs, charts, filters)
PORT=5000 # Server port
DATABASE_URL=postgresql:// # PostgreSQL connection string
NODE_ENV=development # Environment mode
# Apply database migrations
npm run db:push
The application follows a modern full-stack architecture:
- Frontend: React SPA with TypeScript and Vite
- Backend: Express.js API with TypeScript
- Database: PostgreSQL with Drizzle ORM
- State: TanStack Query for server state, React hooks for client state
- Styling: Tailwind CSS with custom design tokens
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes and add tests
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.