Anumifly โ€” Hotel Management System

Inspiration

I wanted to build a web application that makes hotel-related tasks easier through a simple, user-friendly digital experience. This project gave me an opportunity to apply my web development knowledge to a practical use case in the hospitality industry.

What It Does

Anumifly is a hotel management web project focused on improving the way users interact with hotel services. Its goal is to provide a convenient interface and organize hotel-related workflows.

How I Built It

I developed this project using the web technologies used in my repository, focusing on the user interface, application structure, and core functionality. I used Git and GitHub for version control and project management.

Challenges I Faced

During development, I worked on translating the project idea into a functional application, organizing the code, resolving implementation issues, and improving the user experience.

What I Learned

This project helped me strengthen my practical web development skills, understand application structure, improve debugging and problem-solving, and gain experience building a project from idea to implementation.

What's Next

Future improvements could include enhancing the booking workflow, improving mobile responsiveness, and adding further hotel management features based on the current implementation. Discover ยท Book ยท Manage โ€” All in One Place

Live Demo GitHub License


๐Ÿ“ธ Preview

A premium hotel booking experience with powerful owner tools, AI features, and seamless payments


โœจ Features

๐Ÿ‘ค For Guests

  • ๐Ÿ” Search & Filter โ€” Browse rooms by city, price range, and room type
  • โค๏ธ Wishlist โ€” Save favorite rooms for later
  • โš–๏ธ Compare Rooms โ€” Compare up to 2 rooms side-by-side
  • ๐ŸŽŸ๏ธ Coupon Codes โ€” Apply promo codes for discounts
  • ๐Ÿ’ณ Stripe Payments โ€” Secure online payments
  • ๐Ÿ“ง Email Invoice โ€” Automatic PDF invoice on booking confirmation
  • ๐Ÿ“… Booking Management โ€” View, track, and cancel bookings
  • ๐ŸŒ™ Dark Mode โ€” Full dark mode support

๐Ÿจ For Hotel Owners

  • ๐Ÿข Multi-Hotel Support โ€” Register and manage multiple hotels
  • ๐Ÿ›๏ธ Room Management โ€” Add rooms with images, amenities, pricing
  • ๐Ÿ“Š Analytics Dashboard โ€” Revenue charts, occupancy rate, booking trends
  • ๐Ÿค– AI Price Suggestion โ€” Get AI-powered competitive pricing recommendations
  • โœจ AI Description Generator โ€” Generate compelling room descriptions
  • ๐Ÿ”„ Availability Toggle โ€” Control room availability in real-time
  • ๐Ÿ“† Bookings Calendar โ€” Visual calendar view of all bookings

๐Ÿ›ก๏ธ For Admins

  • ๐Ÿ‘ฅ User Management โ€” View, edit roles, delete users
  • ๐Ÿจ Hotel Verification โ€” Verify/unverify hotel listings
  • ๐Ÿ“‹ Booking Overview โ€” Monitor all platform bookings
  • ๐Ÿ“ˆ Platform Statistics โ€” Total revenue, bookings, and hotel stats

๐Ÿ› ๏ธ Tech Stack

Category Technology
Frontend React 19, Vite, Tailwind CSS v4
Backend Node.js, Express.js
Database MongoDB, Mongoose
Authentication Clerk
Payments Stripe
Image Hosting Cloudinary
Email Nodemailer + Gmail
PDF Generation PDFKit (memory buffer)
AI Anthropic Claude API
Maps React Leaflet
Charts Recharts
Deployment Vercel

๐Ÿš€ Getting Started

Prerequisites

  • Node.js v18+
  • MongoDB Atlas account
  • Clerk account
  • Stripe account
  • Cloudinary account
  • Gmail App Password

1. Clone the Repository

git clone https://github.com/introvertadnan07/Hotel-managements.git
cd Hotel-managements

2. Setup Backend

cd server
npm install

Create server/.env:

MONGODB_URI=your_mongodb_connection_string
CLERK_SECRET_KEY=your_clerk_secret_key
CLOUDINARY_CLOUD_NAME=your_cloudinary_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
STRIPE_SECRET_KEY=your_stripe_secret_key
STRIPE_WEBHOOK_SECRET=your_stripe_webhook_secret
[email protected]
EMAIL_PASS=your_gmail_app_password
npm run dev

3. Setup Frontend

cd client
npm install

Create client/.env:

VITE_BACKEND_URL=http://localhost:5000
VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
npm run dev

4. Open in Browser

http://localhost:5173

๐Ÿ“ Project Structure

Hotel-managements/
โ”œโ”€โ”€ client/                      # React Frontend
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ”œโ”€โ”€ assets/              # Images, icons
โ”‚       โ”œโ”€โ”€ components/          # Reusable components
โ”‚       โ”‚   โ””โ”€โ”€ hotelOwner/      # Owner-specific components
โ”‚       โ”œโ”€โ”€ context/             # AppContext (global state)
โ”‚       โ””โ”€โ”€ pages/
โ”‚           โ””โ”€โ”€ hotelOwner/      # Owner dashboard pages
โ”‚
โ””โ”€โ”€ server/                      # Express Backend
    โ”œโ”€โ”€ controllers/             # Business logic
    โ”œโ”€โ”€ middleware/              # Auth & admin middleware
    โ”œโ”€โ”€ models/                  # Mongoose schemas
    โ”œโ”€โ”€ routes/                  # API route definitions
    โ””โ”€โ”€ utils/                   # Email, PDF, Cloudinary helpers

