# LuckyChit - Revised Development Plan ## Digital Platform for Lottery-Based Indian Chit Funds ### Executive Summary LuckyChit is a **Flutter Web-based** digital solution designed to streamline traditional Indian lottery-based chit funds. The platform consists of a **single Flutter Web application** with **dual interfaces** - a **Manager Dashboard** and a **Member Dashboard**, implementing a fixed prize, winner-by-lottery system without auctions or dividends. The MVP approach focuses on manager-controlled onboarding and core functionality validation through a unified web experience. --- ## 1. Detailed Feature List (User Stories) ### 1.1 Onboarding & Authentication (MVP Approach) #### Manager Account Creation - **As a Manager**, I want to create an account (e.g., with a mobile number and a temporary password) for a new member, so I can securely add trusted individuals to my chit groups. - **As a Manager**, I want to manage all member accounts from my web dashboard, so I have complete control over who joins my groups. - **As a Manager**, I want to reset member passwords when needed, so I can help members who forget their credentials. #### Member First-Time Login - **As a new Member**, I want to log in for the first time using the credentials given by my manager and be prompted to set a new, secure password, so my account is private and accessible only to me. - **As a Member**, I want to update my profile information after first login, so my details are accurate in the system. - **As a Member**, I want to set up my preferred payment methods, so I can easily make monthly payments. ### 1.2 Chit Manager Features (Flutter Web Dashboard) #### Dashboard - **As a Manager**, I want a comprehensive web dashboard to view all my chit groups, see upcoming payment deadlines, track total collections, and see the next draw dates at a glance. - **As a Manager**, I want to see real-time statistics including total members, active groups, and monthly collections across all my groups. - **As a Manager**, I want to view pending actions like member approvals and payment reconciliations in a prioritized list. - **As a Manager**, I want to see quick summaries of recent draws and upcoming events. #### Chit Group Creation - **As a Manager**, I want to create a new chit group, defining its value (e.g., ₹1,00,000), duration (20 months), number of members (20), monthly installment (₹5,000), and my fixed commission percentage (e.g., 5%). - **As a Manager**, I want to set the monthly installment amount and draw date for each group. - **As a Manager**, I want to configure payment reminders and late payment policies. - **As a Manager**, I want to generate unique group codes for easy member identification. #### Member Management - **As a Manager**, I want to add my registered members to a specific chit group, monitor their real-time payment status (Paid/Unpaid), and have the option to remove them if necessary. - **As a Manager**, I want to view member profiles including their payment history and participation status. - **As a Manager**, I want to send bulk notifications to all group members about important updates. - **As a Manager**, I want to export member lists and payment reports for accounting purposes. #### Automated Lottery/Draw System - **As a Manager**, I want to initiate a secure and verifiable digital lottery with a single click, which randomly selects a winner from the list of paid, eligible members. - **As a Manager**, I want to schedule automatic draws on predetermined dates. - **As a Manager**, I want to view the complete draw history with timestamps and winner details. - **As a Manager**, I want to generate audit logs for all lottery draws for transparency. #### Payment Reconciliation - **As a Manager**, I want the system to automatically mark members as 'Paid' when they complete a transaction, giving me a clear view of who is yet to pay. - **As a Manager**, I want to send automated payment reminders to defaulters. - **As a Manager**, I want to view payment analytics including collection rates and trends. - **As a Manager**, I want to manually override payment status if needed for offline payments. #### Payout Management - **As a Manager**, I want to log the date and transaction details of the prize payout to the winner, creating an auditable record for the group. - **As a Manager**, I want to generate payout receipts and certificates for winners. - **As a Manager**, I want to track all payout transactions with status updates. - **As a Manager**, I want to view payout history and generate financial reports. ### 1.3 Member Features (Flutter Web Member Interface) #### Group Discovery - **As a Member**, after being added by my manager, I want to see the chit groups I've been assigned to on my web dashboard. - **As a Member**, I want to view group details including total value, duration, and member count. - **As a Member**, I want to see the foreman's contact information for direct communication. - **As a Member**, I want to view my position and status within each group. #### Payment Dashboard - **As a Member**, I want a simple web interface that clearly shows my next payment amount, the due date, and my complete payment history. - **As a Member**, I want to receive payment reminders before due dates. - **As a Member**, I want to view my payment status across all my chit groups. - **As a Member**, I want to download payment receipts for tax purposes. #### Integrated Payments - **As a Member**, I want to pay my monthly installment easily and securely through UPI (like Google Pay, PhonePe) with a single click from my web browser. - **As a Member**, I want to set up automatic recurring payments for monthly installments. - **As a Member**, I want to choose from multiple payment methods including UPI, net banking, and cards. - **As a Member**, I want to receive instant payment confirmation and receipts. #### Lottery Transparency - **As a Member**, I want to view the list of all eligible participants before each draw and receive an instant notification with the lottery result, so I can trust the process is fair. - **As a Member**, I want to receive real-time notifications when I win a prize. - **As a Member**, I want to view the complete draw history of my groups. - **As a Member**, I want to see the provably fair algorithm details for transparency. #### Transaction Ledger - **As a Member**, I want a complete, easy-to-read statement of all my contributions and my prize winnings (if any). - **As a Member**, I want to export my transaction history for personal records. - **As a Member**, I want to view tax summaries for financial planning. - **As a Member**, I want to track my net position across all chit groups. --- ## 2. Core Application Workflows ### 2.1 The Monthly Draw Cycle (Unified Flutter Web) #### Phase 1: Payment Collection (Days 1-25) 1. **Automated Reminders**: Web app sends browser notifications to members on days 1, 15, and 20 2. **Payment Processing**: Members pay via web app using integrated UPI gateway 3. **Payment Verification**: System confirms payments and updates member status 4. **Collection Tracking**: Manager monitors real-time collection progress on web dashboard #### Phase 2: Eligibility Confirmation (Day 26) 1. **Payment Deadline**: Final payment cutoff at 11:59 PM on day 25 2. **Eligibility List Generation**: System creates final list of eligible members 3. **Transparency Display**: List is visible to all group members on web app and to Manager on dashboard 4. **Audit Log Creation**: Complete audit trail of eligibility determination #### Phase 3: Lottery Execution (Day 27) 1. **Draw Initiation**: Manager logs into web app and clicks "Conduct Draw" button 2. **Random Selection**: Backend executes provably fair random selection algorithm 3. **Result Verification**: Cryptographic proof of fairness generated 4. **Winner Declaration**: System announces winner to all members #### Phase 4: Winner Declaration (Day 27) 1. **Real-time Notification**: All members receive instant winner announcement via browser notification 2. **Result Display**: Winner details shown on Manager's web dashboard and member web interfaces 3. **Audit Trail**: Complete draw process logged for transparency 4. **Certificate Generation**: Digital winner certificate created #### Phase 5: Payout (Days 28-30) 1. **Prize Calculation**: System calculates prize amount (Total - Commission) 2. **Offline Payout**: Manager disburses prize money offline 3. **Transaction Recording**: Manager logs payout details in web app for record-keeping 4. **Receipt Generation**: Digital receipt sent to winner via web interface ### 2.2 Defaulter Handling #### Late Payment Process 1. **Automatic Exclusion**: Member automatically excluded from draw if payment not received by deadline 2. **Status Update**: Payment status updated to "Unpaid" on web platform 3. **Manager Notification**: Manager receives alert about unpaid members on web dashboard 4. **Offline Follow-up**: Manager follows up with defaulters offline #### Recovery Process 1. **Payment Recovery**: Member can pay outstanding amount via web app 2. **Reinstatement**: Member reinstated after full payment 3. **Manual Override**: Manager can manually mark payments as received for offline transactions 4. **Future Planning**: System tracks default patterns for future reference --- ## 3. Recommended Technology Stack ### 3.1 Frontend (Unified Flutter Web) #### Primary Recommendation: Flutter Web **Justification**: - **Single Codebase**: Build both Manager and Member interfaces from one Flutter Web codebase - **Cost Efficiency**: Drastically reduces development time and costs - **Consistent Experience**: Same business logic and UI components across interfaces - **Performance**: Excellent performance on modern web browsers - **Responsive Design**: Automatic adaptation to different screen sizes - **PWA Capabilities**: Can be installed as a web app on mobile devices - **Future-Proof**: Easy to add mobile apps later if needed #### Interface Differentiation Strategy - **Manager Dashboard**: Desktop-optimized layout with data-rich interface - **Member Dashboard**: Mobile-responsive design with simplified interface - **Role-based Routing**: Automatic interface switching based on user role - **Shared Components**: Common UI components and business logic ### 3.2 Backend #### Primary Recommendation: Node.js with Express.js **Justification**: - **JavaScript/TypeScript**: Unified language across frontend and backend - **Real-time Features**: Excellent support for WebSockets and real-time updates - **Payment Integration**: Rich ecosystem for payment gateway integrations - **Scalability**: Easy to scale from monolith to microservices - **Development Speed**: Rapid development with extensive npm ecosystem #### Alternative: Python with FastAPI **Justification**: - **Data Processing**: Excellent for analytics and reporting features - **Machine Learning**: Easy integration with ML libraries for future features - **Performance**: High performance with async support - **Documentation**: Auto-generated API documentation ### 3.3 Provably Fair Lottery Algorithm #### Implementation Strategy ```javascript class ProvablyFairLottery { constructor() { this.serverSeed = this.generateServerSeed(); this.serverSeedHash = this.hashSeed(this.serverSeed); } // Before draw: Publish server seed hash getServerSeedHash() { return this.serverSeedHash; } // During draw: Generate result generateResult(clientSeed, nonce, eligibleMembers) { const combined = this.serverSeed + clientSeed + nonce.toString(); const hash = crypto.createHash('sha256').update(combined).digest('hex'); const randomNumber = parseInt(hash.substring(0, 8), 16); const winnerIndex = randomNumber % eligibleMembers.length; return { winnerId: eligibleMembers[winnerIndex].id, serverSeed: this.serverSeed, // Revealed after draw serverSeedHash: this.serverSeedHash, clientSeed, nonce, resultHash: hash, proof: { combined, randomNumber, winnerIndex } }; } // Verification: Users can verify fairness verifyResult(serverSeed, clientSeed, nonce, resultHash, eligibleMembers, winnerId) { const combined = serverSeed + clientSeed + nonce.toString(); const calculatedHash = crypto.createHash('sha256').update(combined).digest('hex'); if (calculatedHash !== resultHash) return false; const randomNumber = parseInt(calculatedHash.substring(0, 8), 16); const winnerIndex = randomNumber % eligibleMembers.length; return eligibleMembers[winnerIndex].id === winnerId; } } ``` ### 3.4 Database #### Primary: PostgreSQL **Justification**: - **ACID Compliance**: Critical for financial transactions - **JSON Support**: Flexible data storage for complex objects - **Performance**: Excellent indexing and query optimization - **Reliability**: Enterprise-grade database for financial applications - **Scalability**: Easy to scale with read replicas and sharding ### 3.5 Real-time Notifications #### Technology Stack - **Browser Notifications**: Web Notifications API - **Web Real-time**: WebSockets (Socket.io) - **In-app Notifications**: Custom notification center - **Email Notifications**: Nodemailer or SendGrid ### 3.6 Payment Gateway #### Primary Recommendation: Razorpay **Justification**: - **UPI Support**: Excellent UPI integration for Indian market - **API Quality**: Comprehensive and well-documented APIs - **Security**: PCI DSS compliant with robust security features - **Support**: Excellent customer support and dispute resolution - **Pricing**: Competitive transaction fees ### 3.7 Cloud & DevOps #### Primary Recommendation: AWS **Services**: - **Compute**: EC2 Auto Scaling Groups or ECS Fargate - **Database**: RDS PostgreSQL with Multi-AZ deployment - **Storage**: S3 for file storage and backups - **CDN**: CloudFront for static assets - **Monitoring**: CloudWatch for application and infrastructure monitoring - **CI/CD**: AWS CodePipeline or GitHub Actions --- ## 4. Non-Functional Requirements ### 4.1 Transparency & Fairness - **Provably Fair Algorithm**: Cryptographic hash chain with verifiable randomness - **Pre-published Hashes**: Server seed hash published before each draw - **Public Verification**: Members can verify draw fairness independently - **Audit Trail**: Complete logging of all lottery draws with cryptographic proofs ### 4.2 Security - **Data Encryption**: AES-256 encryption for sensitive data - **API Security**: JWT tokens with refresh mechanism - **Payment Security**: PCI DSS compliance - **Password Security**: Secure password hashing (bcrypt) - **Role-based Access**: Manager vs. Member permissions ### 4.3 Compliance - **Chit Fund Act, 1982**: Architecture designed for future KYC integration - **Data Privacy**: GDPR and Indian data protection laws compliance - **Financial Records**: Complete audit trail for all transactions - **Tax Compliance**: GST and TDS reporting capabilities ### 4.4 Scalability - **Monolith First**: Well-structured monolith on AWS/GCP for MVP - **Microservices Ready**: Architecture designed for future microservices migration - **Database Scaling**: Read replicas and connection pooling - **CDN**: Global content delivery for static assets ### 4.5 Usability & UI/UX - **Manager Web Interface**: Data-rich interface optimized for desktop use - **Member Web Interface**: Simple, focused interface for payments and results - **Responsive Design**: Mobile-first approach for member interface - **Accessibility**: WCAG 2.1 compliance for both interfaces - **PWA Features**: Installable web app with offline capabilities --- ## 5. High-Level Project Roadmap ### Phase 1: MVP - The Private Management Tool (Months 1-4) #### Goal Launch with a few trusted Chit Fund Managers to validate core functionality. #### Platform - **Unified Flutter Web App**: Single web application with dual interfaces - **Manager Dashboard**: Comprehensive web interface for chit fund management - **Member Dashboard**: Mobile-responsive web interface for member interactions #### Core Features - **Manager Account Creation**: Managers create member accounts - **Group Management**: Create groups, add members, configure settings - **Payment Collection**: UPI integration for monthly payments - **Lottery System**: Provably fair draw execution - **Basic Reporting**: Payment status and draw history #### Success Criteria - 5-10 trusted managers using the platform - 100+ members successfully making payments - 20+ successful lottery draws completed - Payment success rate > 95% ### Phase 2: Growth & Compliance (Months 5-8) #### Feature 1: Self-Onboarding & e-KYC (Priority 1) - **Public Registration**: Self-service member registration - **Aadhaar/PAN Verification**: Full KYC integration - **Document Upload**: Profile photo and identity documents - **Verification Workflow**: Automated and manual verification processes #### Feature 2: Automated Defaulter Management - **Late Payment Penalties**: Automated penalty calculation - **Escalation Workflows**: Progressive reminder system - **Payment Plans**: Flexible payment arrangements - **Recovery Automation**: Automated recovery processes #### Feature 3: Enhanced Reporting - **Financial Analytics**: Detailed financial reports for managers - **Member Analytics**: Payment patterns and behavior analysis - **Compliance Reports**: Regulatory reporting capabilities - **Export Functionality**: Data export for accounting systems ### Phase 3: Scale & Ecosystem (Months 9-12) #### Public Chit Group Listings - **Marketplace**: Public discovery of chit groups - **Group Ratings**: Member reviews and ratings - **Search & Filter**: Advanced group discovery features - **Trust Scores**: Reputation system for managers #### Credit Scoring Integration - **Member Credit Profiles**: Credit history and scoring - **Risk Assessment**: Automated risk evaluation - **Lending Integration**: Connect with financial institutions - **Credit Reports**: Credit score tracking and reporting #### Advanced Chit Fund Models - **Auction-based Chits**: Support for traditional auction models - **Hybrid Models**: Combination of lottery and auction - **Custom Rules**: Flexible rule configuration - **Multi-tier Groups**: Complex group structures --- ## 6. Technical Architecture ### 6.1 System Architecture ``` ┌─────────────────────────────────────────┐ │ Flutter Web Application │ │ │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ Manager │ │ Member │ │ │ │ Dashboard │ │ Dashboard │ │ │ │ (Desktop UI) │ │ (Mobile UI) │ │ │ └─────────────────┘ └─────────────────┘ │ └─────────────────────────────────────────┘ │ │ ┌─────────────────┐ │ API Gateway │ │ (Express.js) │ └─────────────────┘ │ ┌─────────────────┐ │ PostgreSQL │ │ (Primary DB) │ └─────────────────┘ │ ┌─────────────────┐ │ Redis │ │ (Cache/Queue) │ └─────────────────┘ ``` ### 6.2 Database Schema (Simplified MVP) #### Users Table ```sql CREATE TABLE users ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), mobile_number VARCHAR(15) UNIQUE NOT NULL, full_name VARCHAR(255) NOT NULL, password_hash VARCHAR(255) NOT NULL, role ENUM('manager', 'member') NOT NULL, created_by UUID REFERENCES users(id), -- Manager who created this account is_active BOOLEAN DEFAULT true, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ``` #### Chit Groups Table ```sql CREATE TABLE chit_groups ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name VARCHAR(255) NOT NULL, total_value DECIMAL(15,2) NOT NULL, monthly_installment DECIMAL(15,2) NOT NULL, duration_months INTEGER NOT NULL, max_members INTEGER NOT NULL, foreman_commission_percentage DECIMAL(5,2) NOT NULL, draw_date INTEGER NOT NULL, -- Day of month status ENUM('forming', 'active', 'completed') DEFAULT 'forming', manager_id UUID REFERENCES users(id), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ``` #### Group Members Table ```sql CREATE TABLE group_members ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), group_id UUID REFERENCES chit_groups(id), user_id UUID REFERENCES users(id), status ENUM('active', 'suspended', 'removed') DEFAULT 'active', joined_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UNIQUE(group_id, user_id) ); ``` #### Monthly Draws Table ```sql CREATE TABLE monthly_draws ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), group_id UUID REFERENCES chit_groups(id), month INTEGER NOT NULL, year INTEGER NOT NULL, draw_date TIMESTAMP NOT NULL, eligible_members JSONB NOT NULL, winner_id UUID REFERENCES users(id), prize_amount DECIMAL(15,2), server_seed VARCHAR(255), server_seed_hash VARCHAR(255), client_seed VARCHAR(255), nonce INTEGER, result_hash VARCHAR(255), status ENUM('pending', 'completed') DEFAULT 'pending', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UNIQUE(group_id, month, year) ); ``` #### Payments Table ```sql CREATE TABLE payments ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), group_id UUID REFERENCES chit_groups(id), user_id UUID REFERENCES users(id), month INTEGER NOT NULL, year INTEGER NOT NULL, amount DECIMAL(15,2) NOT NULL, payment_method ENUM('upi', 'offline') NOT NULL, transaction_id VARCHAR(255), status ENUM('pending', 'success', 'failed') DEFAULT 'pending', paid_at TIMESTAMP, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UNIQUE(group_id, user_id, month, year) ); ``` --- ## 7. Development Timeline ### Month 1: Foundation - **Week 1-2**: Project setup, architecture design, development environment - **Week 3-4**: Basic Flutter Web app structure, authentication system ### Month 2: Core Features - **Week 5-6**: Group management, member management - **Week 7-8**: Payment integration, basic dashboard ### Month 3: Lottery System - **Week 9-10**: Provably fair algorithm implementation - **Week 11-12**: Draw execution, result broadcasting ### Month 4: Testing & Launch - **Week 13-14**: End-to-end testing, bug fixes - **Week 15-16**: Production deployment, MVP launch --- ## 8. Success Metrics ### Technical Metrics - **App Performance**: < 3 seconds load time - **API Response Time**: < 500ms p95 - **System Uptime**: > 99.9% - **Payment Success Rate**: > 99% ### Business Metrics - **Manager Adoption**: 10+ managers in first 3 months - **Member Engagement**: 500+ active members - **Payment Volume**: ₹50 Lakhs in first 6 months - **Draw Success Rate**: 100% successful draws ### User Experience Metrics - **Manager Satisfaction**: > 4.5/5 rating - **Member Retention**: > 80% after 30 days - **Payment Completion**: > 95% on-time payments - **Support Tickets**: < 5% of users --- ## 9. Risk Assessment & Mitigation ### Technical Risks - **Risk**: Lottery algorithm compromise - **Mitigation**: Regular security audits, open-source verification ### Business Risks - **Risk**: Low manager adoption - **Mitigation**: Focus on trusted managers, provide excellent support ### Compliance Risks - **Risk**: Regulatory changes affecting chit funds - **Mitigation**: Legal consultation, flexible architecture --- ## 10. Conclusion The revised LuckyChit development plan focuses on a practical MVP approach with manager-controlled onboarding and a unified Flutter Web platform. This approach reduces complexity while ensuring core functionality validation before scaling. **Key Advantages of This Approach**: 1. **Reduced Complexity**: No public KYC in MVP phase 2. **Trusted Network**: Start with known, trusted managers 3. **Unified Technology**: Single Flutter Web codebase for both interfaces 4. **Proven Fairness**: Cryptographic lottery algorithm builds trust 5. **Scalable Architecture**: Easy to add features in future phases 6. **Cost Efficiency**: Single codebase reduces development and maintenance costs 7. **PWA Capabilities**: Can be installed on mobile devices as a web app **Next Steps**: 1. Finalize technology stack and architecture 2. Begin Phase 1 development with MVP features 3. Establish partnerships with payment gateways 4. Set up development and testing environments 5. Start with 2-3 trusted managers for initial validation