Skip to content

AnuragWaskle/Rentro-Application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏠 Rentro

Trust-Centered Rental Platform with AI-Powered Verification

Building trust in rentals, one verification at a time

License: MIT React Native Expo Firebase Node.js Tailwind CSS

Features β€’ Quick Start β€’ Architecture β€’ Documentation β€’ Deployment


🌟 What is Rentro?

Rentro is a production-ready rental ecosystem that revolutionizes trust and safety in property rentals through AI-powered verification systems. Built entirely with FREE resources, it combines cutting-edge AI with seamless user experience across mobile and web platforms.

🎯 The Problem We Solve

  • 🚫 Fake property listings and scams
  • πŸ€” Unverified landlords and tenants
  • πŸ’¬ Poor communication channels
  • ⏰ Slow manual verification processes

✨ Our Solution

A three-tier platform featuring AI-powered spam detection, facial recognition verification, real-time chat, and comprehensive admin controlsβ€”all running on free-tier services.


🎨 Screenshots

πŸ“± Mobile App πŸ’» Admin Panel
Mobile App Admin Panel
Browse & Chat with Verified Owners AI-Powered Verification Center

⚑ Features

πŸ“± Mobile App

  • 🏘️ Dual Role System - Switch between tenant/owner modes
  • πŸ” Smart Search - Filter by location, price, BHK
  • πŸ’¬ Real-time Chat - Instant messaging with property owners
  • ❀️ Wishlist - Save your favorite properties
  • ⭐ Reviews - Rate and review properties
  • πŸ“Έ Multi-image Upload - Showcase properties beautifully

πŸ–₯️ Admin Panel

  • πŸ“Š Analytics Dashboard - Real-time stats and metrics
  • βœ… Verification Center - Side-by-side ID review
  • πŸ€– AI Spam Detection - Automated listing analysis
  • πŸ‘₯ User Management - Ban, unban, reset verifications
  • 🏒 Property Queue - Approve/reject listings
  • πŸ“ˆ Growth Tracking - Monitor platform growth

πŸ€– AI-Powered Intelligence

πŸ›‘οΈ VeriSentry - Trust & Safety Agent
  • Spam Detection: Analyzes property descriptions for scam patterns
  • Image Verification: Matches property photos with descriptions
  • Face Recognition: Compares ID cards with live selfies
  • Trust Scoring: Assigns 0-100 trust scores to users
πŸ’‘ HelpBot - Support Assistant
  • Auto-responses: Handles common queries 24/7
  • Sentiment Analysis: Detects frustrated users
  • Escalation: Flags urgent issues for admins
  • Multi-lingual: Supports multiple languages

πŸ—οΈ Architecture

graph TB
    A[Mobile App<br/>React Native + Expo] -->|REST API| B[AI Backend<br/>Node.js + Express]
    A -->|Authentication| C[Firebase Auth]
    A -->|Database| D[Firestore]
    A -->|Storage| E[Firebase Storage]
    F[Admin Panel<br/>React + Vite] -->|REST API| B
    F -->|Authentication| C
    F -->|Database| D
    B -->|AI Models| G[Hugging Face API]
    
    style A fill:#4F46E5,stroke:#333,stroke-width:2px,color:#fff
    style F fill:#4F46E5,stroke:#333,stroke-width:2px,color:#fff
    style B fill:#10B981,stroke:#333,stroke-width:2px,color:#fff
    style C fill:#F59E0B,stroke:#333,stroke-width:2px
    style D fill:#F59E0B,stroke:#333,stroke-width:2px
    style E fill:#F59E0B,stroke:#333,stroke-width:2px
    style G fill:#EF4444,stroke:#333,stroke-width:2px,color:#fff
Loading

πŸ“ Project Structure

Rentro application/
β”œβ”€β”€ 🎯 rentro-backend/              # AI Wrapper Service
β”‚   β”œβ”€β”€ server.js                   # Express server with 4 AI endpoints
β”‚   β”œβ”€β”€ package.json
β”‚   └── .env.example
β”‚
β”œβ”€β”€ πŸ“± rentro-mobile/               # React Native + Expo App
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ (auth)/                 # Login & Signup screens
β”‚   β”‚   β”œβ”€β”€ (tenant)/               # Tenant experience
β”‚   β”‚   β”œβ”€β”€ (owner)/                # Owner dashboard
β”‚   β”‚   └── _layout.tsx             # Root navigation
β”‚   β”œβ”€β”€ firebaseConfig.js
β”‚   └── app.json
β”‚
β”œβ”€β”€ πŸ’» rentro-admin/                # Web Admin Panel
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ pages/                  # Dashboard, Verification, Properties
β”‚   β”‚   β”œβ”€β”€ components/             # Reusable UI components
β”‚   β”‚   └── config/firebase.js
β”‚   └── tailwind.config.js
β”‚
└── πŸ”§ shared/                      # Shared utilities
    β”œβ”€β”€ firebaseConfig.js
    └── constants.js

πŸš€ Quick Start

Prerequisites

βœ… Node.js 18+ and npm
βœ… Android Studio (for mobile testing)
βœ… Firebase Account (free tier)
βœ… Hugging Face Account (free API key)

βš™οΈ Installation

Step 1: Clone Repository
cd "Rentro application"
Step 2: Firebase Setup
  1. Go to Firebase Console
  2. Create a new project (or use existing)
  3. Enable Authentication β†’ Email/Password
  4. Create Firestore Database (test mode initially)
  5. Enable Storage
  6. Copy your config and update firebaseConfig.js files
