Guest Check‑In SaaS Web App (Multi‑Property, Subscription Model) need Web Development

Contact person: Guest Check‑In SaaS Web App (Multi‑Property, Subscription Model)

Phone:Show

Email:Show

Location: VASCO DA GAMA, India

Budget: Recommended by industry experts

Time to start: As soon as possible

Project description:
"We need a custom **[login to view URL] web application** offered as a **SaaS platform** to manage guest check‑in across multiple properties. Each property registers with unique details and can create booking links. Guests use the links to upload ID documents and accept house rules. Hosts verify uploads via a backend dashboard and approve/reject check‑ins. The system enforces **subscription packages** (6 months or 12 months) that control access for each property.

## Core Features

### 1) Property Registration & Authentication
- Each property must **register** with:
- Unique property name
- Mobile number
- Email address
- Authentication:
- Email OTP login (property owner logs in with their registered email)
- Session remains active until explicit logout
- Admin verifies payment and activates subscription before property can access features.

### 2) Subscription Management
- Two subscription packages:
- **6 months**
- **12 months**
- Admin dashboard:
- Approve/activate subscription once payment is confirmed
- Assign subscription period (6/12 months)
- Track subscription start and end dates
- Notify property before subscription expiry
- System access restricted if subscription expired or not activated.

### 3) Booking Link Creation (Property Side)
- Property user creates booking by providing:
- **Booking ID** (always host‑provided, must be unique per property)
- Main guest name
- Mobile number
- Check‑in & Check‑out dates
- Number of guests
- Custom house rules (HTML allowed)
- API validates `bookingId` uniqueness **per property**.
- Returns booking link: `/checkin/{propertyId}/{bookingId}`.

### 4) Guest Check‑In Page
- Guest visits `/checkin/{propertyId}/{bookingId}`.
- Fetches booking details (guest name, dates, guest count).
- Displays summary and one file upload per guest.
- Supported formats: **PDF, JPG, PNG**.
- Files uploaded directly to **Firebase Storage** → stored under `ids/{propertyId}/{bookingId}/{guestIndex}/...`.
- House rules must be accepted before submission.
- On submit → call `/api/submit` to mark status = `SUBMITTED`.

### 5) Backend Review, Approval & Downloads (Property Admin)
- Property admin portal `/admin/booking/{bookingId}`:
- View booking summary and uploaded files.
- Modal viewer for each file (inline image/PDF preview, no default download links).
- Optional watermark overlay + disable right‑click to discourage saving.
- Approve/Reject check‑in:
- Approve → status = `APPROVED`, save approver + timestamp
- Reject → status = `REJECTED`, save reason, user + timestamp
- **Download options** (within 60‑day retention):
- Single file download (authorized role only)
- Bulk ZIP download for entire booking
- All downloads must be time‑boxed signed URLs with audit logs (who, when, what).
- Global toggle `ALLOW_DOWNLOADS=true|false`.

### 6) Data Retention & Security
- Uploaded files auto‑deleted **60 days after check‑out**.
- Firestore/DB keeps booking metadata.
- Firebase Storage rules deny public access; only server can generate signed URLs.
- All file views and downloads are **audit‑logged**.

### 7) Admin Superuser Panel (Platform Owner)
- Manage properties:
- Approve/reject new registrations
- Assign subscriptions (6/12 months)
- View active/expired accounts
- Global monitoring of:
- Subscriptions
- File usage and storage metrics
- Download audit logs

## Tech Stack
- **Frontend**: [login to view URL] + TypeScript + TailwindCSS
- **Backend**: [login to view URL] API routes / Firebase Functions
- **DB**: Firestore (multi‑tenant with propertyId isolation)
- **Storage**: Firebase Storage
- **Auth**: Email OTP (e.g., Magic Links or Supabase/NextAuth with email provider)

## APIs (Minimum)
- `POST /api/properties/register` → register property
- `POST /api/properties/login` → email OTP login
- `POST /api/admin/properties/activate` → admin activates subscription (6/12 months)
- `POST /api/bookings` → create booking (requires `bookingId` per property)
- `GET /api/bookings?propertyId=...&id=...` → fetch booking details
- `POST /api/submit` → guest submits IDs & acceptance
- `GET /api/admin/booking?propertyId=...&id=...` → property admin fetch booking with files
- `POST /api/admin/approve` / `POST /api/admin/reject`
- `POST /api/admin/signed-url` → short‑lived inline/download link with audit logging
- `POST /api/admin/download-zip`

## Deliverables
1. Multi‑tenant [login to view URL] SaaS app supporting property registration, login, subscription, and guest check‑in.
2. Booking creation & check‑in flow tied to property accounts.
3. Admin dashboards:
- Property admin: review/approve/reject bookings & files
- Platform superadmin: manage subscriptions & properties
4. Firebase Storage rules for secure multi‑tenant isolation.
5. Cloud Function/cron to auto‑delete files 60 days post check‑out.
6. README: setup, deployment, SaaS usage.

## Acceptance Criteria
- Property must register with unique email, name, and mobile.
- Platform admin can activate subscription only after payment.
- Property cannot access booking tools until subscription is active.
- Subscriptions expire automatically after 6 or 12 months unless renewed.
- Property user logs in via email OTP and remains active until logout.
- Bookings created under a property must validate unique `bookingId`.
- Guests can upload IDs and accept rules successfully.
- Property admin can review uploads, approve/reject, and download (if enabled).
- All files auto‑deleted after 60 days.
- Audit logs capture file views/downloads and admin actions.

## Test Cases
1. Register a property → requires unique email and property name.
2. Login → OTP emailed; valid OTP grants session.
3. Property cannot access booking APIs before subscription is activated.
4. Admin activates property with 6‑month plan → property gains access until expiry.
5. Create booking with duplicate `bookingId` under same property → rejected.
6. Create booking with same `bookingId` under different property → allowed.
7. Guest uploads IDs → stored under `ids/{propertyId}/{bookingId}/...`.
8. Submit without rules acceptance → rejected.
9. Property admin opens booking → sees inline previews, no default download.
10. Property admin approves booking → status updated, timestamp logged.
11. Property admin rejects booking → status updated, reason logged.
12. Property admin downloads file (if enabled) → signed URL with audit log.
13. Expired subscription property cannot create new bookings.
14. Scheduler deletes files 60 days after check‑out.
15. Superadmin dashboard shows property list with subscription status." (client-provided description)


Matched companies (6)

...

Versasia Infosoft

Versasia Infosoft is a trusted provider of custom IT solutions, offering end-to-end services in software development, web and mobile app development,… Read more

...

eShop Genius

We’re in the industry With the experience of 12+years created more than 1200 stores and have build brands! At eShop Genius, we are an ISO certi… Read more

...

WhizzAct Private Limited

WhizzAct aims to deliver the supreme service at an effective cost, ensuring complete customer satisfaction. Emphatic use of the latest tools and tech… Read more

...

HJP Media

I am founder and CEO of HJP Media. The fastest growing AI digital solutions company in the world, offering innovative, AI powered digital marketing a… Read more

...

El Codamics

El Codamics – Company Preview About Us El Codamics is a Coimbatore-based software development firm helping startups, enterprises, and global clie… Read more

...

TechGigs LLP

We deliver cutting-edge technology solutions to businesses of all sizes. From mobile and web development to AR/VR, AI, and enterprise software, our t… Read more