بازگشت به نمونه‌کارها
Case Study

سایه

اقامتگاهی کوچک در حاشیهٔ کویر مرنجاب؛ از هویت بصری و روایت مکان تا موتور رزروی که موجودی شب‌ها را از سرور می‌گیرد

Year
۱۴۰۵ — 2026
Scope
طراحی و توسعه
Type
وب‌سایت و موتور رزرو
Status
پروژهٔ مفهومی — منتشرشده

سایه یک پروژهٔ مفهومی است. اقامتگاه، کارفرما و مهمانی در کار نیست. نرخ‌ها نمونه‌اند، هیچ پرداختی انجام نمی‌شود و ثبت فرم رزرو فقط یک درخواست است. پروژه برای آزمودن یک ایدهٔ طراحی و یک موتور رزرو ساخته شده، نه برای فروش اقامت.

صفحهٔ اصلی وب‌سایت سایه؛ عنوان فارسی درشت کنار عکس معماری خشتی کویر
Overview

معرفی پروژه

سایه اقامتگاهی فرضی در حاشیهٔ کویر مرنجاب است؛ پروژه‌ای که استودیو برای خودش تعریف کرد تا یک پرسش را بیازماید: وقتی ضرب‌الاجل و سلیقهٔ کارفرما در میان نیست، وب‌سایت یک اقامتگاه کوچک چه شکلی می‌تواند داشته باشد

پروژه سه بخش دارد: یک سایت روایی برای معرفی مکان، سه اقامتگاه که هرکدام صفحهٔ خود را دارند، و موتور رزروی که شب‌های خالی را از سرور می‌گیرد و مسیر رزرو را در سه گام کامل می‌کند

Challenge

چالش

  • روایت به‌جای بروشور

    اقامتگاه کوچک است و فهرست امکاناتش کوتاه؛ آنچه دارد نور، سکوت و مصالح است. سایت باید این‌ها را روایت می‌کرد، نه در جدول می‌شمرد

  • تقویمی که دروغ نگوید

    کاربر باید فقط شب‌هایی را انتخاب کند که واقعاً خالی است؛ شب‌های پر نه پنهان می‌شوند و نه با خطای بعد از ثبت اعلام

  • رزرو بدون پرداخت

    مسیر رزرو باید تا انتها پیش می‌رفت بی‌آنکه ادعای تأیید نهایی کند یا اطلاعات کارت بخواهد

  • فارسی به‌عنوان زبان اول

    تایپوگرافی، اعداد، ترتیب روزهای هفته و جهت چیدمان از فارسی شروع شد، نه از ترجمهٔ یک قالب انگلیسی

Direction

جهت طراحی

مصالح به‌جای رنگ

پالت از خود بنا آمد: گچ، کاهگل، آجر و چوب. زمینهٔ شیریِ گرم نقش دیوار گچی را بازی می‌کند و مسی تنها رنگ تأکید است. بخش «آنچه دیوار را می‌سازد» همین مصالح را جدا جدا نشان می‌دهد

بخش آنچه دیوار را می‌سازد؛ چهار قاب از مصالح بنا کنار یک متن کوتاه

تاریکی هم بخشی از مکان است

عکاسی عمداً بین دو سر طیف حرکت می‌کند؛ راهروهای تاریک و طاق‌های کم‌نور در کنار شن روشن ظهر. بخش «نگاه‌ها» همین تضاد را بدون شرح و بدون کپشن کنار هم می‌گذارد

بخش نگاه‌ها؛ دو قاب از راهروهای کم‌نور خشتی
Homepage

صفحهٔ اصلی

یک روز، پنج برش

ستون فقرات صفحهٔ اصلی یک جدول زمانی است: سحر، صبح، نیمروز، غروب و شب. هر برش یک ساعت، یک تصویر و یک جملهٔ کوتاه دارد. به‌جای توصیف امکانات، خواننده یک شبانه‌روز را در مکان می‌گذراند

بخش یک روز در سایه؛ پنج ردیف از سحر تا شب، هرکدام با ساعت، تصویر و یک جمله

نقشه به‌جای آدرس

