init projectmycelium
This commit is contained in:
370
docs/dev/design/archive/marketplace_current_plan.md
Normal file
370
docs/dev/design/archive/marketplace_current_plan.md
Normal file
@@ -0,0 +1,370 @@
|
||||
# Project Mycelium Credits System - Completion Plan
|
||||
|
||||
## Executive Summary
|
||||
|
||||
The Project Mycelium credits system transformation is **85% complete** with excellent foundational architecture. This document outlines the remaining work to achieve 100% completion and production readiness.
|
||||
|
||||
**Current Status**: 85% Complete (Not 90% as previously claimed)
|
||||
**Production Ready**: After Week 1 completion (9 hours of work)
|
||||
**Feature Complete**: After Week 2 completion (15 hours total)
|
||||
|
||||
---
|
||||
|
||||
## Current Implementation Analysis
|
||||
|
||||
### ✅ Successfully Implemented (85%)
|
||||
|
||||
#### 1. Frontend Transformation (100% Complete)
|
||||
- **UI Components**: All components use "Credits" terminology instead of "TFP"
|
||||
- **Wallet Dashboard**: Shows USD amounts with `${{ wallet_balance | format_decimal(precision=2) }}`
|
||||
- **Marketplace Pricing**: Clear USD values throughout all 5 marketplace pages
|
||||
- **Navigation**: Consistent "Credits Wallet" terminology
|
||||
- **Price Filters**: Updated from "Min/Max Price (TFP)" to "Min/Max Price ($)"
|
||||
|
||||
#### 2. Backend Infrastructure (80% Complete)
|
||||
- **Transaction Types**: Complete credits transaction types implemented:
|
||||
```rust
|
||||
CreditsPurchase { payment_method: String },
|
||||
CreditsSale { currency: String, fiat_amount: Decimal, payout_method: String },
|
||||
CreditsTransfer { to_user: String, note: Option<String> },
|
||||
AutoTopUp { triggered_by_purchase: Option<String>, threshold_amount: Decimal, amount_usd: Decimal, payment_method: String }
|
||||
```
|
||||
- **Controller Methods**: Credits methods implemented in `src/controllers/wallet.rs` with proper request structs
|
||||
- **Data Models**: `AutoTopUpSettings` fully implemented with builder pattern in `src/services/user_persistence.rs`
|
||||
|
||||
#### 3. Auto Top-Up Infrastructure (75% Complete)
|
||||
- **Service Layer**: `AutoTopUpService` implemented with proper builder pattern
|
||||
- **JavaScript Integration**: `BuyNowManager` in `src/static/js/buy-now.js` handles insufficient balance scenarios
|
||||
- **Settings Management**: Complete data structures for thresholds, limits, and payment methods
|
||||
- **Transaction Processing**: Auto top-up transaction type and processing logic implemented
|
||||
|
||||
### ❌ Critical Missing Components (15%)
|
||||
|
||||
#### 1. API Routes Not Registered (HIGH PRIORITY - BLOCKING)
|
||||
**Issue**: Credits controller methods exist but are NOT registered in `src/routes/mod.rs`
|
||||
|
||||
**Missing Routes**:
|
||||
```rust
|
||||
// REQUIRED: Add to src/routes/mod.rs after line 100 in /api scope:
|
||||
.route("/wallet/buy-credits", web::post().to(WalletController::buy_credits))
|
||||
.route("/wallet/sell-credits", web::post().to(WalletController::sell_credits))
|
||||
.route("/wallet/transfer-credits", web::post().to(WalletController::transfer_credits))
|
||||
.route("/wallet/check-affordability", web::get().to(WalletController::check_affordability))
|
||||
.route("/wallet/instant-purchase", web::post().to(WalletController::instant_purchase))
|
||||
.route("/wallet/auto-topup/status", web::get().to(WalletController::get_auto_topup_status))
|
||||
.route("/wallet/auto-topup/trigger", web::post().to(WalletController::trigger_auto_topup))
|
||||
.route("/wallet/auto-topup/configure", web::post().to(WalletController::configure_auto_topup))
|
||||
```
|
||||
|
||||
#### 2. Missing Controller Methods (HIGH PRIORITY - BLOCKING)
|
||||
**Issue**: JavaScript calls these endpoints but controller methods don't exist
|
||||
|
||||
**Required Methods in `src/controllers/wallet.rs`**:
|
||||
```rust
|
||||
pub async fn check_affordability(session: Session, query: web::Query<AffordabilityQuery>) -> Result<impl Responder>
|
||||
pub async fn get_auto_topup_status(session: Session) -> Result<impl Responder>
|
||||
pub async fn trigger_auto_topup(session: Session, form: web::Json<TriggerAutoTopUpRequest>) -> Result<impl Responder>
|
||||
pub async fn configure_auto_topup(session: Session, form: web::Json<ConfigureAutoTopUpRequest>) -> Result<impl Responder>
|
||||
```
|
||||
|
||||
**Required Request Structs**:
|
||||
```rust
|
||||
#[derive(Debug, Deserialize)]
|
||||
pub struct AffordabilityQuery {
|
||||
pub amount: Decimal,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
pub struct TriggerAutoTopUpRequest {
|
||||
pub required_amount: Decimal,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
pub struct ConfigureAutoTopUpRequest {
|
||||
pub enabled: bool,
|
||||
pub threshold_amount: Decimal,
|
||||
pub topup_amount: Decimal,
|
||||
pub payment_method_id: String,
|
||||
pub daily_limit: Option<Decimal>,
|
||||
pub monthly_limit: Option<Decimal>,
|
||||
}
|
||||
```
|
||||
|
||||
#### 3. Legal Documents Still Reference TFP (MEDIUM PRIORITY - LEGALLY REQUIRED)
|
||||
**Issue**: Found 93 TFP references in legal documents
|
||||
|
||||
**Critical Updates Required**:
|
||||
- `src/views/legal/terms.html:89`: "Transactions are conducted using the ThreeFold Point (TFP) system" → "USD Credits system"
|
||||
- `src/views/legal/terms-service-providers.html`: Update payment processing references
|
||||
- `src/views/legal/terms-farmers.html`: Update revenue sharing language
|
||||
- Service provider agreement modals: Update TFP references to Credits
|
||||
|
||||
#### 4. Auto Top-Up UI Configuration (MEDIUM PRIORITY - FEATURE INCOMPLETE)
|
||||
**Issue**: Users cannot configure auto top-up settings
|
||||
|
||||
**Required Components**:
|
||||
- Auto top-up settings section in `src/views/dashboard/wallet.html`
|
||||
- Configuration modal for threshold and top-up amounts
|
||||
- Payment method selection integration
|
||||
- Current settings display
|
||||
|
||||
---
|
||||
|
||||
## Compilation Warnings Analysis
|
||||
|
||||
**Total Warnings**: 135 (Project builds successfully despite warnings)
|
||||
|
||||
### Warning Categories:
|
||||
1. **Unused Imports** (20+ warnings): Safe to clean up
|
||||
- `CustomerServiceData`, `SpendingRecord`, `PaymentStatus`, `SliceCombination`
|
||||
|
||||
2. **Unused Variables** (15+ warnings): Code quality issues
|
||||
- Variables marked as unused: `rental`, `multi_node_pricing`, `user`
|
||||
|
||||
3. **Dead Code** (50+ warnings): Significant bloat
|
||||
- Unused builder patterns: `SliceProductBuilder`, `NodeGroupBuilder`
|
||||
- Unused service methods: `search_products`, `filter_products_by_price_range`
|
||||
|
||||
4. **Unsafe Code** (1 warning): Potential security issue
|
||||
- `creating a shared reference to mutable static` in `src/services/order.rs:42`
|
||||
|
||||
### Impact Assessment:
|
||||
- ✅ **Compilation**: Project builds successfully
|
||||
- ⚠️ **Code Quality**: Significant technical debt from unused code
|
||||
- ⚠️ **Performance**: Dead code increases binary size
|
||||
- ✅ **Functionality**: Warnings don't affect runtime behavior
|
||||
|
||||
---
|
||||
|
||||
## Auto Top-Up Feature Assessment
|
||||
|
||||
### Current Status: 75% Complete
|
||||
|
||||
#### ✅ What's Working:
|
||||
- **Backend Service**: `AutoTopUpService` in `src/services/auto_topup.rs` fully functional
|
||||
- **Data Models**: `AutoTopUpSettings` complete with persistence
|
||||
- **JavaScript Integration**: `BuyNowManager` handles insufficient balance scenarios
|
||||
- **Transaction Types**: `AutoTopUp` transaction type implemented
|
||||
|
||||
#### ❌ What's Missing:
|
||||
- **API Endpoints**: Controller methods not implemented
|
||||
- **Route Registration**: API routes not registered
|
||||
- **UI Configuration**: No settings page for users
|
||||
- **Status Display**: Current settings not shown in wallet
|
||||
|
||||
#### Auto Top-Up Flow (When Complete):
|
||||
1. User configures threshold ($10) and top-up amount ($50)
|
||||
2. User attempts purchase requiring $15 with $5 balance
|
||||
3. System detects insufficient funds
|
||||
4. Auto top-up triggers, adds $50 to balance
|
||||
5. Purchase completes successfully
|
||||
6. Transaction history shows both auto top-up and purchase
|
||||
|
||||
---
|
||||
|
||||
## Completion Roadmap
|
||||
|
||||
### 🚀 Week 1: Critical Missing Features (9 hours) → 95% Complete, Production Ready
|
||||
|
||||
#### Priority 1: API Routes Registration (2 hours)
|
||||
**File**: `src/routes/mod.rs`
|
||||
**Action**: Add missing wallet API routes to the `/api` scope after line 100
|
||||
|
||||
#### Priority 2: Missing Controller Methods (4 hours)
|
||||
**File**: `src/controllers/wallet.rs`
|
||||
**Action**: Implement 4 missing controller methods with proper error handling
|
||||
|
||||
#### Priority 3: Legal Document Updates (3 hours)
|
||||
**Files**:
|
||||
- `src/views/legal/terms.html`
|
||||
- `src/views/legal/terms-service-providers.html`
|
||||
- `src/views/legal/terms-farmers.html`
|
||||
**Action**: Replace all TFP references with Credits terminology
|
||||
|
||||
### 🎨 Week 2: Enhancement Tasks (6 hours) → 98% Complete, Feature Complete
|
||||
|
||||
#### Auto Top-Up UI Configuration (6 hours)
|
||||
**File**: `src/views/dashboard/wallet.html`
|
||||
**Components**:
|
||||
1. Settings section showing current auto top-up configuration
|
||||
2. Configuration modal with threshold and amount inputs
|
||||
3. Payment method selection
|
||||
4. Enable/disable toggle
|
||||
|
||||
**Implementation Pattern**: Follow existing modal patterns in wallet.html
|
||||
|
||||
### 🧹 Week 3: Optional Cleanup Tasks (8 hours) → 100% Complete, Optimized
|
||||
|
||||
#### Code Quality Improvements (8 hours)
|
||||
**High-Impact Cleanup**:
|
||||
1. Remove dead code (50+ unused builder methods and service functions)
|
||||
2. Fix unused variables (15+ variables marked as unused)
|
||||
3. Clean unused imports (20+ unused import statements)
|
||||
4. Fix unsafe code (1 mutable static reference in order.rs)
|
||||
|
||||
**Benefit**: Reduced binary size, improved maintainability, cleaner codebase
|
||||
|
||||
---
|
||||
|
||||
## Implementation Details
|
||||
|
||||
### Week 1 Implementation Guide
|
||||
|
||||
#### 1. API Routes Registration
|
||||
```rust
|
||||
// Add to src/routes/mod.rs after line 100:
|
||||
.route("/wallet/buy-credits", web::post().to(WalletController::buy_credits))
|
||||
.route("/wallet/sell-credits", web::post().to(WalletController::sell_credits))
|
||||
.route("/wallet/transfer-credits", web::post().to(WalletController::transfer_credits))
|
||||
.route("/wallet/check-affordability", web::get().to(WalletController::check_affordability))
|
||||
.route("/wallet/instant-purchase", web::post().to(WalletController::instant_purchase))
|
||||
.route("/wallet/auto-topup/status", web::get().to(WalletController::get_auto_topup_status))
|
||||
.route("/wallet/auto-topup/trigger", web::post().to(WalletController::trigger_auto_topup))
|
||||
.route("/wallet/auto-topup/configure", web::post().to(WalletController::configure_auto_topup))
|
||||
```
|
||||
|
||||
#### 2. Controller Method Implementation
|
||||
**Pattern**: Follow existing controller methods in `src/controllers/wallet.rs`
|
||||
**Error Handling**: Use existing `WalletResponse` struct
|
||||
**Session Management**: Follow existing session handling patterns
|
||||
**Persistence**: Use `UserPersistence::save_user_data()` for settings
|
||||
|
||||
#### 3. Legal Document Updates
|
||||
**Search Pattern**: Find all instances of "TFP", "ThreeFold Point", "token"
|
||||
**Replace With**: "Credits", "USD Credits", "credits"
|
||||
**Maintain**: Legal structure and formatting
|
||||
|
||||
### Week 2 Implementation Guide
|
||||
|
||||
#### Auto Top-Up UI Components
|
||||
**Location**: `src/views/dashboard/wallet.html` after line 100
|
||||
**Components**:
|
||||
1. Settings card showing current configuration
|
||||
2. Bootstrap modal for configuration
|
||||
3. Form validation for amounts and limits
|
||||
4. Integration with existing wallet refresh functionality
|
||||
|
||||
**JavaScript**: Extend existing wallet JavaScript to handle auto top-up configuration
|
||||
|
||||
---
|
||||
|
||||
## Architecture Assessment
|
||||
|
||||
### Strengths of Current Implementation:
|
||||
1. **Excellent Separation of Concerns**: Credits logic properly separated from TFP backend
|
||||
2. **Backward Compatibility**: Maintains existing TFP infrastructure while providing Credits interface
|
||||
3. **Consistent Patterns**: Follows established builder patterns and service architecture
|
||||
4. **Comprehensive Transaction Types**: All necessary transaction types implemented
|
||||
5. **Professional UI**: Clean, intuitive user experience matching modern SaaS platforms
|
||||
|
||||
### Technical Debt Assessment: LOW
|
||||
The implementation is architecturally sound with minimal technical debt. The 135 compilation warnings are primarily unused development artifacts, not structural issues.
|
||||
|
||||
### Scalability: EXCELLENT
|
||||
The current architecture supports future enhancements:
|
||||
- Multiple payment methods
|
||||
- Advanced analytics
|
||||
- Enterprise features
|
||||
- International currency support
|
||||
|
||||
---
|
||||
|
||||
## Testing Strategy
|
||||
|
||||
### Week 1 Testing (Critical Path)
|
||||
1. **API Endpoint Testing**: Verify all new routes respond correctly
|
||||
2. **Auto Top-Up Flow**: Test complete insufficient balance → auto top-up → purchase flow
|
||||
3. **Legal Document Review**: Verify all TFP references updated
|
||||
4. **Regression Testing**: Ensure existing functionality unchanged
|
||||
|
||||
### Week 2 Testing (Feature Complete)
|
||||
1. **UI Configuration**: Test auto top-up settings interface
|
||||
2. **Form Validation**: Test input validation and error handling
|
||||
3. **Integration Testing**: Test UI → API → backend flow
|
||||
|
||||
### Week 3 Testing (Optimization)
|
||||
1. **Performance Testing**: Verify cleanup doesn't affect performance
|
||||
2. **Code Quality**: Verify no new warnings introduced
|
||||
3. **Security Review**: Verify unsafe code fixes
|
||||
|
||||
---
|
||||
|
||||
## Deployment Readiness
|
||||
|
||||
### Current State: 85% - NOT PRODUCTION READY
|
||||
- ❌ Auto top-up non-functional (missing API routes)
|
||||
- ❌ Legal documents contain incorrect terms
|
||||
- ✅ Core credits functionality works
|
||||
- ✅ UI completely transformed
|
||||
- ✅ Backend infrastructure solid
|
||||
|
||||
### After Week 1: 95% - PRODUCTION READY
|
||||
- ✅ Auto top-up fully functional
|
||||
- ✅ Legal compliance achieved
|
||||
- ✅ All user-facing features complete
|
||||
|
||||
### After Week 2: 98% - FEATURE COMPLETE
|
||||
- ✅ Professional auto top-up configuration
|
||||
- ✅ Complete user experience
|
||||
|
||||
### After Week 3: 100% - PRODUCTION OPTIMIZED
|
||||
- ✅ Clean, maintainable codebase
|
||||
- ✅ No compilation warnings
|
||||
- ✅ Optimized performance
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
### Week 1 Success Criteria:
|
||||
- [ ] All 8 API routes registered and responding
|
||||
- [ ] Auto top-up flow works end-to-end
|
||||
- [ ] Zero TFP references in legal documents
|
||||
- [ ] All existing functionality preserved
|
||||
|
||||
### Week 2 Success Criteria:
|
||||
- [ ] Users can configure auto top-up settings
|
||||
- [ ] Settings persist and display correctly
|
||||
- [ ] UI matches existing design patterns
|
||||
- [ ] Form validation works properly
|
||||
|
||||
### Week 3 Success Criteria:
|
||||
- [ ] Zero compilation warnings
|
||||
- [ ] Binary size reduced
|
||||
- [ ] Code coverage maintained
|
||||
- [ ] Performance benchmarks met
|
||||
|
||||
---
|
||||
|
||||
## Risk Assessment
|
||||
|
||||
### Low Risk:
|
||||
- **API Route Registration**: Straightforward addition to existing patterns
|
||||
- **Legal Document Updates**: Simple find/replace operations
|
||||
- **UI Implementation**: Following established patterns
|
||||
|
||||
### Medium Risk:
|
||||
- **Controller Method Implementation**: Requires proper error handling and session management
|
||||
- **Auto Top-Up Logic**: Complex interaction between frontend and backend
|
||||
|
||||
### Mitigation Strategies:
|
||||
- **Incremental Testing**: Test each component as implemented
|
||||
- **Rollback Plan**: Git branching strategy for safe rollbacks
|
||||
- **Code Review**: Peer review for critical controller methods
|
||||
|
||||
---
|
||||
|
||||
## Final Recommendation
|
||||
|
||||
**Proceed immediately with Week 1 tasks** to achieve production readiness. The foundation is excellent, and completion requires only straightforward implementation of existing patterns.
|
||||
|
||||
**Total effort for production readiness: 9 hours**
|
||||
|
||||
The credits system transformation has been expertly executed with professional-grade architecture. The remaining work is completion of existing patterns rather than complex new development.
|
||||
|
||||
---
|
||||
|
||||
**Document Version**: 1.0
|
||||
**Created**: 2025-08-02
|
||||
**Status**: Implementation Plan
|
||||
**Next Review**: After Week 1 completion
|
Reference in New Issue
Block a user