npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@kindlo/kyndlo-lib

v1.0.3

Published

Optimized Kindlo MongoDB Library with hybrid approach using native driver and lightweight validation

Downloads

8

Readme

Kyndlo MongoDB Library

A high-performance TypeScript library for MongoDB with native driver optimization and lightweight validation using Zod. Designed specifically for the Kindlo application with ~90% of native driver performance while maintaining type safety.

🚀 Features

  • Native MongoDB Driver: Direct usage for maximum performance (~90% of native driver speed)
  • Zod Validation: Lightweight schema validation instead of heavy ORMs
  • TypeScript Support: Full type safety with comprehensive interfaces
  • Repository Pattern: Clean, maintainable data access layer
  • Service Layer: Comprehensive business logic for all entities
  • Geospatial Queries: Built-in location-based user matching with 2dsphere indexing
  • Activity Management: Complete system for social events, registrations, and payments
  • Payment Processing: Stripe integration with secure transaction handling
  • Assessment System: MBTI personality tests with type-safe enum validation
  • Admin & Role Management: Comprehensive admin system with permission-based access control
  • Notification System: Multi-channel messaging (SMS, email, push, in-app)
  • Analytics & Reviews: User behavior tracking and review management
  • Daily Messages: Personalized messaging system with advanced targeting
  • Animal Spirit System: Dynamic evolution and compatibility matching
  • Question System: Multilingual survey and questionnaire management
  • Compatibility System: Advanced user matching based on MBTI, zodiac, and animal spirits
  • Security Enhanced: Cryptographically secure ID generation and type-safe schemas
  • Performance Optimized: Bulk operations, aggregation pipelines, and comprehensive indexing

📦 Installation

npm install kyndlo-lib

🔧 Dependencies

npm install mongodb zod

🏁 Quick Start

import KyndloLib from 'kyndlo-lib';

async function main() {
  // Initialize the library
  const lib = KyndloLib.getInstance();
  await lib.initialize('mongodb://localhost:27017', 'kindlo');

  // Get services
  const userService = lib.getUserService();
  const activityService = lib.getActivityService();
  const animalService = lib.getAnimalService();
  const messageService = lib.getDailyMessageService();
  const paymentService = lib.getPaymentService();
  const assessmentService = lib.getAssessmentService();

  // Create a new user
  const user = await userService.createUser({
    phone: { number: '+1234567890', verified: false },
    birthdate: new Date('1990-06-15'),
    email: '[email protected]',
    mbti: 'ENFP',
  });

  console.log('User created:', user);

  // Get spirit recommendation
  const spirit = await animalService.getSpiritRecommendation('Leo', 'ENFP');
  console.log('Recommended spirit:', spirit);

  // Create a paid activity
  const activity = await activityService.createActivity({
    title: 'Coffee Meetup',
    description: 'Casual networking over coffee',
    type: 'social',
    date: new Date(Date.now() + 24 * 60 * 60 * 1000),
    duration: 120,
    location: {
      name: 'Central Café',
      address: '123 Main St',
      city: 'New York',
      country: 'USA'
    },
    pricing: { amount: 15, currency: 'USD', isFree: false },
    organizerId: user._id!.toString(),
    organizerName: 'John Doe'
  });

  console.log('Activity created:', activity);

  // Process payment for activity
  const paymentResult = await paymentService.createPaymentIntent(
    user._id!.toString(),
    15,
    'activity_payment',
    'Activity payment for Coffee Meetup',
    { activityId: activity._id!.toString() }
  );

  console.log('Payment created:', paymentResult);

  // Start personality assessment
  const assessment = await assessmentService.startAssessment({
    userId: user._id!.toString(),
    type: 'personality'
  });

  console.log('Assessment started:', assessment);

  // Get personalized daily message
  const message = await messageService.getPersonalizedMessage({
    zodiac: 'Leo',
    mbti: 'ENFP',
    animalSpirit: spirit?.name
  });

  console.log('Daily message:', message);
}

main().catch(console.error);

📚 Core Components

DatabaseConnection

Singleton connection manager for MongoDB:

import { DatabaseConnection } from 'kyndlo-lib';

const db = DatabaseConnection.getInstance();
await db.connect('mongodb://localhost:27017', 'kindlo');

// Get a collection
const collection = db.getCollection('users');

Repositories

