ফর্ম
আগে থেকে তৈরি contact, quote, booking, এবং registration ফর্ম। AI একটি মাত্র component দিয়ে এটি যোগ করে দেয় — submit handler লেখার কোনো ঝামেলা নেই — এবং প্রতিটি সাবমিশন আপনার অ্যাপের submissions inbox-এ জমা হয়।
Proyecta-তে ফর্ম একটি capability, এমন কিছু নয় যা AI হাতে কোড করে। আপনার অ্যাপে যখন ভিজিটরদের সাথে যোগাযোগের একটি উপায় দরকার হয় — একটি contact ফর্ম, quote request, appointment booking, বা event sign-up — Proyecta একটি রেডিমেড ফর্ম definition তৈরি করে এবং template-এর নিজস্ব block-এর মাধ্যমে render করে। Validation, success state, সাবমিশন সংরক্ষণ এবং owner notification — সবই বিনামূল্যে পাওয়া যায়।
Preset-গুলো
Section titled “Preset-গুলো”প্রতিটি ফর্ম পাঁচটি built-in preset-এর একটি থেকে শুরু হয়। আপনি যে ফর্মটি চান তা describe করুন, Proyecta সঠিকটি বেছে নেবে (এবং প্রয়োজন অনুযায়ী পরিবর্তন করবে) — আপনাকে কখনো শূন্য থেকে field তৈরি করতে হবে না।
| Preset | form api id |
কীসের জন্য | কীসের সাথে জুটি |
|---|---|---|---|
| Contact | contactForm |
সাধারণ “যোগাযোগ করুন”: নাম, ইমেইল, ঐচ্ছিক ফোন, বার্তা | Business info |
| Quote | quoteForm |
মূল্য তালিকার request: যোগাযোগের তথ্য + কোন service + কাজের বিবরণ | Services |
| Booking | bookingForm |
Appointment: service, পছন্দের তারিখ ও সময়, যোগাযোগের তথ্য | Services |
| Registration | registrationForm |
Event বা কোর্স sign-up (RSVP): অংশগ্রহণকারীর তথ্য + একটি নোট | Events |
| Order | orderForm |
অর্ডার গ্রহণ: গ্রাহক কী চান, যোগাযোগের তথ্য, নোট | Menu, catalog |
আপনি একটি অ্যাপে একাধিক ফর্ম রাখতে পারেন (যেমন একটি contact ফর্ম এবং একটি booking ফর্ম), এবং AI যেকোনো ফর্মে field যোগ, নামকরণ বা পুনর্গঠন করতে পারে।
AI যেভাবে এটি সংযুক্ত করে
Section titled “AI যেভাবে এটি সংযুক্ত করে”AI কখনো হাতে ফর্ম বা submit handler তৈরি করে না। এটি template-এর নিজস্ব <FormBlock/> যোগ করে এবং id বা api id দিয়ে একটি ফর্মের দিকে নির্দেশ করে:
import { FormBlock } from '@/components/blocks/FormBlock';
// Anywhere on a public page — a contact section, a "request a quote" panel, etc.<FormBlock form="contactForm" />;<FormBlock/> নিজে নিজেই সবকিছু করে:
- Type অনুযায়ী field render করে — text / email / phone হিসেবে input, দীর্ঘ text হিসেবে textarea, পছন্দ হিসেবে dropdown, opt-in হিসেবে checkbox, তারিখ ও সময় হিসেবে native picker, এবং file field হিসেবে “attach file” control।
- Browser-এ validate করে — কিছু পাঠানোর আগে required field যাচাই করা হয়।
- Server-এ validate করে — server কোনো মান প্রত্যাখ্যান করলে, নির্দিষ্ট error সেই field-এর পাশে inline দেখায় (কোনো সাবমিশন হারিয়ে যায় না, নীরবে ব্যর্থ হয় না)।
- Success state দেখায় — সাবমিট করার পরে, ফর্মটি একটি সুন্দর confirmation বার্তায় (ফর্মের নিজস্ব confirmation বার্তা) পরিণত হয়, সাথে আরেকটি response পাঠানোর option থাকে।
- নিরাপদে ব্যর্থ হয় — ফর্মটি না থাকলে বা deactivate করা হলে, block কিছুই render করে না, তাই এটি কখনো public page ভাঙতে পারে না।
যেহেতু block-টি template-এর নিজস্ব, AI-এর কাজ শুধু এটি রাখা এবং আশেপাশের section স্টাইল করা — এর পেছনের plumbing নির্দিষ্ট এবং সঠিক।
File attachment
Section titled “File attachment”ফর্মগুলো আপলোড করা file গ্রহণ করতে পারে (একটি receipt, reference ছবি, বা brief)। File field-গুলো একটি “attach file” বোতাম render করে, file-টি storage-এ আপলোড করে এবং এর public URL সাবমিশনে রাখে। সীমাবদ্ধতাগুলো স্বয়ংক্রিয়ভাবে প্রয়োগ হয়:
- শুধুমাত্র image এবং PDF, সর্বোচ্চ 5 MB (বড় image প্রথমে browser-এ downscale করা হয়)।
- File আপলোড হওয়ার সময় submit বোতাম disabled থাকে, তাই কোনো সাবমিশন অসম্পূর্ণ অবস্থায় পাঠানো যায় না।
সাবমিশন কোথায় যায়
Section titled “সাবমিশন কোথায় যায়”প্রতিটি সাবমিশন সংরক্ষিত হয় এবং আপনার অ্যাপের submissions inbox-এ দেখা যায় — admin panel-এর অংশ, template-এর <SubmissionsInbox/> দ্বারা render করা হয়। সেখান থেকে আপনি (owner) পারবেন:
- New / Read / Archived ট্যাবের অধীনে সাবমিশন দেখতে, New-তে unread badge সহ।
- যেকোনো সাবমিশন খুলে submitted field-এর মান, কোন page থেকে এসেছে এবং তারিখ দেখতে।
- একটি সাবমিশন read হিসেবে চিহ্নিত করতে, new-তে ফিরিয়ে আনতে বা archive করতে।
- inbox-কে একটি নির্দিষ্ট ফর্মে সীমাবদ্ধ রাখতে, অথবা সব ফর্মের সাবমিশন একসাথে দেখতে।
Inbox শুধুমাত্র admin-এর জন্য — reader-কে একটি admin account দিয়ে sign in করতে হবে (server-এ enforce করা হয়)।
প্রতিটি সাবমিশনে ইমেইল পাওয়া
Section titled “প্রতিটি সাবমিশনে ইমেইল পাওয়া”কেউ সাবমিট করলে ফর্মগুলো আপনাকে ইমেইলে জানাতে পারে — owner notification চালু করুন এবং যে ঠিকানায় পাওয়া উচিত তা সেট করুন। অ্যাপ না খুলেই আপনি inbox-এ lead পাবেন। ইমেইলটি Proyecta-এর email capability-র মাধ্যমে পাঠানো হয়, তাই কোনো অতিরিক্ত setup ছাড়াই কাজ করে।
সাধারণ pattern (AI-কে দিয়ে করিয়ে নিন)
Section titled “সাধারণ pattern (AI-কে দিয়ে করিয়ে নিন)”"Add a contact form to the footer with name, email, and message, and email me at hello@mybiz.com whenever someone submits.""Put a 'Request a quote' form on each service page that asks which service they need and the job details.""Add a booking form so clients can request an appointment with a preferred date and time.""Create an event registration form for the workshop page and let attendees attach a PDF.""Show me the submissions inbox and only the ones I haven't read yet."
সম্পর্কিত
Section titled “সম্পর্কিত”- Content Management — ফর্মগুলো একই content model-এ আপনার collection-এর পাশে থাকে।
- Admin Panel — যেখানে সাবমিশন পর্যালোচনা করা হয়।
- Emails — owner-notification ইমেইল কীভাবে পাঠানো হয়।