Privacy Policy
This page describes what information RoomRentKTM stores, who can see it, and what happens to it. It describes the site as it is built.
What this site does
RoomRentKTM is a listing site. Someone who has a room, flat, or apartment to rent posts a listing. Someone looking for a place posts a room request. The site stores those posts in a database, shows them on a map, and lets signed-in users reach contact details.
Most of the information described below is supplied by the people using the site, not collected by the site.
Accounts
Accounts are handled by Firebase Authentication. You can sign in with an email address and a password, or with a Google account.
The site has no user database of its own. It stores the user ID that the authentication service issues for an account, and that ID is what records which account posted a listing or a room request and which account gave a rating. The name and email address shown in the app are the ones the authentication service holds; the site keeps no separate copy of them.
Every request that changes or reads private data carries a token that the server checks with the authentication service before acting.
What a listing contains
A listing stores:
- Title, description, and the kind of place being offered
- Rent, floor, and the total number of floors
- Location: latitude, longitude, area, and street address
- A flag for whether the exact location is hidden
- Photos
- A contact phone number
- The user ID of the account that posted it
- Ratings, and the average score and count derived from them
- An expiry date, on listings that were created as seed data
A listing is published as soon as it is posted. It is created in an unverified state, and the site does not check that the person posting it is the owner of the property.
Listings created as seed data carry an expiry date, and stop being shown and are then removed once that date passes.
What a room request contains
A room request stores:
- Name
- Phone number
- The kind of place wanted: single room, flat, shared room, or hostel
- Preferred area
- Budget
- Move-in urgency
- Free-text notes
- Latitude and longitude
- A specific address
- The user ID of the account that posted it
Posting a room request requires an account. Read the next section before you fill one in: a request is far more public than a listing.
Who can see what
Listings and room requests are handled differently. Three points are worth stating exactly.
Listing phone numbers are not public
The phone number is not part of the listing data the site publishes. The public listing pages and the public listings endpoint leave the field out entirely, so it is not in the page source and not in the API response.
On a listing page the number is fetched by a separate request that requires you to be signed in. If you are not signed in, no request is made and no number is shown.
A listing's exact coordinates are public unless the owner hides them
By default the latitude and longitude of a listing are published and shown as a pin on the map. Hiding the exact location is the owner's choice, not the site's default.
When the owner turns hiding on, the site removes the latitude and longitude from what it publishes and shows the area name in place of the street address. The area, the rent, the photos, and the description are published either way.
Room requests expose exact coordinates to signed-out visitors
This is the opposite of how listings work, and the difference is deliberate. A published room request contains:
- Name
- Phone number, masked for signed-out visitors
- Preferred area
- Budget
- Move-in urgency
- Notes
- Latitude and longitude
- Specific address
The phone number is the one field that is treated differently. For a signed-out visitor every digit except the last four is replaced with an asterisk. For a signed-in visitor the full number is returned.
The user ID that created a request is removed from the response when the visitor is not signed in. The coordinates and the specific address are not removed in that case.
Ratings
- A rating is a number from 1 to 5, recorded against the user ID of the account that gave it, together with the time.
- You cannot rate a listing you posted yourself.
- Rating again replaces your earlier rating; a listing keeps one rating per account.
- The average score and the number of ratings are published on the listing.
- The individual ratings and the accounts that gave them are not published.
Photos
Photos are sent to the site's own upload endpoint, which requires a signed-in account and hands them to Cloudinary, filed under a folder named for your account. The site keeps the image address Cloudinary returns, as part of the listing, and the image is served from Cloudinary wherever it is displayed.
Photos are therefore held by a third party, and removing a listing from the site does not by itself remove its photos from that provider.
The chat panel
The chat panel in the corner of the site does not answer from this site's database. It forwards what you type to a separate service, at the address held in the NEXT_PUBLIC_AI_BACKEND_URL configuration value. The development default for that address is http://localhost:8000.
- What you type is posted to that service, together with a session identifier, and with your authentication token if you are signed in.
- Nothing else is sent with it. Your listings, your room requests, and your contact details are not attached to a chat message.
- The chat history is kept in your browser's session storage, keyed by that session identifier, and is deleted once the chat is closed and empty.
- What the external service does with what it receives is outside this site, and is not described here.
Cookies and browser storage
- The chat panel stores a randomly generated identifier in a cookie named chat_session_id, so it can restore a conversation. It is a session cookie, so the browser drops it when the session ends.
- Chat messages are held in session storage, which the browser clears when the tab is closed.
- Apart from that identifier, the site sets no cookies of its own.
- The site runs no advertising scripts. The one third-party script it loads is the page-view counter described below.
Page view counting
The site loads Vercel Web Analytics, which is used to count page views.
Administrative access
- Administrative access is granted to a user ID that is present in the site's admins database collection, or that is listed in the server's ADMIN_UIDS configuration.
- There is no sign-up anywhere in the product for administrator access, and creating an ordinary account does not grant it. Entries are inserted into the database directly.
- Every administrative request is checked on the server before it is served.
- The administrative area can list and change listings and room requests, including hiding or deleting them.
Development environment
Development on this project runs against a local database and a Firebase Authentication emulator, so accounts created and passwords reset while developing do not reach the production authentication project. The development scripts refuse to run against a database that is not local.
Local development data is not production data. What a developer sees locally is not what a visitor sees on the live site.
Removing your information
You can delete a listing or a room request you posted from your dashboard, and the site stops serving it.
The site has no self-service account deletion. Removing your account means removing it through the authentication provider. A listing, a room request, or a rating that was already posted stays in the site's database under your user ID, because those records are not linked to the account in a way that cascades.
Contact
This site does not publish a contact address. What you can do from the product:
See also
The rules for using the site are on the Terms of Service.