UserRepository

High-performance user data management:

import { UserRepository } from 'kyndlo-lib';

const userRepo = new UserRepository();

// Create user
const user = await userRepo.create({
  phone: { number: '+1234567890', verified: false },
  email: '[email protected]',
});

// Find by phone
const foundUser = await userRepo.findByPhone('+1234567890');

// Verify phone
const verified = await userRepo.verifyPhone('+1234567890');

// Find compatible users
const compatible = await userRepo.findCompatibleUsers('spiritId', 'userId', 10);

AnimalRepository

Manage animal spirit definitions:

import { AnimalRepository } from 'kyndlo-lib';

const animalRepo = new AnimalRepository();

// Find optimal spirit
const spirit = await animalRepo.findOptimalSpirit('ENFP', 'Leo', {
  element: 'Fire',
  rarity: 'Epic'
});

// Get random spirits
const randomSpirits = await animalRepo.getRandomSpirits(5);

Services

UserService

Business logic for user operations:

import { UserService } from 'kyndlo-lib';

const userService = new UserService();

// Register with phone verification
const { user, verificationCode } = await userService.registerWithPhone(
  '+1234567890',
  { email: '[email protected]' }
);

// Verify phone code
const verifiedUser = await userService.verifyPhoneCode('+1234567890', '123456');

// Get recommendations
const recommendations = await userService.getRecommendations('userId', 10);

// Add XP
const updatedUser = await userService.addXP('userId', 50, 'daily_login');

ActivityService

Complete activity and event management:

import { ActivityService } from 'kyndlo-lib';

const activityService = new ActivityService();

// Create an activity
const activity = await activityService.createActivity({
  title: 'Coffee Networking',
  description: 'Professional networking event',
  type: 'social',
  date: new Date(),
  duration: 120,
  location: { name: 'Central Café', city: 'New York' },
  pricing: { amount: 15, currency: 'USD', isFree: false },
  organizerId: 'userId123',
  organizerName: 'John Doe'
});

// Join an activity
const result = await activityService.joinActivity('activityId', 'userId');

// Search activities
const activities = await activityService.searchActivities('networking');

// Get upcoming activities
const upcoming = await activityService.getUpcomingActivities(10);

AnimalService

Animal spirit management and evolution:

import { AnimalService } from 'kyndlo-lib';

const animalService = new AnimalService();

// Get spirit recommendation
const spirit = await animalService.getSpiritRecommendation('Leo', 'ENFP');

// Create custom animal spirit
const customSpirit = await animalService.createAnimal({
  name: 'Dragon',
  description: 'Powerful fire spirit',
  element: 'Fire',
  rarity: 'Legendary',
  traits: ['Wisdom', 'Power', 'Leadership'],
  mbtiTypes: ['ENTJ', 'ENFJ'],
  associatedZodiacs: ['Leo', 'Aries'],
  stages: [
    { name: 'Hatchling', level: 1, xpRequired: 0, abilities: ['Fire Breath'] }
  ]
});

// Get evolution stage
const evolution = await animalService.getEvolutionStage('spiritId', 1500);

// Find compatible animals
const compatible = await animalService.findCompatibleAnimals({
  zodiac: 'Leo',
  mbti: 'ENFP',
  element: 'Fire'
});

DailyMessageService

Personalized daily messaging system:

import { DailyMessageService } from 'kyndlo-lib';

const messageService = new DailyMessageService();

// Get personalized message
const message = await messageService.getPersonalizedMessage({
  zodiac: 'Leo',
  mbti: 'ENFP',
  animalSpirit: 'wolf',
  interests: ['personal-growth', 'career']
});

// Create daily message
const newMessage = await messageService.createDailyMessage({
  title: 'Daily Motivation',
  content: 'Today is full of possibilities!',
  type: 'motivational',
  mood: 'positive',
  tags: ['inspiration', 'growth']
});

// Get messages by type
const motivational = await messageService.getMessagesByType('motivational');

// Search messages
const searchResults = await messageService.searchMessages('confidence');

🏭 Service Factory

The library provides a singleton service factory for consistent service instances:

import { ServiceFactory } from 'kyndlo-lib';

// Get service instances (singletons)
const userService = ServiceFactory.getUserService();
const activityService = ServiceFactory.getActivityService();
const animalService = ServiceFactory.getAnimalService();
const messageService = ServiceFactory.getDailyMessageService();
const questionService = ServiceFactory.getQuestionService();