๐Ÿ”Œ API Reference

Method Endpoint Description Auth
POST /api/hotels Register hotel Owner
GET /api/hotels/owner Get owner's hotels Owner
POST /api/rooms Add room Owner
GET /api/rooms Get all rooms Public
POST /api/bookings/book Create booking Guest
GET /api/bookings/user Get user bookings Guest
GET /api/bookings/hotel Get hotel bookings Owner
POST /api/bookings/stripe-payment Stripe checkout Guest
POST /api/bookings/validate-coupon Validate coupon Guest
POST /api/wishlist/toggle Toggle wishlist Guest
GET /api/ai/price-suggestion/:id AI price suggestion Owner
GET /api/ai/generate-description/:id AI description Owner
GET /api/admin/stats Platform stats Admin

๐Ÿ—„๏ธ Database Schema

User         โ†’ clerkId, email, username, role
Hotel        โ†’ name, address, city, contact, owner
Room         โ†’ hotel, roomType, category, description,
               pricePerNight, baseGuests, maxGuests,
               extraGuestPrice, beds, bathrooms,
               amenities, images, isAvailable
Booking      โ†’ user, room, hotel, checkIn, checkOut,
               totalPrice, isPaid, status, couponCode
Review       โ†’ user, room, rating, comment
Wishlist     โ†’ user, rooms[]
Coupon       โ†’ code, discountType, discountValue,
               maxUsage, usedCount, expiryDate
Newsletter   โ†’ email, subscribedAt

๐Ÿ” User Roles

Role Access
Guest Browse, wishlist, book, review rooms
Hotel Owner Register hotels, manage rooms, view analytics
Admin Full platform management access

To make yourself Admin: MongoDB Atlas โ†’ users collection โ†’ set role to "admin"


๐ŸŒŸ Key Implementation Highlights

  • Vercel-Compatible PDF โ€” Invoice PDFs generated in memory (no filesystem writes)
  • Multi-Hotel Support โ€” One account can own multiple hotels
  • Stripe Webhooks โ€” Payment confirmation handled server-side
  • Dark Mode (Tailwind v4) โ€” Uses @variant dark syntax throughout
  • AI Integration โ€” Claude API powers pricing and description features
  • Role-Based Access โ€” Middleware guards protect owner and admin routes
  • Cloudinary Upload โ€” Images streamed via buffer, no temp file storage

๐Ÿ“ฆ Environment Variables Summary

Server

Variable Description
MONGODB_URI MongoDB Atlas connection string
CLERK_SECRET_KEY Clerk backend secret
CLOUDINARY_CLOUD_NAME Cloudinary cloud name
CLOUDINARY_API_KEY Cloudinary API key
CLOUDINARY_API_SECRET Cloudinary API secret
STRIPE_SECRET_KEY Stripe secret key
STRIPE_WEBHOOK_SECRET Stripe webhook signing secret
EMAIL_USER Gmail address for sending emails
EMAIL_PASS Gmail App Password

Client

Variable Description
VITE_BACKEND_URL Backend API URL
VITE_CLERK_PUBLISHABLE_KEY Clerk publishable key

๐Ÿšข Deployment

Backend (Vercel)

  1. Connect GitHub repo to Vercel
  2. Set Root Directory to server
  3. Add all environment variables
  4. Deploy

Frontend (Vercel)

  1. Connect GitHub repo to Vercel
  2. Set Root Directory to client
  3. Add VITE_BACKEND_URL and VITE_CLERK_PUBLISHABLE_KEY
  4. Deploy

๐Ÿค Contributing

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

๐Ÿ‘จโ€๐Ÿ’ป Author

Md Adnan Qaisar

GitHub


๐Ÿ“„ License

This project is licensed under the MIT License โ€” see the LICENSE file for details.

**Built with โค๏ธ by Md Adnan Qaisar** If you found this project helpful, please give it a โญ

AnumiflyStay

5f03fac34f2e9cd024036c85f103cd864d077c83

Share this project:

Updates

posted an update —

Project Update: Anumifly โ€” Hotel Management System

I'm excited to share my web development project, Anumifly, a hotel management application designed to make hotel-related services more convenient through a digital experience.

Project Highlights

  • A web-based interface focused on usability.
  • A project structure designed to support hotel-related workflows.
  • Hands-on practice with modern web development technologies.
  • Version control and project management using Git and GitHub.

What I'm Learning

Working on Anumifly is helping me strengthen my web development skills, improve my debugging and problem-solving abilities, and understand how to turn an idea into a functional application.

What's Next?

I aim to continue improving the user experience, enhance mobile responsiveness, and explore additional hotel management features such as booking workflows and room management.

This project is another step in my journey toward becoming a stronger software engineer, and I'm looking forward to improving it further!

Anumifly #HotelManagement #WebDevelopment #SoftwareEngineering #GitHub #FullStackDevelopment

Log in or sign up for Devpost to join the conversation.