A comprehensive web platform for accommodation bookings across Romanian cities, connecting property owners with travelers through a modern, user-friendly interface.
HaiHui.ro is a full-stack accommodation booking platform that enables:
- Property Owners: List and manage their accommodations (apartments, houses, villas, hotel rooms, bungalows)
- Travelers: Search, book, and review accommodations across Romania
- Administrators: Manage users, verify property owners, and oversee platform operations
- Frontend: React.js with JavaScript
- Backend: Node.js with Express.js
- Database: MongoDB with Mongoose ODM
- Authentication: JWT with HTTP-only cookies
- File Storage: Cloudinary for image uploads
- Password Security: bcrypt for hashing
- User Management: Multi-role authentication (clients, property owners, admins)
- Property Management: Full CRUD operations for accommodations
- Booking System: Real-time availability checking and reservation management
- Review System: User feedback and rating functionality
- Image Handling: Professional property photo management
- Client Registration/Login: Standard user accounts for booking accommodations
- Property Owner Accounts: Business registration with fiscal code verification
- Admin Panel: Administrative oversight with user management capabilities
- Profile Management: Update personal information, change passwords
- Favorites System: Save preferred properties for later
- Multi-type Properties: Support for apartments, houses, villas, hotel rooms, bungalows
- Detailed Listings: Location, amenities, pricing, images, availability
- Image Gallery: Multiple photos with Cloudinary integration
- Seasonal Pricing: Flexible pricing models including weekend and seasonal rates
- Availability Calendar: Block/unblock dates, manage bookings
- Property Status: Activate/deactivate listings
- Real-time Availability: Check property availability for specific dates
- Guest Management: Support for adults and children counts
- Booking Status: Confirmed, pending, cancelled, completed statuses
- Payment Integration: Multiple payment methods support
- Special Requests: Custom notes and arrival times
- Booking History: Complete reservation tracking
- Post-stay Reviews: Only guests who completed their stay can review
- 5-star Rating System: Numerical ratings with written comments
- Average Calculations: Automatic rating aggregation
- Review Display: Public review visibility on property pages
- Property Owner Verification: Three-tier verification system (pending, verified, rejected)
- JWT Authentication: Secure token-based authentication
- Role-based Access: Different permissions for clients, owners, and admins
- Data Validation: Input validation and sanitization
- Password Security: Salted and hashed password storage
Web application for property rental services.
- Clone the repository:
git clone
cd travel-site- Install dependencies:
# Backend setup
cd backend
npm install
# Frontend setup
cd ../frontend
npm install- Configure environment variables:
- In the
backenddirectory, create a.envfile based on the provided.env.example.
- Restore the database:
# Ensure MongoDB is installed and running
mongorestore --db travelsite_db db-backup/travelsite_db- Start the backend:
cd backend
node app.js- Start the frontend:
cd frontend
npm run dev- Register: Create a business account by providing company details and a valid Romanian fiscal code.
- Verification: Wait for admin reviewβyour account will move from pending to either verified or rejected.
- List Properties: Add accommodations with detailed descriptions, photos, seasonal pricing, and availability calendar.
- Manage Bookings: Track incoming bookings and update their statuses (confirmed, canceled, completed).
- Availability Control: Block or unblock specific dates to manage property availability.
- Search: Look for accommodations by city (e.g., Bucharest, Braila, Alba Iulia, Brasov), travel dates, and number of guests.
- Browse: Explore property pages with full details, amenities, pricing, and photo galleries.
- Book: Submit a booking with guest information, special requests, and payment details.
- Manage: Check your booking history and modify or cancel upcoming reservations.
- Review: Leave a review and rating only after completing your stay at a property.
- User Management: Oversee all registered users, including clients and property owners.
- Owner Verification: Approve or reject business accounts based on submitted documentation.
- Platform Oversight: Monitor and moderate all bookings, listings, and reviews.
- Content Moderation: Ensure listings and reviews meet platform standards before they go live.
POST /api/users/register- User registrationPOST /api/users/login- User loginPOST /api/users/admin/login- Admin loginPOST /api/users/logout- User logout
GET /api/proprietati/search- Search propertiesGET /api/proprietati/:id- Get property detailsPOST /api/proprietati/register- Create new propertyPUT /api/proprietati/:id- Update propertyPOST /api/proprietati/:id/check-availability- Check availability
POST /api/bookings/create- Create new bookingGET /api/bookings/:id- Get booking detailsPUT /api/bookings/:id- Update bookingPUT /api/bookings/:id/cancel- Cancel booking
POST /api/proprietati/:id/reviews- Add reviewGET /api/proprietati/:id/can-review- Check review eligibility
- Authentication: JWT tokens with HTTP-only cookies
- Authorization: Role-based access control
- Data Validation: Input sanitization and validation
- Password Security: bcrypt hashing with salt
- File Upload Security: Cloudinary integration with validation
- Business Verification: Fiscal code validation for property owners
- User: Client accounts with personal information and booking history
- Proprietar: Property owner accounts with business verification
- Property: Accommodation listings with details, pricing, and availability
- Booking: Reservation records with guest information and payment status
- Payment: Payment transaction records
- Multi-role Authentication: Separate login flows for users, owners, and admins
- Property Verification: Three-tier verification system for business accounts
- Dynamic Availability: Real-time booking conflict detection
- Image Management: Professional photo uploading with Cloudinary
- Review System: Post-stay review eligibility verification
- Location-based Search: City-focused property discovery
- Local Currency: RON pricing display
- Romanian Validation: Phone number and fiscal code validation
- Local Business Requirements: Fiscal code verification for property owners
- Built for the Romanian tourism market
- Designed with property owners and travelers in mind
- Implements best practices for booking platform security
- Uses modern web development technologies
HaiHui.ro - Connecting Romanian properties with travelers through technology.