A modern campus vehicle rental platform built with React, TypeScript, and Firebase. Students can easily rent bikes and scooters from their peers, with features like real-time maps, AI-powered descriptions, and comprehensive booking management.
- Vehicle Listings: Browse available bikes and scooters with detailed information
- Smart Search & Filters: Filter by vehicle type and search by name, location, or address
- Real-time Maps: Interactive maps powered by OpenStreetMap with automatic geocoding
- Hourly Pricing: Transparent hourly rental rates ($5-15/hour for bikes, $8-20/hour for scooters)
- Booking System: Complete booking workflow with hour selection and notifications
- Auto-loading Maps: Maps automatically load when viewing vehicle details
- Geocoding: Automatic address-to-coordinates conversion using OpenStreetMap Nominatim API
- Interactive View: Browse vehicles on a map with multiple markers
- Fallback Options: Manual coordinate input and retry options for failed geocoding
- Smart Descriptions: AI-generated vehicle descriptions using Google Gemini
- Brand Knowledge: Leverages AI knowledge of bike/scooter brands and models
- Contextual Pricing: AI suggests competitive hourly rates based on vehicle details
- One-click Generation: Generate descriptions using all form inputs (name, brand, model, condition, features, location, address)
- Authentication: Firebase Authentication with email/password
- User Profiles: Personalized dashboards for renters and vehicle owners
- Admin Controls: Admin users can delete any vehicle listing
- Owner Controls: Users can delete their own vehicle listings
- My Bookings: Track active and completed rentals
- Notifications: Manage incoming booking requests with accept/reject functionality
- My Posts: View and manage your vehicle listings
- History: Complete rental history with pickup locations and hour details
- Pickup Management: Owners must specify pickup locations when accepting bookings
- Responsive Design: Works seamlessly on desktop and mobile devices
- Dark/Light Theme: Consistent theming with shadcn/ui components
- Loading States: Clear feedback during geocoding and data loading
- Toast Notifications: Real-time feedback for user actions
- Professional Design: Clean, modern interface with intuitive navigation
- React 18 with TypeScript for type-safe development
- Vite for fast development and building
- Tailwind CSS for utility-first styling
- shadcn/ui for consistent, accessible UI components
- React Router DOM for client-side routing
- Lucide React for beautiful icons
- Firebase Firestore for real-time database
- Firebase Authentication for user management
- Firebase Storage for image uploads
- Google Gemini AI for intelligent content generation
- OpenStreetMap for mapping and geocoding services
- ESLint for code linting
- PostCSS for CSS processing
- TypeScript for type safety
- Browse Vehicles: Use the homepage to view available bikes and scooters
- Filter & Search: Use filters to find specific vehicle types or search by location
- View Details: Click on any vehicle to see detailed information and map
- Book Vehicle: Select dates and hours, then send a booking request
- Track Bookings: Monitor your bookings in the dashboard
- List Vehicle: Click "List Your Ride" to add your bike or scooter
- AI Description: Use the AI generator to create compelling descriptions
- Manage Listings: View and delete your vehicles in "My Posts"
- Handle Bookings: Accept or reject booking requests in "Notifications"
- Set Pickup: Specify pickup location when accepting bookings
- Login: Use
admin@admin.comwith passwordadministrator - Delete Any Vehicle: Red trash icons appear on all vehicle cards
- Full Access: Complete administrative control over the platform
- Addresses are automatically converted to coordinates
- Uses OpenStreetMap Nominatim API for reliable geocoding
- Multiple query formats attempted for better results
- Console logging for debugging geocoding issues
- Individual Vehicle Maps: Show specific vehicle locations
- Browse Map: View all recent vehicles on a single map
- Auto-loading: Maps load automatically when viewing vehicle details
- Fallback Options: Manual coordinate input for failed geocoding
The AI system uses Google Gemini to generate compelling vehicle descriptions
- AI suggests competitive hourly rates
- Considers brand reputation and model quality
- Typical ranges: $5-15/hour bikes, $8-20/hour scooters
- Fallback pricing: $8/hour bikes, $12/hour scooters
- Build the project:
npm run build - Deploy the
distfolder to your hosting service - Configure environment variables in production
- Set up Firebase project for production
This project is licensed under the MIT License.
For support and questions:
- Check the console logs for debugging information
- Review Firebase console for database issues
- Ensure all environment variables are properly set
- Verify Firebase project configuration
- ✅ Removed daily pricing, now hourly-only
- ✅ Enhanced AI descriptions with brand knowledge
- ✅ Auto-loading maps with geocoding
- ✅ Admin and owner delete functionality
- ✅ Comprehensive booking system with hour selection
- ✅ Real-time notifications and pickup management
- ✅ Responsive design and modern UI components