// All subsequent calls return the same instances
const sameUserService = ServiceFactory.getUserService(); // Same instance

🎯 Advanced Features

Geospatial Queries

Find nearby users based on location:

const nearbyUsers = await userService.findNearbyUsers(
  'userId',
  50, // 50km radius
  20  // max 20 results
);

Compatibility Matching

Advanced user matching based on multiple factors:

// Create a match
const match = await userService.createMatch('user1Id', 'user2Id');

// Get compatibility score (automatically calculated)
console.log('Compatibility:', match.compatibilityScore);

Bulk Operations

High-performance bulk operations:

// Bulk insert users
const userIds = await userRepo.bulkInsert([user1, user2, user3]);

// Bulk update last active time
await userRepo.bulkUpdateLastActive(['id1', 'id2', 'id3']);

Aggregation Pipelines

Complex queries using MongoDB aggregation:

const stats = await userRepo.getUserStatistics();
console.log('Total users:', stats.totalUsers);
console.log('Active users:', stats.activeUsers);

📋 New Features in Latest Version

💳 Payment & Transaction System

  • Complete Stripe integration with secure payment processing
  • Payment method storage and management
  • Transaction tracking with computed properties (netAmount calculated dynamically)
  • Subscription management for premium features
  • Activity registration payments with automated processing
  • Cryptographically secure payment intent ID generation

🧠 Assessment & Psychology System

  • Comprehensive MBTI personality assessment sessions
  • Type-safe MBTI enum validation (all 16 types)
  • Secure session management with cryptographically secure session IDs
  • Personality profile analysis and compatibility scoring
  • Dynamic question generation and response tracking

🛡️ Admin & Security System

  • Role-based access control with granular permissions
  • Admin user management with audit logging
  • System settings and configuration management
  • Enhanced security with crypto.randomUUID() for all ID generation
  • Type-safe schemas with z.unknown() instead of z.any()

📱 Multi-Channel Notification System

  • SMS messaging with provider integration (Twilio, AWS SNS)
  • Push notifications for iOS, Android, and web
  • Email messaging with template support
  • In-app notifications with rich content
  • Device registration and token management

📊 Analytics & Review System

  • Comprehensive user behavior tracking
  • Platform-wide analytics and metrics
  • Review and rating system with moderation
  • Review interaction tracking (likes, reports)
  • Advanced analytics for business insights

🏃‍♂️ Enhanced Activity Management

  • Activity registration system with payment integration
  • Secure check-in codes using cryptographically secure generation
  • Participant management with waitlists
  • Activity analytics and reporting
  • Location-based discovery with geospatial indexing

🔒 Security Enhancements

  • All ID generation now uses cryptographically secure methods
  • Payment IDs, session IDs, and check-in codes use crypto.randomUUID()
  • Type safety improvements with z.unknown() for better validation
  • Computed properties prevent data inconsistencies
  • Enhanced permission system for admin operations

## 🔍 Type Safety

Full TypeScript support with Zod validation:

