1.0.6 • Published 9 months ago

saksh-real-estate v1.0.6

Weekly downloads
-
License
MIT
Repository
-
Last release
9 months ago

Saksh Real Estate

A powerful Node.js package designed for managing properties and generating personalized recommendations using ChatGPT.

Saksh Real Estate Banner

Features

  • Property Management: Create, read, update, and delete properties effortlessly.
  • Advanced Search: Search properties based on various criteria such as location, type, price range, and more.
  • Similar Properties: Discover properties similar to a given property based on location, type, and price range.
  • Property Recommendations: Generate tailored property recommendations based on user browsing history and preferences using ChatGPT.
  • Predict Property Value: Leverage AI to predict the value of a property.
  • Change Logs: Maintain a comprehensive log of changes made to properties.

Installation

To install the package, use npm:

npm install saksh-real-estate

Usage

Setting Up

Begin by setting up your Express server and MongoDB connection:

 
// Import necessary modules
const mongoose = require('mongoose');
const { SakshPropertyClass } = require('saksh-real-estate');

// Connect to MongoDB
mongoose.connect('mongodb://localhost:27017/propertyDB', { useNewUrlParser: true, useUnifiedTopology: true })
    .then(() => console.log('MongoDB connected'))
    .catch(err => console.error('MongoDB connection error:', err));

// Create an instance of the class
const propertyManager = new SakshPropertyClass();

// Example usage
async function main() {
    try {
        // Create a new property
        const newProperty = await propertyManager.sakshCreate({
            propertyID: 'prop1232',
            address: '123 Main St',
            price: 500000,
            ownerID: 'owner123',
            neighborhood: 'Downtown',
            type: 'Apartment'
        });
        console.log('New Property Created:', newProperty);

        // Retrieve all properties
        const properties = await propertyManager.sakshGetAll();
        console.log('All Properties:', properties);

        // Retrieve a property by ID
        const propertyById = await propertyManager.sakshGetById(newProperty.propertyID);
        console.log('Property By ID:', propertyById);

        // Update a property
        const updatedProperty = await propertyManager.sakshUpdate(newProperty._id, {
            price: 550000
        });
        console.log('Updated Property:', updatedProperty);

        // Delete a property
        const deletedProperty = await propertyManager.sakshDelete(newProperty._id);
        console.log('Deleted Property:', deletedProperty);

        // Search for properties
        const searchResults = await propertyManager.sakshSearch({ neighborhood: 'Downtown' });
        console.log('Search Results:', searchResults);

        // Recommend properties based on preferences
        const recommendedProperties = await propertyManager.sakshRecommendProperties({
            location: 'Downtown',
            type: 'Apartment',
            minPrice: 400000,
            maxPrice: 600000
        });
        console.log('Recommended Properties:', recommendedProperties);

    } catch (error) {
        console.error('Error:', error.message);
    } finally {
        // Close the MongoDB connection
        mongoose.connection.close();
    }
}

// Run the example
main();

Event Handling with SakshPropertyClass

You can also handle events related to property management with the SakshPropertyClass. Here’s how:

propertyClass.on('propertyCreated', (property) => {
  console.log(`Property created: ${property._id}`);
});

propertyClass.on('propertyUpdated', (property) => {
  console.log(`Property updated: ${property._id}`);
});

propertyClass.on('propertyDeleted', (property) => {
  console.log(`Property deleted: ${property._id}`);
});
 

License

MIT

Contact

For any inquiries or support, please contact: susheel2339@gmail.com