A modern web-based investment platform built with React, TypeScript, and Tailwind CSS. This platform allows users to manage their investment portfolios, explore funds, and handle cryptocurrency wallets.
The platform now features a completely redesigned dashboard that matches modern financial interfaces:
- Dark sidebar navigation with search functionality
- Portfolio summary cards showing key metrics
- Interactive asset allocation pie chart
- Performance charts with period selection
- Transaction history with detailed view
- Wallet balance overview across multiple currencies
- Quick action buttons for common operations
- News & updates section with latest market information
- Account Registration: Support for Individual, Group, and Institutional account types
- Email Verification: Required email verification during registration
- 2FA Authentication: SMS-based two-factor authentication
- KYC/KYB Process: Identity verification for compliance
- Role-based Access Control: Multiple user roles with different permissions
- Fund Discovery: Browse and search investment funds by risk level and performance
- Portfolio Tracking: Real-time portfolio value and performance monitoring
- Investment Execution: Direct investment in available funds
- Risk Profiling: Automated risk assessment questionnaire
- Multi-network Support: Ethereum, BSC, Polygon networks
- Balance Management: Track available, locked, and pending balances
- Deposit/Withdrawal: Secure crypto asset management
- Transaction History: Complete transaction tracking and status updates
- Portfolio Overview: Comprehensive investment dashboard with modern UI
- Performance Metrics: ROI, P&L, and allocation tracking with charts
- Asset Allocation: Visual pie chart showing fund distribution
- Notifications: Real-time updates on transactions and KYC status
- Quick Actions: Easy access to common operations
- Frontend: React 19, TypeScript, Tailwind CSS
- State Management: React Hooks
- Dependency Injection: InversifyJS
- Routing: React Router DOM
- Icons: Lucide React
- Forms: React Hook Form with Zod validation
- Charts: Recharts
- Notifications: React Toastify
- Node.js 18+
- npm or yarn
- Clone the repository:
git clone <repository-url>
cd investment-platform- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser and navigate to
http://localhost:5173
Regular User:
- Email:
[email protected] - Password:
password
Admin User:
- Email:
[email protected] - Password:
admin
src/
├── components/ # React components
│ ├── Dashboard.tsx # Main dashboard with new design
│ ├── FundDiscovery.tsx # Fund browsing
│ ├── Portfolio.tsx # Portfolio management
│ ├── Wallet.tsx # Wallet interface
│ ├── Layout.tsx # App layout with dark sidebar
│ └── LoginPage.tsx # Authentication
├── services/ # Business logic services
│ ├── AuthService.ts # Authentication
│ ├── FundService.ts # Fund management
│ ├── WalletService.ts # Wallet operations
│ └── UserService.ts # User management
├── types/ # TypeScript type definitions
├── di/ # Dependency injection setup
└── App.tsx # Main application component
- Total Portfolio Value: Current worth of all investments
- Today's Change: Daily P&L with percentage change
- Risk Profile: User's risk assessment level
- Portfolio Type: Account classification
- Last Sync: Real-time data update status
- Interactive pie chart showing fund distribution
- Color-coded fund breakdown
- Percentage allocation for each fund
- Legend with fund names and percentages
- Line chart showing portfolio performance over time
- Time period selectors (1D, 1W, 1M, 3M, 1Y, ALL)
- Detailed portfolio metrics overlay
- Interactive chart with hover states
- Latest transaction entries
- Transaction types and amounts
- Navigation controls for pagination
- "See full" option for complete history
- Multi-currency balance display
- Available vs. invested amounts
- Pending withdrawal tracking
- Wallet details access
- Add Funds button
- Withdraw functionality
- Fund-specific withdrawal
- Investment shortcuts
- Latest market news cards
- Image thumbnails for articles
- Navigation between news items
- "View all" option for complete news feed
- Multi-step registration process
- Account type selection (Individual/Group/Institutional)
- Email verification requirement
- SMS-based 2FA setup
- Optional KYC submission with document upload
- Status tracking and notifications
- Risk-based fund categorization (Low/Balanced/High)
- Performance tracking and historical data
- Asset allocation visualization
- Minimum investment requirements
- Fee structure (entry/withdrawal fees)
- Multi-token support (USDT, ETH, BTC)
- Network-specific balances
- Address management and verification
- Withdrawal request processing
- Transaction status tracking
- KYC/KYB verification workflow
- Role-based access control
- Transaction monitoring
- Audit trail maintenance
- Regulatory compliance features
npm run dev- Start development servernpm run build- Build for productionnpm run lint- Run ESLintnpm run preview- Preview production build
- TypeScript for type safety
- ESLint for code quality
- Functional components with hooks
- Dependency injection pattern
- Service-oriented architecture
- Build the project:
npm run build- Deploy the
distfolder to your hosting provider
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.
For support and questions, please contact the development team or create an issue in the repository.
/- Главная страница (лендинг) - доступна всем пользователям/login- Страница авторизации/app/*- Защищенные роуты приложения (требуют авторизации):/app/dashboard- Главная панель пользователя/app/portfolio- Портфель инвестиций/app/market- Рынок и фонды/app/wallet- Кошелек/app/transactions- История транзакций- и другие...
Демо-аккаунты:
- Обычный пользователь:
[email protected]/password - Администратор:
[email protected]/admin
Сброс сессии:
- Откройте страницу
http://localhost:5175 - В футере нажмите "Clear Session (Dev)" ИЛИ
- Откройте DevTools (F12) → Console → выполните
localStorage.clear()→ перезагрузите страницу
- Неавторизованные пользователи: могут посещать лендинг (
/) и страницу логина (/login) - Авторизованные пользователи: могут посещать лендинг и все защищенные роуты в
/app/* - Попытка доступа к защищенным роутам без авторизации: перенаправление на
/login - Переход на несуществующие роуты: перенаправление на главную страницу (
/)