/partmin

automating the tedium of your apartment hunt.

Primary LanguageTypeScriptOtherNOASSERTION

@partmin - automating the tedium of your apartment hunt

This project is a self-hosted Discord bot that aggregates property rental listings from multiple platforms, sending interactive notifications about new listings that match your criteria.

Listings are retrieved from the following platforms:

demo

Features include:

  • search with precision by defining multiple search radii:

  • commute time estimates are provided for each listing via Google Maps Distance Matrix API:

  • granular filtering options:

    • number of bedrooms, size, parking, roommates, pet-friendliness, etc.
    • omit basements, sublets, or swaps
    • blacklist specific phrases (regular expressions supported!)
  • check on the bot's activity by viewing its status:

  • tweak your search on-the-fly with slash commands:


Important Notes

  • Currently, only 🇨🇦 cities are supported.

  • This project is still in development; be warned that it is not yet 100% stable and may contain bugs.

  • A Google Maps API key with permissions for the Geocoding and Distance Matrix APIs is required.

    • Please note that the free tier of the Google Maps API has usage limits, but if you're using partmin for personal use, you're unlikely to exceed these limits.
    • You can obtain your API key from the Google Cloud Console.

Getting Started

  1. Clone this repository.

    git clone https://github.com/vxsl/partmin
  2. Create a file called .env in the root directory of the project.

    cd partmin && touch .env
  3. Obtain your Discord server's ID by opening Discord, right-clicking your server in the sidebar, and navigating to Server Settings > Widget > SERVER ID.

    Copy and paste the ID in your .env file:

    DISCORD_SERVER_ID=your-server-id
    

    Note that partmin will create channels in this server, so make sure you have the necessary permissions to do so.

  4. Create a bot in the Discord Developer Portal.

  5. Obtain the bot token from the Bot section of your application's control panel in the developer portal.

    Copy and paste the token in your .env file:

    DISCORD_TOKEN=your-bot-token
    
  6. Obtain the application ID from the General Information section of your application's control panel in the developer portal.

    Copy and paste the ID in your .env file:

    DISCORD_APP_ID=your-application-id
    
  7. Start partmin.

    The easiest way is to use Docker Compose:

    docker compose up --build

    You can also run partmin without Docker, but there will be additional setup required. (please refer to the Dockerfile for the necessary dependencies):

    yarn install
    yarn bot
  8. 🚀 Your self-hosted bot is now online! Follow the instructions provided by the bot to configure your search.

    setup


Discord Commands

  • /location: 📌 What city do you want to live in?
  • /search-areas: 📌 Specify granular search radii within your city.
  • /commute-destinations: 📌 Define commute destinations.
  • /search-parameters: 📄 View and edit your search parameters.
  • /advanced-config: 📄 View and edit advanced config. Avoid this unless you know what you're doing.

Contributing

Contributions are welcome! If you have any ideas for new features or improvements, please open an issue or submit a pull request.

License

This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License.