Skip to main content

Command Palette

Search for a command to run...

FastAPI প্রজেক্ট স্ট্রাকচার: বড় প্রজেক্ট গুছিয়ে রাখার প্রো-গাইড

স্কেলেবল এবং মেইনটেইনেবল ব্যাকএন্ড তৈরির একটি পূর্ণাঙ্গ নির্দেশিকা

Updated
2 min read
FastAPI প্রজেক্ট স্ট্রাকচার: বড় প্রজেক্ট গুছিয়ে রাখার প্রো-গাইড
M
My journey from software engineer to Technical Product Manager gives me a unique perspective—I've built products with my own hands and now I lead the teams that build them. Currently contributing as Product Manager for news portal, eCommerce, inventory ERP, education management and school management platforms at Unite Business Automation. I specialize in turning complex business requirements into scalable, user-focused SaaS solutions. Let's connect if you're passionate about product strategy, technology and building things that users love.

আপনি যখন প্রথম FastAPI শিখবেন, তখন হয়তো একটি মাত্র main.py ফাইলে সব কোড লিখে ফেলা সম্ভব। কিন্তু প্রজেক্ট যখন বড় হতে থাকে এবং সেখানে অথেনটিকেশন, ডাটাবেস এবং বিজনেস লজিক যোগ হয়, তখন কোড অগোছালো হয়ে যায়।

আজকের ব্লগে আমরা দেখবো কীভাবে একটি প্রফেশনাল FastAPI প্রজেক্টের ডিরেক্টরি সাজাতে হয় যেন তা মেইনটেইন করা সহজ হয়।


১. ফোল্ডার স্ট্রাকচারের ওভারভিউ

একটি আদর্শ FastAPI প্রজেক্ট সাধারণত নিচের মতো করে সাজানো হয়:

📦 api/ (The Routing Layer)

এটি আপনার অ্যাপ্লিকেশনের প্রবেশদ্বার। এখানে সাধারণত ভার্সন অনুযায়ী (যেমন: v1/) এন্ডপয়েন্টগুলো রাখা হয়।

  • endpoints/: এখানে আপনার সব রাউট (Routes) থাকে। যেমন- auth.py, users.py, products.py ইত্যাদি। এতে কোড মডিউলার থাকে।

⚙️ core/ (Global Settings)

পুরো প্রজেক্টের হার্ট বলা হয় একে।

  • config.py: এখানে আপনার এনভায়রনমেন্ট ভেরিয়েবল (Secret Keys, API Keys) থাকে।

  • database.py: ডাটাবেস কানেকশন এবং সেশন ম্যানেজমেন্ট এখানে করা হয়।

  • security.py: পাসওয়ার্ড হ্যাশিং এবং JWT টোকেন লজিক এখানে রাখা হয়।

🗃️ models/ & schemas/

FastAPI-তে এই দুটি বিষয় নিয়ে প্রায়ই কনফিউশন তৈরি হয়:

  • Models: এটি ডাটাবেস টেবিলের স্ট্রাকচার (যেমন SQLAlchemy বা Tortoise ORM)।

  • Schemas: এটি Pydantic মডেল, যা ডেটা ভ্যালিডেশন এবং রেসপন্স ফরম্যাটিংয়ের জন্য ব্যবহৃত হয়।

🛠️ services/ (Business Logic)

সবচেয়ে জরুরি পার্ট! রাউট ফাইলে (endpoints) সরাসরি লজিক না লিখে services/ ফোল্ডারে রাখা উচিত। এতে একই কোড আপনি একাধিক জায়গায় ব্যবহার করতে পারবেন এবং টেস্টিং সহজ হবে।

🧰 utils/ (Utility Tools)

ছোট ছোট হেল্পার ফাংশন যেমন: ইমেইল পাঠানো, ফাইল কনভার্ট করা বা থার্ড পার্টি API কল করার ফাংশনগুলো এখানে থাকে।


২. কেন এই স্ট্রাকচারটি সেরা?

১. Scalability: আপনার প্রজেক্ট যত বড়ই হোক, নতুন ফিচার যোগ করা হবে পানির মতো সহজ। ২. Debugging: কোন ফাইলে সমস্যা হচ্ছে তা আপনি খুব দ্রুত খুঁজে পাবেন।
৩. Team Collaboration: একাধিক ডেভেলপার একসাথে কাজ করলে কোড কনফ্লিক্ট হওয়ার সম্ভাবনা কমে যায়।


৩. বোনাস টিপস: নামকরণে সতর্কতা

প্রোজেক্টের ফাইল এবং ফোল্ডারের নাম দেওয়ার সময় আমাদের সচেতন থাকা উচিত। টাইপো বা ভুল বানান (যেমন: catagories এর বদলে categories বা convertion এর বদলে conversion) প্রফেশনালিজম নষ্ট করে। তাই ফাইল সেভ করার আগে স্পেলিং চেক করে নেওয়া ভালো।


উপসংহার

একটি সুন্দর ডিরেক্টরি স্ট্রাকচার শুধু আপনার কোডকেই সুন্দর করে না, বরং আপনার চিন্তাধারাকেও গুছিয়ে দেয়। আপনি যদি একজন ভালো ব্যাকএন্ড ডেভেলপার হতে চান, তবে আজ থেকেই কোড গুছিয়ে লেখার অভ্যাস করুন।

FastAPI Deep Dive

Part 1 of 2

FastAPI Deep Dive – Explore FastAPI like a pro. From building APIs and authentication to advanced patterns and performance optimization, this series helps you master modern web development with FastAPI.

Up next

Complete FastAPI JWT + Role-Based Authentication Tutorial with MySQL & Argon2

In this tutorial, we’ll build a FastAPI authentication system with JWT tokens, role-based access (USER and ADMIN), and secure password hashing using Argon2. The backend will use MySQL. This project is