```typescript
import { IUser, UserSchema, IAnimalSpiritDefinition } from 'kyndlo-lib';

// Type-safe user creation
const userData: Partial<IUser> = {
  phone: { number: '+1234567890', verified: false },
  email: '[email protected]',
  mbti: 'ENFP',
};

// Validation with Zod
const validatedUser = UserSchema.parse(userData);

📊 Performance Benefits

  • ~90% of native driver speed (vs 50% with Mongoose)
  • Smaller bundle size - only MongoDB driver + Zod
  • Direct access to MongoDB features - aggregation, transactions, etc.
  • Optimized for serverless - minimal cold start overhead
  • Efficient indexing - automatic index creation for optimal performance

🏗️ Architecture

kyndlo-lib/
├── database/
│   └── connection.ts                    # MongoDB connection management
├── repositories/
│   ├── BaseRepository.ts                # Common repository functionality
│   ├── ActivityRegistrationRepository.ts # Activity registration operations
│   ├── ActivityRepository.ts            # Activity/event operations
│   ├── AnimalRepository.ts              # Animal spirit operations
│   ├── AssessmentSessionRepository.ts   # Assessment session management
│   ├── DailyMessageRepository.ts        # Daily message operations
│   ├── MatchRepository.ts               # Match/connection operations
│   ├── PaymentMethodRepository.ts       # Payment method storage
│   ├── QuestionRepository.ts            # Question/survey operations
│   ├── TransactionRepository.ts         # Transaction and payment operations
│   └── UserRepository.ts                # User data operations
├── services/
│   ├── UserService.ts                   # User business logic
│   ├── AnimalService.ts                 # Animal spirit management
│   ├── ActivityService.ts               # Activity/event management
│   ├── DailyMessageService.ts           # Daily message management
│   ├── QuestionService.ts               # Question/survey management
│   ├── PaymentService.ts                # Payment processing and Stripe integration
│   ├── AssessmentService.ts             # Personality assessment management
│   ├── AdminService.ts                  # Admin operations and role management
│   └── __tests__/                       # Service unit tests
│       ├── ActivityService.test.ts      # Activity service tests
│       ├── AnimalService.test.ts        # Animal service tests
│       └── DailyMessageService.test.ts  # Daily message tests
├── factories/
│   └── ServiceFactory.ts               # Singleton service factory
├── types/
│   ├── User.ts                          # User types and schemas
│   ├── Activity.ts                      # Activity types and schemas
│   ├── ActivityRegistration.ts          # Activity registration types
│   ├── DailyMessage.ts                  # Daily message types and schemas
│   ├── Question.ts                      # Question types and schemas
│   ├── Animal.ts                        # Animal spirit types and schemas
│   ├── Payment.ts                       # Payment and transaction types
│   ├── Assessment.ts                    # Assessment and psychology types
│   ├── Admin.ts                         # Admin and role management types
│   ├── Notification.ts                  # Notification system types
│   └── Analytics.ts                     # Analytics and review types
├── utils/
│   ├── zodiac.ts                        # Zodiac utility functions
│   └── __tests__/
│       └── zodiac.test.ts               # Zodiac utility tests
├── __tests__/
│   └── index.test.ts                    # Main library tests
└── index.ts                             # Main entry point

🧪 Testing

The library includes comprehensive unit tests for all services and core functionality.

Run the test suite:

npm test

Run tests with coverage:

npm run test:coverage

Run tests in watch mode:

npm run test:watch

Test Coverage

The library maintains high test coverage across all services:

  • AnimalService: 92.59% statement coverage with 20 test cases
  • DailyMessageService: 59.77% statement coverage with 15 test cases
  • ActivityService: 52.23% statement coverage with 26 test cases
  • Core utilities: 91.89% statement coverage
  • Type definitions: 72% coverage

Test Structure

src/
├── services/
│   └── __tests__/
│       ├── AnimalService.test.ts      # Animal spirit tests
│       ├── ActivityService.test.ts    # Activity management tests
│       └── DailyMessageService.test.ts # Daily message tests
├── utils/
│   └── __tests__/
│       └── zodiac.test.ts            # Utility function tests
└── __tests__/
    └── index.test.ts                 # Main library tests

All tests use proper mocking of repository dependencies and include both success and error scenarios.

📖 API Reference

Core Classes

  • KyndloLib: Main library class for initialization
  • DatabaseConnection: MongoDB connection manager
  • BaseRepository: Generic repository base class
  • ActivityRegistrationRepository: Activity registration operations
  • ActivityRepository: Activity and event operations
  • AnimalRepository: Animal spirit management
  • AssessmentSessionRepository: Assessment session management
  • DailyMessageRepository: Daily message operations
  • MatchRepository: Match and connection management
  • PaymentMethodRepository: Payment method storage
  • QuestionRepository: Question and survey operations
  • TransactionRepository: Transaction and payment operations
  • UserRepository: User-specific data operations

Services

  • UserService: User business logic and operations
  • AnimalService: Animal spirit management and evolution
  • ActivityService: Activity creation and participation management
  • DailyMessageService: Personalized messaging system
  • QuestionService: Survey and questionnaire management

Factory

  • ServiceFactory: Singleton factory for service instances

Types

📊 Complete Schema Reference

The library provides comprehensive TypeScript types and Zod schemas for all entities:

👤 User System

Core User Types

  • IUser: Complete user profile with authentication, preferences, and social features
  • IPhone: Phone number validation and verification system
  • IUserPreferences: User settings and preferences
  • ILocation: Geospatial location data with 2dsphere indexing
  • IAchievement: User achievements and rewards system
  • IAnimalSpirit: User's animal spirit assignment and evolution
  • IMatch: User matching and compatibility system

User Schemas

import { UserSchema, PhoneSchema, LocationSchema } from 'kyndlo-lib';

// Full user validation
const user = UserSchema.parse({
  phone: { number: '+1234567890', verified: true },
  email: '[email protected]',
  mbti: 'ENFP',
  zodiacSign: 'Leo',
  location: { coordinates: [-74.0059, 40.7128], type: 'Point' }
});

🏃‍♂️ Activity & Event System

Activity Types

  • IActivity: Complete activity/event definition with location, pricing, and participants
  • IPricing: Flexible pricing models (free, paid, donation-based)
  • IActivityRegistration: User registration and payment processing
  • ParticipationResult: Activity join/leave operation results

Activity Schemas

import { ActivitySchema, PricingSchema } from 'kyndlo-lib';

const activity = ActivitySchema.parse({
  title: 'Coffee Networking',
  type: 'social',
  date: new Date(),
  duration: 120,
  location: { name: 'Central Café', city: 'New York' },
  pricing: { amount: 15, currency: 'USD', isFree: false }
});

💳 Payment & Transaction System

Payment Types

  • IPaymentMethod: Stored payment methods with Stripe integration
  • ITransaction: Payment transactions with computed properties
  • ITransactionWithComputed: Extended transaction with calculated fields
  • ISubscription: Subscription management for premium features
  • TransactionHelpers: Utility class for payment calculations

Payment Schemas

import { TransactionSchema, TransactionHelpers } from 'kyndlo-lib';

// Transaction with computed netAmount
const transaction = TransactionHelpers.withComputedProperties({
  amount: 100,
  fee: 5,
  type: 'activity_payment',
  status: 'succeeded'
});

console.log(transaction.netAmount); // 95 (computed automatically)

🧠 Assessment & Psychology System

Assessment Types

  • IAssessmentSession: Personality test sessions with secure session IDs
  • IPersonalityProfile: MBTI and personality analysis results
  • ICompatibilityAssessment: User compatibility scoring
  • IQuizResponse: Individual quiz responses and scoring
  • MBTIType: Type-safe MBTI enum with all 16 types

Assessment Schemas

import { AssessmentSessionSchema, MBTI_TYPES } from 'kyndlo-lib';

// Type-safe MBTI validation
const mbti: MBTIType = 'ENFP'; // Autocomplete with all 16 types
const session = AssessmentSessionSchema.parse({
  userId: new ObjectId(),
  type: 'personality',
  status: 'in_progress'
});

🐾 Animal Spirit System

Animal Types

  • IAnimalSpiritDefinition: Complete animal spirit definitions with evolution stages
  • IAnimalSpirit: User's assigned animal spirit with level and XP
  • IEvolutionStage: Animal evolution stages and abilities

Animal Schemas

import { AnimalSpiritDefinitionSchema } from 'kyndlo-lib';

const dragonSpirit = AnimalSpiritDefinitionSchema.parse({
  name: 'Dragon',
  element: 'Fire',
  rarity: 'Legendary',
  mbtiTypes: ['ENTJ', 'ENFJ'],
  stages: [
    { name: 'Hatchling', level: 1, xpRequired: 0 },
    { name: 'Young Dragon', level: 25, xpRequired: 1000 }
  ]
});

📝 Question & Survey System

Question Types

  • IQuestion: Survey questions with localization support
  • IAnswerOption: Multiple choice answers with scoring
  • ILocalizedText: Multi-language text support

Question Schemas

import { QuestionSchema, LocalizedTextSchema } from 'kyndlo-lib';

const question = QuestionSchema.parse({
  text: { en: 'How do you prefer to socialize?', es: '¿Cómo prefieres socializar?' },
  type: 'multiple_choice',
  category: 'personality',
  difficulty: 'medium'
});

📱 Notification System

Notification Types

  • ISMS: SMS messaging with provider integration
  • IPushNotification: Mobile push notifications
  • IEmail: Email messaging with template support
  • INotification: In-app notifications
  • IDevice: User device registration for push notifications

Notification Schemas

import { PushNotificationSchema, EmailSchema } from 'kyndlo-lib';

// Type-safe notification data
const pushNotification = PushNotificationSchema.parse({
  title: 'New Match!',
  body: 'You have a new compatible user nearby',
  deviceTokens: ['device_token_123'],
  actionData: { userId: 'user123', type: 'match' } // z.unknown() for safety
});

📊 Analytics & Admin System

Analytics Types

  • IAnalyticsEvent: User behavior tracking
  • IUserBehavior: User engagement analytics
  • IPlatformAnalytics: Platform-wide statistics
  • IReview: User reviews and ratings
  • IReviewInteraction: Review likes, reports, etc.

Admin Types

  • IAdminUser: Admin user management with role-based access
  • IRole: Permission-based role system
  • IPermission: Granular permission definitions
  • IActivityLog: System activity auditing
  • ISystemSetting: Configuration management

Admin Schemas

import { AdminUserSchema, RoleSchema } from 'kyndlo-lib';

const adminRole = RoleSchema.parse({
  name: 'content_moderator',
  permissions: ['content:read', 'content:moderate', 'users:view'],
  description: 'Can moderate content and view users'
});

💬 Daily Message System

Message Types

  • IDailyMessage: Personalized daily messages with targeting
  • MessageTargeting: Advanced targeting by MBTI, zodiac, and animal spirit

Message Schemas

import { DailyMessageSchema } from 'kyndlo-lib';

const message = DailyMessageSchema.parse({
  content: { en: 'Your creative energy is strong today!', es: '¡Tu energía creativa está fuerte hoy!' },
  type: 'motivational',
  targeting: { mbtiTypes: ['ENFP', 'ENFJ'], zodiacSigns: ['Leo'] }
});

🔒 Security Features

All schemas include security enhancements:

  • Cryptographically secure ID generation using crypto.randomUUID() and crypto.randomBytes()
  • Type-safe data validation with z.unknown() instead of z.any()
  • Computed properties to prevent data inconsistencies
  • Role-based access control for admin operations
  • Secure session management for assessments and payments

Schemas

All types include corresponding Zod schemas for validation:

  • UserSchema, PhoneSchema, AnimalSpiritSchema, ActivitySchema, DailyMessageSchema, QuestionSchema, PaymentMethodSchema, TransactionSchema, AssessmentSessionSchema, NotificationSchema, AdminUserSchema, AnalyticsEventSchema, and more.

🔧 Configuration

Database Indexes

The library automatically creates optimized indexes for all collections:

  • Users: Phone number (unique), email (unique, sparse), MBTI type, zodiac signs, geospatial location (2dsphere), animal spirit references, achievements, XP levels
  • Activities: Date, type, status, location (2dsphere), tags, organizer, participants, pricing
  • Activity Registrations: Activity ID + User ID (unique), payment status, check-in codes, registration date
  • Daily Messages: Date, type, zodiac, MBTI, animal spirit, tags, targeting criteria, view counts
  • Animals: Element, rarity, category, MBTI types, zodiac associations, evolution stages
  • Questions: Type, category, difficulty, tags, localization, answer options
  • Matches: User references, compatibility scores, creation date, status
  • Payments: User ID + status + date, Stripe IDs (unique), transaction types, amounts
  • Transactions: Payment intent IDs (unique), user transactions, activity payments, subscription billing
  • Assessment Sessions: User sessions, session IDs (unique), assessment types, completion status
  • Notifications: User targeting, device tokens, delivery status, notification types
  • Admin Users: Username (unique), role assignments, permission levels, activity logs
  • Analytics: Event types, user behavior, platform metrics, review interactions
  • Reviews: Entity references, ratings, user interactions, moderation status

Performance Tuning

// Connection options for performance
await db.connect('mongodb://localhost:27017', 'kindlo', {
  maxPoolSize: 10,
  serverSelectionTimeoutMS: 5000,
  socketTimeoutMS: 45000,
});

🚀 Migration from Mongoose

Easy migration path:

  1. Replace Mongoose models with repositories
  2. Update schema definitions to use Zod
  3. Replace Mongoose queries with repository methods
  4. Use aggregation pipelines for complex queries

📝 License

MIT License - see LICENSE file for details.

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new functionality
  4. Ensure all tests pass
  5. Submit a pull request

📞 Support

For issues and questions:


Built with ❤️ by the Kindlo team for high-performance MongoDB applications.