Capstone: তোমার বড় Project
Idea থেকে production পর্যন্ত পুরো পরিকল্পনা
শেষ তিন মাস তুমি একটা নিজের বড় project বানাবে, যেটা portfolio এর মূল আকর্ষণ হবে, আর interview তে ২০ মিনিট কথা বলার মতো বিষয়। এবার কেউ requirement দেবে না; idea থেকে শুরু করে design doc, বানানো, deploy, monitoring, সব তোমার। এটাই পার্থক্য তৈরি করে "tutorial অনুসরণ করা মানুষ" আর "engineer" এর মধ্যে।
#ভালো capstone idea এর বৈশিষ্ট্য
- বাস্তব সমস্যা, সম্ভব হলে তুমি বা পরিচিত কেউ যেটায় ভোগে
- System design এর আলোচনার মতো উপাদান: একাধিক ধরনের user, real-time, background job, AI, বা বড় data এর অন্তত তিনটা
- তিন মাসে MVP সম্ভব: ছোট শুরু, পরে বাড়ানো
- দেখানো যায়: live link, Flutter app, demo video
#কিছু idea (বাংলাদেশের প্রেক্ষাপটে)
| Idea | আকর্ষণীয় system design অংশ |
|---|---|
| কোচিং সেন্টার management (ছাত্র, ফি, attendance, ফল, অভিভাবককে notification) | Multi-tenant (অনেক কোচিং), role, SMS খরচ, মাসিক report job |
| দোকানের হিসাব ও বাকির খাতা (offline-first, একাধিক কর্মচারী) | Offline sync, conflict, ledger, দৈনিক backup |
| এলাকার সার্ভিস marketplace (ইলেকট্রিশিয়ান, প্লাম্বার, booking) | Geo search, booking এর race condition, rating, payment |
| AI পড়াশোনা সহায়ক (বই/নোট upload করে প্রশ্ন, quiz তৈরি) | RAG, খরচ নিয়ন্ত্রণ, evals, quota |
| ছোট ব্যবসার order আর delivery tracking (ফেসবুক পেজ ভিত্তিক ব্যবসার জন্য) | Order state machine, rider tracking, webhook, multi-tenant |
| হাসপাতাল/ডাক্তারের appointment | Slot booking (double booking ঠেকানো), reminder, গোপনীয়তা |
#ধাপ ১: Design doc (প্রথম ২ সপ্তাহ)
Code লেখার আগে একটা ৪-৮ পৃষ্ঠার document। বড় company গুলোতে এটাই কাজের নিয়ম, আর interview তে এটা দেখালে আলাদা প্রভাব পড়ে।
# [Project এর নাম]: Design Doc
## ১. সমস্যা আর লক্ষ্য
কার সমস্যা, এখন কীভাবে সামলায়, কেন যথেষ্ট না।
## ২. Requirement
### Functional (MVP তে কী থাকবে, কী থাকবে না)
### Non-functional (সংখ্যা সহ: latency, availability, data এর পরিমাণ, খরচ)
## ৩. Estimation
DAU, QPS (peak সহ), storage, AI খরচ।
## ৪. API
প্রধান endpoint গুলো, request/response এর উদাহরণ।
## ৫. Data model
Table, সম্পর্ক, index, কোন data কোথায় (Postgres/Redis/storage)।
## ৬. Architecture
ছবি সহ। প্রতিটা অংশ কেন।
## ৭. গুরুত্বপূর্ণ flow
২-৩টা মূল flow ধাপে ধাপে (sequence diagram)।
## ৮. ঝুঁকি আর trade-off
কোথায় কী ছাড় দিলে, বিকল্প কী ছিল, কেন বাদ দিলে।
## ৯. Security আর গোপনীয়তা
## ১০. Observability আর deploy
## ১১. পরিকল্পনা (milestone)#ধাপ ২: Milestone
| সপ্তাহ | কাজ |
|---|---|
| ১-২ | Design doc, data model, API এর খসড়া, repo setup (CI, Docker, CLAUDE.md এর নিয়ম) |
| ৩-৫ | Backend এর মূল flow, auth, test (permission test সহ) |
| ৬-৭ | Flutter app এর মূল screen |
| ৮ | Background job, notification, real-time (যা লাগে) |
| ৯ | AI feature (যদি থাকে) আর eval |
| ১০ | Deploy, monitoring, load test, security review |
| ১১ | কিছু বাস্তব user (বন্ধু, পরিচিত দোকান) দিয়ে ব্যবহার, feedback থেকে ঠিক করা |
| ১২ | README, architecture diagram, demo video, blog post |
#ধাপ ৩: মান নিশ্চিত করা
#ধাপ ৪: গল্প বলা
Project এর মূল্য অর্ধেক কাজে, অর্ধেক সেটা বোঝাতে পারায়। README এর শুরুতে:
- এক লাইনে কী আর কার জন্য
- Screenshot/GIF আর live link
- Architecture এর ছবি
- "যে কঠিন সমস্যাগুলো সমাধান করেছি": ৩টা, প্রতিটা ৩-৪ লাইনে (সমস্যা, বিকল্প, বাছাই আর কেন, ফল সংখ্যায়)
- Tech stack
- কীভাবে চালাবে
উদাহরণ:
Double booking ঠেকানো। একই ডাক্তারের একই slot এ দুইজন একসাথে booking দিলে দুজনই সফল হচ্ছিল (load test এ ধরা পড়ে)। বিকল্প ছিল Redis lock আর database constraint।
(doctor_id, slot_start)এ unique constraint বেছে নিয়েছি, কারণ এটা সবচেয়ে সহজ আর database নিজেই নিশ্চয়তা দেয়; দ্বিতীয়জন সাথে সাথে "slot আর খালি নেই" পায়। ২০০ জন একসাথে চেষ্টা করেও এখন একটাই booking হয়।
এমন একটা অনুচ্ছেদ interview তে তোমাকে বাকি প্রার্থীদের থেকে আলাদা করবে।
#নিজেকে যাচাই করো
Code লেখার আগে design doc কেন?
ভাবনা পরিষ্কার হয়, বড় ভুল আগেই ধরা পড়ে (code এ বদলানো অনেক ব্যয়বহুল), সিদ্ধান্তের কারণ লেখা থাকে, আর অন্যরা (বা AI) review করতে পারে। Interview তে এটা দেখায় তুমি পরিকল্পনা করে কাজ করো।
README তে "কঠিন সমস্যা" অংশে কী কী থাকা উচিত?
সমস্যাটা কী আর কীভাবে ধরা পড়লো, কী কী বিকল্প ছিল, কোনটা বেছে নিলে আর কেন, আর ফল সংখ্যায় (আগে-পরে)।
চিহ্ন দিলে sidebar আর রোডম্যাপে এই অধ্যায়ের station ভরে যাবে।