Comprehensive Telegram Match-Making Bot Development

Заказчик: AI | Опубликовано: 03.02.2026
Бюджет: 11 $

About the project A button-driven Telegram bot for matching riders with drivers. All interactions use clickable buttons - no text commands needed. Features • User Registration: Passengers and drivers register with Name, phone, Photo and ID document. • Admin Approval: All registrations require admin approval before users can use the service. • Two Options for Ride start: o Request Ride: Riders share pickup/dropoff locations via GPS, select time, and specify passenger count. o Offer Ride: Drivers share start/end locations, departure time, and available seats. • Automatic Matching: Proximity-based matching (configurable radius) with time window compatibility. • Contact Sharing: Both parties receive full contact info (name, phone, Photo, Telegram) on match. • Admin Reports: Registration stats, trip reports, waiting times, seat utilization • Cancel Anytime: Users can cancel their active requests/offers but customizable. How It Works Registration Flow Passenger Registration: 1. Tap "Register" 2. Select "Register as Passenger" 3. Enter full name 4. Enter phone number 5. Select document type (ID Card / Driving License / Passport) 6. Upload photo of document 7. Upload photo of user 8. Wait for admin approval Driver Registration: 1. Tap "Register" 2. Select "Register as Driver" 3. Enter full name 4. Enter phone number 5. Select document type 6. Upload photo of document 7. Select vehicle type (Car / SUV / Van / Minibus) 8. Select number of seats 9. Enter vehicle year and model 10. Wait for admin approval Rider Flow (after approval) 1. Tap "Request Ride" 2. Share pickup location (GPS) 3. Share drop-off location (GPS) 4. Select preferred time from buttons 5. Select passenger count 6. Wait for match notification Driver Flow (after approval) 1. Tap "Offer Ride" 2. Share starting location (GPS) 3. Share destination (GPS) 4. Select departure time from buttons 5. Select available seats 6. Wait for match notification Admin Panel • Pending Registrations: Review and approve/reject new users • View Documents: See uploaded ID documents • Registration Report: Pending/approved/rejected counts, driver/passenger totals • Trip Report: Matches, active trips, waiting riders, available drivers • Waiting Time Report: Average wait times • Seat Utilization Report: Seats offered vs filled Matching Logic • Pickup must be within MATCH_RADIUS_KM of driver's start • Drop-off must be within MATCH_RADIUS_KM of driver's end • Times must be within MATCH_TIME_WINDOW_MINUTES • Driver must have enough seats for passengers Match Notifications When matched, both parties receive: • Name and phone number • Telegram username (if available) • Ride time and seat/passenger info • Driver also receives rider's pickup and dropoff locations as map pins Commands • /start - Show main menu • /myid - Show your Telegram user ID (for admin setup) Customization Adding Admin Users 1. Have the user send /myid to the bot 2. Add their user ID to ADMIN_IDS list in config.py 3. Restart the bot Adding New Time Slots Edit the TIME_SLOTS list in bot.py. Adding Vehicle Types Edit the VEHICLE_TYPES list in bot.py. Adjusting Matching Parameters Update values in config.py - no code changes required.