بخش «کجا» یک پلان خطی است، نه نقشهٔ تعاملی. مختصات، ارتفاع و فاصله‌های زمینی نوشته شده و چیدمان حیاط و اتاق‌ها با چند خط ساده ترسیم شده است؛ سبک‌تر از جاسازی یک نقشهٔ بیرونی و هماهنگ با بقیهٔ صفحه

بخش کجا؛ پلان خطی اقامتگاه همراه با مختصات و فاصله‌ها
Rooms

سه اقامتگاه

هرکدام یک ساعت از روز

حیاط، بادگیر و مهتابی؛ سه اقامتگاه که به‌جای شمارهٔ اتاق با نسبتشان به نور نام گرفته‌اند. فهرست، هر اقامتگاه را با ظرفیت، چیدمان تخت و متراژ معرفی می‌کند و نرخ نمونه را صریحاً «نمونه» برچسب می‌زند

فهرست اقامتگاه‌ها؛ هر ردیف با تصویر، ظرفیت، متراژ و نرخ نمونه

صفحهٔ هر اقامتگاه

هر اقامتگاه صفحهٔ خودش را دارد: یک قاب بزرگ از فضا، توضیحی دربارهٔ جهت نور و مصالح، و مسیر مستقیم به رزرو با همان اقامتگاه از پیش انتخاب‌شده

صفحهٔ اقامتگاه بادگیر؛ تصویر طاق گچی کنار توضیح فضا
Booking

تجربهٔ رزرو در سه گام

مسیر رزرو سه گام دارد که در نوار بالای صفحه همیشه دیده می‌شود: تاریخ، اقامتگاه، تأیید. در هر گام می‌توان به عقب برگشت بی‌آنکه انتخاب‌های قبلی از دست برود

  1. گام یک؛ تقویم دو ماهه با شب‌های انتخاب‌شده و خلاصهٔ اقامت در ستون کنار
    ۱

    تاریخ

    دو ماه کنار هم نمایش داده می‌شود تا اقامت‌هایی که از ماه عبور می‌کنند در یک نگاه انتخاب شوند. شب‌های پر خاکستری و غیرقابل‌کلیک‌اند و راهنمای پایین تقویم تفاوت «تکمیل» و «شب‌های انتخاب‌شده» را توضیح می‌دهد. تعداد نفرات پیش از تاریخ انتخاب می‌شود، چون روی موجودی اثر دارد

  2. گام دو؛ انتخاب اقامتگاه از میان سه گزینه با تصویر، ظرفیت و نرخ نمونه
    ۲

    اقامتگاه

    فقط اقامتگاه‌هایی فهرست می‌شوند که در همهٔ شب‌های انتخاب‌شده خالی‌اند و ظرفیتشان به تعداد نفرات می‌خورد. هر گزینه تصویر، ظرفیت، چیدمان تخت، متراژ و نرخ نمونه دارد. ستون خلاصه هم‌زمان ورود، خروج، تعداد شب و نفرات را نگه می‌دارد

  3. گام سه؛ فرم خالی مشخصات مهمان کنار خلاصهٔ اقامت و جمع مبلغ نمونه
    ۳

    تأیید

    نام و شمارهٔ همراه لازم است و ایمیل و یادداشت اختیاری. ستون کنار، مبلغ را به‌صورت «تعداد شب × نرخ» باز می‌کند و زیر آن می‌نویسد که این رقم نمونه است. متن کنار دکمه هم صریح است: ثبت این فرم یک درخواست است، نه تأیید نهایی، و پرداختی در این مرحله انجام نمی‌شود

تصاویر بالا از مسیر واقعی رزرو روی سایت منتشرشده گرفته شده است. فرم نهایی ثبت نشد تا رکوردی در پایگاه دادهٔ پروژه ساخته نشود؛ به همین دلیل صفحهٔ نتیجه در این مطالعه نمایش داده نمی‌شود

Engineering

موتور رزرو

تقویم چیزی را از خودش نمی‌سازد؛ موجودی و قواعد اقامت را از سرور می‌گیرد و رابط فقط آن را نمایش می‌دهد

موجودی از سمت سرور

ظرفیت هر اقامتگاه برای هر شب از یک نقطهٔ پایانی جدا خوانده می‌شود، نه از داده‌ای که در خود صفحه نوشته شده باشد

قواعد اقامت