Step 3: Backend Setup
cd rentro-backend

# Install dependencies
npm install

# Setup environment variables
cp .env.example .env
# Add your Hugging Face API key: https://huggingface.co/settings/tokens

# Start development server
npm run dev

βœ… Backend running on http://localhost:5000

API Endpoints:

  • POST /api/analyze-listing - Spam detection
  • POST /api/analyze-images - Image captioning
  • POST /api/verify-face - Face matching
  • POST /api/chat-bot - Support chatbot
Step 4: Mobile App Setup
cd ../rentro-mobile

# Start Expo
npx expo start

Run on Android Emulator: Press a in terminal
Run on Physical Device: Scan QR code with Expo Go app

πŸ’‘ Important: Update API URL in app/(owner)/add-listing.tsx

  • Development: http://YOUR_IP:5000
  • Android Emulator: http://10.0.2.2:5000
Step 5: Admin Panel Setup
cd ../rentro-admin

# Start development server
npm run dev

βœ… Admin panel running on http://localhost:5173

Default Admin Credentials:
Create an account and manually set role: 'admin' in Firestore


πŸ“š Documentation

πŸ”₯ Firestore Schema

users/{uid}
{
  email: "user@example.com",
  name: "John Doe",
  phone: "+1234567890",
  role: "tenant" | "owner" | "admin",
  isVerified: false,
  trustScore: 0,              // 0-100
  createdAt: timestamp
}
properties/{propId}
{
  ownerId: "uid_123",
  title: "2BHK Apartment in Downtown",
  description: "Spacious apartment...",
  price: 15000,
  city: "New York",
  location: { 
    address: "123 Main St",
    lat: 40.7128,
    lng: -74.0060 
  },
  images: ["url1", "url2"],
  amenities: ["WiFi", "Parking", "Gym"],
  type: "apartment",
  bhk: 2,
  status: "pending" | "verified" | "rejected",
  aiAnalysis: {
    spamScore: 25,
    imageMatch: true,
    flags: []
  },
  createdAt: timestamp
}
verifications/{reqId}
{
  userId: "uid_123",
  idCardUrl: "storage_url",
  selfieUrl: "storage_url",
  status: "pending" | "approved" | "rejected",
  aiFaceMatchScore: 87.5,     // 0-100
  submittedAt: timestamp,
  reviewedAt: timestamp,
  reviewedBy: "admin_uid"
}

πŸ”’ Security Rules

Add these rules to your Firestore:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
      allow read: if request.auth != null;
      allow create: if request.auth.uid == userId;
      allow update: if request.auth.uid == userId || 
                      get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == 'admin';
    }
    
    match /properties/{propertyId} {
      allow read: if true;
      allow create: if request.auth != null;
      allow update: if request.auth.uid == resource.data.ownerId ||
                      get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == 'admin';
    }
    
    match /verifications/{verificationId} {
      allow read: if request.auth != null;
      allow create: if request.auth.uid == request.resource.data.userId;
      allow update: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == 'admin';
    }
    
    match /chats/{chatId} {
      allow read, write: if request.auth.uid in resource.data.participants;
    }
  }
}

πŸš€ Deployment

Backend β†’ Render.com (Free)

  1. Push code to GitHub
  2. Create Web Service on Render.com
  3. Build Command: cd rentro-backend && npm install
  4. Start Command: cd rentro-backend && npm start
  5. Add environment: HUGGINGFACE_API_KEY
  6. Deploy! πŸŽ‰

Mobile App β†’ EAS Build

cd rentro-mobile

# Install EAS CLI
npm install -g eas-cli

# Build APK
eas build --platform android --profile preview

Admin Panel β†’ Vercel (Free)

cd rentro-admin

# Deploy
npx vercel

# Production
npx vercel --prod

πŸ› οΈ Tech Stack

Category Technologies
Frontend React Native, Expo, React, Vite, Tailwind CSS
Backend Node.js, Express.js
Database Firebase Firestore, Firebase Storage
AI/ML Hugging Face (BLIP, DistilBERT, FLAN-T5)
Deployment Render.com, Vercel, EAS Build
Authentication Firebase Auth

🎯 Roadmap

βœ… Current Features (MVP)

  • User authentication
  • Property listings
  • AI spam detection
  • Face verification
  • Real-time chat
  • Admin panel

πŸ”œ Coming Soon

  • Push notifications
  • Google Maps integration
  • Payment gateway (Stripe/Razorpay)
  • Advanced search with Algolia
  • Email notifications
  • Reviews & ratings system
  • Booking management
  • Analytics dashboard

⚠️ Known Limitations

🚧 MVP Version - Some features are simplified for rapid deployment

  • Hugging Face Rate Limits: Free tier ~1000 requests/day
  • Face Verification: Simplified algorithm (upgrade for production)
  • Maps: Not integrated yet
  • Push Notifications: Not configured
  • Payments: Not implemented

πŸ’° Cost Breakdown

Service Tier Monthly Cost
Firebase Spark (Free) $0.00
Hugging Face Free $0.00
Render.com Free $0.00
Vercel Hobby $0.00
Total $0.00 ✨

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ž Support

Need help? Here's how to get support:

🌟 Star us on GitHub!

If you find Rentro helpful, please consider giving it a star ⭐

Built with ❀️ for safer rentals


Made with β˜• and πŸ’» by the Anurag Waskle

⬆ Back to Top

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors