প্রকল্প সম্পর্কে

ফ্রি এপি প্র্যাকটিস হলো SvelteKit এবং Svelte 5 দিয়ে তৈরি একটি ওপেন-সোর্স স্টাডি টুল, যা তৈরি ও রক্ষণাবেক্ষণ করছেন অজয় সারাভানান। এটি এপি পরীক্ষার প্রস্তুতিকে লক্ষ্য করে, যাতে পেইড প্রেপ সাবস্ক্রিপশন ছাড়াই অনুশীলনকে দ্রুততর, আরও ব্যক্তিগতকৃত এবং সহজলভ্য করা যায়। মূল ফিচারগুলোর মধ্যে রয়েছে ইন-অ্যাপ টিউটরসহ এআই-জেনারেটেড মাল্টিপল-চয়েস প্রশ্ন, বুকমার্ক এবং অ্যাটেম্পট হিস্ট্রি। অ্যাপটিতে পাবলিক মার্কেটিং পেজ (ল্যান্ডিং, অ্যাবাউট, সাবজেক্টস, সামার স্টাডি গাইড, ব্লগ, স্ট্যাটস, প্রাইভেসি, টার্মস, চেঞ্জলগ) ছাড়াও /app-এ একটি অথেনটিকেটেড এলাকা রয়েছে, যেখানে ড্যাশবোর্ড, প্র্যাকটিস, প্রোগ্রেস, কোয়েশ্চন হিস্ট্রি, রিসোর্সেস এবং সেটিংস আছে। এসইও-ভিত্তিক প্র্যাকটিস ল্যান্ডিং পেজগুলো /practice/[...slug]-এর অধীনে থাকে, এবং পাবলিক জেনারেশন কাউন্টার /stats-এ দেখানো হয়। একটি ঐচ্ছিক সুপার মেম্বারশিপ ব্যক্তিগতকৃত MCQ/FRQ টিউটরিং, একটি কোচ এবং একটি সাপ্তাহিক স্টাডি প্ল্যান যোগ করে। অথেনটিকেশনে ইমেইল/পাসওয়ার্ড এবং গুগল সাইন-ইনের জন্য Better Auth ব্যবহার করা হয়, কনফিগার করা থাকলে গুগল ওয়ান ট্যাপসহ। প্রযুক্তিগতভাবে, প্রকল্পটিতে TypeScript, Tailwind CSS, সার্ভারলেস HTTPS ড্রাইভারের উপর Drizzle ORM-সহ Neon PostgreSQL, OpenAI-সামঞ্জস্যপূর্ণ API (OpenAI বা লোকাল LM Studio)-সহ Vercel AI SDK, ইমেইলের জন্য Resend, সাবস্ক্রিপশনের জন্য Better Auth Stripe প্লাগইনসহ Stripe, ঐচ্ছিক টিউটর মেমরির জন্য Mem0, স্বল্পস্থায়ী এআই নিয়ন্ত্রণের জন্য Upstash Redis এবং ডিপ্লয়মেন্টের জন্য Vercel ব্যবহার করা হয়। প্রশ্নের কনটেন্ট প্র্যাকটিস, বুকমার্ক ও হিস্ট্রির জন্য Neon PostgreSQL-এ সংরক্ষণ করা হয়; ব্লগ পোস্টগুলো src/content/blog/-এ Markdown ফাইল। সেটআপের জন্য Node.js 20+, Bun এবং একটি Neon PostgreSQL প্রকল্প প্রয়োজন। কমান্ডগুলোর মধ্যে রয়েছে bun install, bun dev, bun run build, Drizzle মাইগ্রেশনের জন্য bun run db:apply, Vitest-এর জন্য bun test:unit এবং একটি ডিপ্লয় করা প্রশ্ন-জেনারেশন স্মোক টেস্ট। একটি compose.yaml লোকাল PostgreSQL ও Redis চালু করতে পারে পরিদর্শন ও মাইগ্রেশন কাজের জন্য, যদিও রানটাইমে অবশ্যই একটি Neon ব্র্যাঞ্চ URL ব্যবহার করতে হবে। প্রয়োজনীয় এনভায়রনমেন্ট ভেরিয়েবলের মধ্যে রয়েছে DATABASE_URL, BETTER_AUTH_SECRET, BETTER_AUTH_URL, OPEN_AI_KEY এবং OPENAI_BASE_URL; ঐচ্ছিকগুলোর মধ্যে রয়েছে গুগল OAuth, Resend, S3 লিগ্যাসি ইমপোর্ট, GitHub বাগ রিপোর্ট এবং ক্রন সিকিউরিটি। মডেল পছন্দগুলো src/lib/ai/ai-models-config.ts-এ এক্সপোর্ট করা কনস্ট্যান্ট। src/routes/api-এর অধীনে API রুটগুলোর মধ্যে রয়েছে /api/auth/*-এ Better Auth ফ্লো, /api/me/*-এ সাইন-ইন করা ব্যবহারকারীর ডেটা (স্ট্যাটস, প্রোগ্রেস, হিস্ট্রি, রেকর্ড-অ্যাটেম্পট, বুকমার্ক), POST /api/question-এ প্রশ্ন নির্বাচন, পাবলিক জেনারেশন স্ট্যাটস, টিউটর চ্যাট ও গ্রিটিং এন্ডপয়েন্ট, প্রতি-IP রেট লিমিটিংসহ GitHub Issues তৈরি করা বাগ রিপোর্ট এবং একটি /health চেক। Vercel Analytics এবং Speed Insights শুধু ব্যবহারকারীর অপ্ট-ইনের পর লোড হয়। ডিপ্লয়মেন্ট Vercel-এ একটি SvelteKit অ্যাপ হিসেবে হয়; CI main বা staging-এ পুশের সময় ডিপ্লয়মেন্টের আগে মাইগ্রেশন প্রয়োগ করে। Freeappractice নাম, লোগো এবং ব্র্যান্ড মালিকানাধীন এবং প্রতিষ্ঠাতার জন্য সংরক্ষিত, তবে সোর্স কোড ভিন্ন নামে ফর্ক ও কন্ট্রিবিউশনের জন্য উন্মুক্ত।