حداقل و حداکثر شب، افق رزرو و فاصله تا ورود همه در همان پاسخ سرور می‌آید و رابط از روی آن‌ها تصمیم می‌گیرد

محاسبهٔ شفاف

مبلغ به‌صورت تعداد شب ضرب‌در نرخ باز می‌شود و مالیات و عوارض جداگانه و به‌صراحت موکول به زمان تأیید می‌شود

حفظ وضعیت بین گام‌ها

بازگشت به گام قبل انتخاب‌های پیشین را نگه می‌دارد و ستون خلاصه در هر سه گام هم‌زمان به‌روز می‌ماند

  • حداقل اقامت۱ شب
  • حداکثر اقامت۱۴ شب
  • افق رزرو۳۶۵ روز
  • تقویمماه میلادی، اعداد فارسی، هفته از شنبه
Security

سخت‌سازی

پروژه مفهومی است، اما پیکربندی سرورش مثل یک سایت واقعی بسته شد. موارد زیر روی دامنهٔ منتشرشده فعال است

  • سیاست محتوا بدون اسکریپت درون‌خطی

    هر اسکریپت با اثر انگشت رمزنگاشتی خودش مجاز شده است؛ نه اسکریپت درون‌خطی پذیرفته می‌شود و نه اجرای پویای کد. سبک‌ها، قلم‌ها و اتصال‌ها هم فقط از خود دامنه

  • قاب‌گیری و منابع بیرونی بسته

    صفحه در هیچ قابی بارگذاری نمی‌شود، افزونه و شیء بیرونی مجاز نیست و مقصد فرم‌ها به خود دامنه محدود است

  • اتصال فقط امن

    دسترسی امن با سیاست یک‌سالهٔ شامل زیردامنه‌ها اجباری شده و درخواست‌های ناامن پیش از ارسال ارتقا می‌یابند

  • مجوزهای مرورگر خاموش

    دوربین، میکروفون، موقعیت مکانی، پرداخت و درگاه‌های سخت‌افزاری برای این دامنه غیرفعال‌اند و نوع محتوا حدس زده نمی‌شود

  • نقاط پایانی محدود

    هر نقطهٔ پایانی فقط روش درخواست خودش را می‌پذیرد و پاسخ‌هایش ذخیره نمی‌شوند

  • تلهٔ ربات و بدون پرداخت

    فرم رزرو یک فیلد تله دارد که از ترتیب تب بیرون است. چون هیچ مرحلهٔ پرداختی وجود ندارد، اطلاعات کارت هرگز وارد سامانه نمی‌شود

Admin

مدیریت رزروها

پشت سایت یک ناحیهٔ مدیریت محافظت‌شده قرار دارد تا درخواست‌های ثبت‌شده و موجودی شب‌ها بدون دخالت توسعه‌دهنده اداره شود

تصویری از ناحیهٔ مدیریت در این صفحه منتشر نشده است

  • ورود محافظت‌شده

    ناحیهٔ مدیریت پشت ورود قرار دارد و از بخش عمومی سایت جدا است

  • درخواست‌های رزرو

    درخواست‌های ثبت‌شده در یک نمای واحد قابل مرور است

  • موجودی شب‌ها

    ظرفیت هر اقامتگاه برای هر شب تعیین می‌شود و همان چیزی است که تقویم عمومی نشان می‌دهد

Responsive

روی صفحهٔ کوچک

صفحهٔ اصلی سایه روی دسکتاپ
همان صفحه روی موبایل؛ تصویر پیش از عنوان و مختصات زیر آن
تقویم رزرو روی موبایل؛ ماه‌ها زیر هم می‌نشینند

روی موبایل ترتیب خواندن عوض می‌شود: تصویر جلو می‌افتد و عنوان و مختصات زیر آن می‌نشیند. در تقویم رزرو هم دو ماه به‌جای کنار هم، زیر هم می‌نشینند تا خانه‌های روز به اندازهٔ لمس بمانند

Outcome

نتیجه

  • سایت روی دامنهٔ اختصاصی خود منتشر و در دسترس است
  • مسیر رزرو از تقویم تا فرم مشخصات کامل کار می‌کند
  • موجودی و قواعد اقامت از سرور خوانده می‌شود
  • پروژه مفهومی است و درآمد، مهمان یا رزرو واقعی ندارد