25 KiB
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)
- Automated Reminders: Web app sends browser notifications to members on days 1, 15, and 20
- Payment Processing: Members pay via web app using integrated UPI gateway
- Payment Verification: System confirms payments and updates member status
- Collection Tracking: Manager monitors real-time collection progress on web dashboard
Phase 2: Eligibility Confirmation (Day 26)
- Payment Deadline: Final payment cutoff at 11:59 PM on day 25
- Eligibility List Generation: System creates final list of eligible members
- Transparency Display: List is visible to all group members on web app and to Manager on dashboard
- Audit Log Creation: Complete audit trail of eligibility determination
Phase 3: Lottery Execution (Day 27)
- Draw Initiation: Manager logs into web app and clicks "Conduct Draw" button
- Random Selection: Backend executes provably fair random selection algorithm
- Result Verification: Cryptographic proof of fairness generated
- Winner Declaration: System announces winner to all members
Phase 4: Winner Declaration (Day 27)
- Real-time Notification: All members receive instant winner announcement via browser notification
- Result Display: Winner details shown on Manager's web dashboard and member web interfaces
- Audit Trail: Complete draw process logged for transparency
- Certificate Generation: Digital winner certificate created
Phase 5: Payout (Days 28-30)
- Prize Calculation: System calculates prize amount (Total - Commission)
- Offline Payout: Manager disburses prize money offline
- Transaction Recording: Manager logs payout details in web app for record-keeping
- Receipt Generation: Digital receipt sent to winner via web interface
2.2 Defaulter Handling
Late Payment Process
- Automatic Exclusion: Member automatically excluded from draw if payment not received by deadline
- Status Update: Payment status updated to "Unpaid" on web platform
- Manager Notification: Manager receives alert about unpaid members on web dashboard
- Offline Follow-up: Manager follows up with defaulters offline
Recovery Process
- Payment Recovery: Member can pay outstanding amount via web app
- Reinstatement: Member reinstated after full payment
- Manual Override: Manager can manually mark payments as received for offline transactions
- 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
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
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
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
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
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
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:
- Reduced Complexity: No public KYC in MVP phase
- Trusted Network: Start with known, trusted managers
- Unified Technology: Single Flutter Web codebase for both interfaces
- Proven Fairness: Cryptographic lottery algorithm builds trust
- Scalable Architecture: Easy to add features in future phases
- Cost Efficiency: Single codebase reduces development and maintenance costs
- PWA Capabilities: Can be installed on mobile devices as a web app
Next Steps:
- Finalize technology stack and architecture
- Begin Phase 1 development with MVP features
- Establish partnerships with payment gateways
- Set up development and testing environments
- Start with 2-3 trusted managers for initial validation