বাংলায় জ্যাঙ্গো

Uncategorized

CSRF Token কি এবং কেন ব্যবহার করা হয়!?

by
, on
March 28, 2018

CSRF বা Cross-Site Request Forgery হল এক ওয়েবসাইট থেকে আরেক ওয়েবসাইটে আপনার ব্রাউজারের মাধমে রিকুয়েস্ট সেন্ড করা! কঠিন হয়ে গেল? আচ্ছা সহজ করি…

১) ধরুন কোন ওয়েব ব্রাউজার দিয়ে আপনি ফেসবুকে লগিন করেছেন। সেখানে স্ট্যাটাস পোস্ট করার জন্য একটা ফর্ম আছে। আপনি সেখানে কিছু লিখে সাবমিট করলেই সেটা পাবলিশ হয়ে যায়!

২) আচ্ছা, আপনি কি প্রতিবারই পোস্ট করার সময় ইউজার নেম এবং পাসওয়ার্ড দিয়ে পোস্ট করেন? না। তাহলে ফেসবুক কিভাবে বুঝে যে এই ফর্মটা আপনিই সাবমিট করেছেন? সিম্পল ব্যপার, সেই ব্রাউজার দিয়ে তো আপনি ফেসবুকে লগিন করেছিলেন, তাই ফেসবুক এটা ধরে নিয়েছে যে আপনার এই ব্রাউজার থেকে আসা রিকুয়েস্ট গুলো আপনিই করছেন!

৩) আপনি কি জানেন যে জাভাস্ক্রিপ্ট নামে একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ রয়েছে যা প্রায় সকল ওয়েবসাইটেই থাকে এবং সেটা দিয়ে যেকোন ধরনের ফর্ম নিমেষেই তৈরি করে ফেলা যায় এবং যেখানে সেখানে তা সাবমিট করা যায়? ধরে নিলাম যে আপনি জানেন না!!

৪) কোন এক কারনে আপনি এমন একটি ওয়েবসাইটে গেলেন যেটাতে এমন একটি জাভাস্ক্রিপ্ট কোড রয়েছে যা হুবুহু ফেসবুক স্ট্যাটাস ফর্মের মত একটা ফর্ম তৈরি করে সেটাতে যেকোন কিছু লিখে সরাসরি ফেসবুকের ওয়েবসাইটেই সাবমিট করে দিল!!! অথচ আপনি জানতেই পারলেন না! (এটা সম্ভব কিন্তু! )

৫) ফেসবুক যখন সেই জাভাস্ক্রিপ্ট থেকে অটো জেনারেট হওয়া রিকুয়েস্ট টা পাবে সে কিন্তু ধরে নিবে যে রিকুয়েস্টটা আপনি করেছেন! ( কেন? কারন সেটা আপনার ব্রাউজার থেকে গিয়েছে এবং এই ব্রাউজার দিয়েই আপনি ফেসবুকে লগিন করে বসে আছেন!)

৬) অন্য একটা ওয়েবসাইট থেকে একটা জাভাস্ক্রিপ্ট কোড উলটা পালটা কিছু লিখে আপনার ফেসবুকে পাবলিশ করে দিল, এই বিষয়টা যদি আপনার মাথা ব্যথার কোন কারন না হয় তাহলে আপনি আসলেই খুব শান্তিতে আছেন! ( তবে সেই ভয়ংকর কোডটা যে শুধু আপনার ফেসবুকেই রিকুয়েস্ট সাবমিট করতে পারবে এমন নয়, ইকমার্স, ব্যাংক বা ফিন্যানশিয়াল অথবা পারসোনাল যেকোন ওয়েবসাইটেই কিন্তু সে এরকম রিকুয়েস্ট পাঠাতে পারবে!!)

৭) CSRF এটাকেই বলে। এক ওয়েবসাইট থেকে আরেক ওয়েবসাইটে আপনার ব্রাউজারের মাধ্যমে রিকুয়েস্ট করা। (এবং অবশ্যই আপনার অজান্তে)

৮) CSRF টোকেন হল এই ধরনের ক্রস সাইট রিকুয়েস্ট থেকে বাচার সিস্টেম! এটা জাস্ট একটা র‍্যান্ডম কিছু অক্ষরের স্ট্রিং। যা অটো জেনারেট হয় এবং ভেরিফাই হয়। আবারো কঠিন লাগছে!?

৯) ধরুন ফেসবুক বুদ্ধি করে তার প্রতিটা ফর্মের সাথে গোপনে একটা র‍্যান্ডম স্ট্রিং আপনার ব্রাউজারে পাঠিয়ে দিল, যখন আপনি ফর্ম সাবমিট করবেন তখন সেই স্ট্রিং টাও আবার ফেসবুকের সার্ভারে যাবে। ফেসবুক তখন ভেরিফাই করে দেখবে যে সে যে স্ট্রিং টা ব্রাউজারে পাঠিয়েছিল সেটাই কি সাবমিটের সময় আবার সার্ভারে ফিরে গেছে কিনা! যদি ফিরে যায় তাহলে রিকুয়েস্ট এক্সেপ্ট করবে অন্যথায় করবেনা!

১০) অন্য কোন ওয়েবসাইটের জাভাস্ক্রিপ্ট কোড ফেসবুকের মত ফর্ম তৈরি করতে পারলেও সেই CSRF Token এর র‍্যান্ডম স্ট্রিং টা তৈরি করতে পারবেনা। কারনে এটা র‍্যান্ডম, প্রতিটা ফর্মের জন্য আলাদা, প্রতিবার লোড হওয়ার সময় চেঞ্জ হয় এবং সেখানে এনকোডিং এর মাধ্যমে গোপনে ভ্যালিডিটির টাইমও সেট করা থাকে যে পাঁচ মিনিট বা দশ মিনিট পর আর এই কোড দিয়ে ফর্ম সাবমিট করলেও এক্সেপ্ট করবেনা!
এমনকি জাভাস্ক্রিপ্ট এর মাধ্যমে অন্য কোন ওয়েবসাইট ফেসবুকের এই CSRF Token (যেটা ফেসবুক আপনার ব্রাউজারে পাঠিয়েছে) কপি করেও নিতে পারবেনা! কারন আপনার ব্রাউজারটিই একাজ তাকে করতে দিবেনা!

১১) সো, যেহেতু আপনি সরাসরি ফর্ম সাবমিট করলে ভ্যালিড CSRF Token সহ সাবমিট হচ্ছে পক্ষান্তরে অন্য কোন ওয়েবসাইটের জাভাস্ক্রিপ্টের করা ফর্ম সেই CSRF Token দিতে পারছেনা তাই আপনার রিকুয়েস্ট গ্রহণ করা হবে এবং অন্যদেরটা গ্রহণ করা হবেনা!! সিম্পল!

জ্যাঙ্গোতে একারনেই (POST রিকুয়েস্টে) ফর্মের ক্ষেত্রে csrf token যুক্ত করা আবশ্যক! বোঝা গেল জিনিষটা?

 

আরো জানতে চাইলেঃ  https://en.wikipedia.org/wiki/Cross-site_request_forgery

Uncategorized

১ম ধাপ – প্রডাক্ট লিষ্ট তৈরী

by , on
March 28, 2018

আসসালামুয়ালাইকুম,
আপনার জ্যাঙ্গো শেখা কেমন চলছে ? আশা করি আপনি জ্যাঙ্গো নিয়ে ছোটখাট অনেক কাজ করতে শিখেছেন। এখন আমরা একটি প্রজেক্ট করার মাধ্যমে আমাদের পূর্বের শেখাকে আরো মজবুত করব। কিভাবে একটি প্রজেক্ট শুরু করতে হয় তা আমি আগের পোষ্টে আলোচনা করেছি। আশা করি আপনার কাছে বিষয়টি বোধগম্য হয়েছে।

আমরা বর্তমান প্রজেক্টটি Django 2 এবং Python 3 ভার্সনে কোড করব। সম্পুর্ন প্রজেক্টের প্রতিটি ধাপে KanBan Board অনুসরন করার চেষ্টা করব ইনশাআল্লাহ।

গত পর্বে KanBan Board এ TODO লিষ্ট তৈরী করেছিলাম

 

সর্বপ্রথম আমাদের দোকানে যে পন্যগুলো থাকবে তার লিষ্ট তৈরী করা দরকার। এজন্য  Items কে In Progress এ নিয়ে গিয়ে আমাদের কাজ শুরু করব

আমাদের চেকলিষ্টের প্রথম কাজ start project and app শুরু করি।

প্রজেক্ট শুরু

প্রজেক্টের মডিউলের ভার্সন ম্যানেজ করার জন্য virtual environment তৈরী করি।

virtualenv dokan-env --python=python3

“dokan-env” হচ্ছে virtual environment এর নাম এবং  –python=python3 দ্বারা বলে দেয়া হয়েছে যে আমরা python3 ব্যাবহার করব। আপনার পিসিতে অবশ্যই python3 ইন্সটল করা থাকতে হবে।

Activate virtualenv

source dokan-env/bin/activate

install Django

pip install django==2

প্রজেক্ট শুরু করি

django-admin startproject dokan

app তৈরী করি

python manage.py startapp inventory

settings.py এ installed_apps এ ‘inventory’ যুক্ত করি।

আমাদের দোকানে কি কি পন্য থাকবে তার ডাটা ডাটাবেজে রাখার জন্য মডেল ক্লাস তৈরী করি।
inventory/models.py

from django.db import models

class Category(models.Model):
    name = models.CharField(max_length=50)

    def __str__(self):
        return self.name 


class Item(models.Model):
    name = models.CharField(max_length=150)
    category = models.ForeignKey(Category, on_delete=None)
    is_active = models.BooleanField(default=True)
    
    def __str__(self):
        return self.name

এডমিন প্যানেলে রেজিষ্টার করি
inventory/admin.py

from django.contrib import admin
from .models import Category, Item

admin.site.register(Category)
admin.site.register(Item)

মাইগ্রেট করি

python manage.py makemigrations
python manage.py migrate

superUser তৈরী করে এডমিন প্যানেলে লগিন করি এবং Category ও Item তৈরী করি।

Item List পেজ তৈরী

সবগুলো আইটেমের তালিকা দেখার জন্য একটি ভিউ তৈরী করি।
inventory/views.py

from django.shortcuts import render
from .models import Item

def item_list(request):
    all_items = Item.objects.all()
    context = {'all_items':all_items}
    return render(request, 'inventory/item_list.html', context)

settings.py এ TEMPLATES  এর ‘DIRS’: [‘templates’] যুক্ত করি।  ( বিস্তারিত )
প্রজেক্ট ডিরেক্টরীতে templates নামে একটি ডিরেক্টরী তৈরী করি এবং এর মধ্য আরেকটি inventory নামে ডিরেক্টরী তৈরী করি।

templates/inventory/item_list.html

  {% for item in all_items %}
        <p>{{item }}</p>
    {% endfor %}

inventory/urls.py

from django.urls import path
from .views import item_list


urlpatterns = [
    path('items/', item_list, name='item-list'),
]

এখন localhost:8000/inventory/items এ গিয়ে সকল আইটেমগুলো দেখতে পাবেন।

Style যুক্ত করি

[ style যোগ করার বিস্তারিত টিউটোরিয়াল দেখুন এখানে ]

Bootstrap SB Admin 2  থিম ব্যাবহার করে আমরা আমাদের প্রজেক্ট ডিজাইন করব।

রুট ডিরেক্টরীতে ( যেখানে manage.py রয়েছে) static নামে একটি ডিরেক্টরী তৈরী করি। settings.py ফাইলে বলে দিই যে, আমাদের সকল static ফাইল ( html, css, js ) এই ডিরেক্টরীতে থাকবে।
settings.py

STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]

templates/base.html

<!DOCTYPE html>
<html lang="en">

<head>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>My dokan</title>
    {% load staticfiles %}
    <!-- Bootstrap Core CSS -->
    <link href="{% static 'vendor/bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">

    <!-- MetisMenu CSS -->
    <link href="{% static 'vendor/metisMenu/metisMenu.min.css' %}" rel="stylesheet">

    <!-- Custom CSS -->
    <link href="{% static 'dist/css/sb-admin-2.css' %}" rel="stylesheet">

    <!-- Morris Charts CSS -->
    <link href="{% static 'vendor/morrisjs/morris.css' %}" rel="stylesheet">

    <!-- Custom Fonts -->
    <link href="{% static 'vendor/font-awesome/css/font-awesome.min.css' %}" rel="stylesheet" type="text/css">

</head>

<body>

    <div id="wrapper">

        <!-- Navigation -->
        <nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="http://www.banglai-django.com/">বাংলায় জ্যাঙ্গো</a>
            </div>
            <!-- /.navbar-header -->

            <ul class="nav navbar-top-links navbar-right">
                
                <!-- /.dropdown -->
                <li class="dropdown">
                    <a class="dropdown-toggle" data-toggle="dropdown" href="#">
                        <i class="fa fa-user fa-fw"></i> <i class="fa fa-caret-down"></i>
                    </a>
                    <ul class="dropdown-menu dropdown-user">
                        <li><a href="#"><i class="fa fa-user fa-fw"></i> User Profile</a>
                        </li>
                        <li><a href="#"><i class="fa fa-gear fa-fw"></i> Settings</a>
                        </li>
                        <li class="divider"></li>
                        <li><a href="login.html"><i class="fa fa-sign-out fa-fw"></i> Logout</a>
                        </li>
                    </ul>
                    <!-- /.dropdown-user -->
                </li>
                <!-- /.dropdown -->
            </ul>
            <!-- /.navbar-top-links -->

            <div class="navbar-default sidebar" role="navigation">
                <div class="sidebar-nav navbar-collapse">
                    <ul class="nav" id="side-menu">
                        
                        <li>
                            <a href="{% url 'item-list' %}"><i class="fa fa-dashboard fa-fw"></i> Item List</a>
                        </li>
                        
                        <li>
                            <a href="#"><i class="fa fa-table fa-fw"></i> Tables</a>
                        </li>
                        <li>
                            <a href="#"><i class="fa fa-edit fa-fw"></i> Forms</a>
                        </li>
                        
                    </ul>
                </div>
                <!-- /.sidebar-collapse -->
            </div>
            <!-- /.navbar-static-side -->
        </nav>

        <div id="page-wrapper">
            <!-- Title Block -->
            <div class="row">
                <div class="col-lg-12">
                    <h1 class="page-header">{% block pagetitle %}{% endblock %}</h1>
                </div>
                <!-- /.col-lg-12 -->
            </div>
            <!-- Container Block -->
            <div class="row">
            
                {% block container %}
                {% endblock %}
            </div>
            <!-- /.row -->

        </div>
        <!-- /#page-wrapper -->
    </div>
    <!-- /#wrapper -->

    <!-- jQuery -->
    <script src="{% static 'vendor/jquery/jquery.min.js' %}"></script>

    <!-- Bootstrap Core JavaScript -->
    <script src="{% static 'vendor/bootstrap/js/bootstrap.min.js' %}"></script>

    <!-- Metis Menu Plugin JavaScript -->
    <script src="{% static 'vendor/metisMenu/metisMenu.min.js' %}"></script>

    <!-- Morris Charts JavaScript -->
    <script src="{% static 'vendor/raphael/raphael.min.js' %}"></script>
    <script src="{% static 'vendor/morrisjs/morris.min.js' %}"></script>
    <script src="{% static 'data/morris-data.js' %}"></script>

    <!-- Custom Theme JavaScript -->
    <script src="{% static 'dist/js/sb-admin-2.js' %}"></script>

</body>

</html>

এখন item_list.html কে পরিবর্তন করে সুন্দর কাঠামো দান করি
templates/inventory/item_list.html

{% extends 'base.html' %}

{% block pagetitle %} All Items {% endblock %}

{% block container %}

<div class="col-md-12">
    <div class="panel panel-default">
        <div class="panel-body">
            <div class="table-responsive">
                <table class="table table-striped table-bordered table-hover">
                    <thead>
                        <tr>
                            <th>#</th>
                            <th>Name</th>
                            <th>Category</th>
                            <th>Is Active</th>
                        </tr>
                    </thead>
                    <tbody>
                        {% for item in all_items %}
                            <tr>
                                <td>{{ forloop.counter }}</td>
                                <td>{{ item.name }}</td>
                                <td>{{ item.category }}</td>
                                <td>{{ item.is_active }}</td>
                            </tr>
                        {% endfor %}
                    </tbody>
                </table>
            </div>
        </div>
    </div>
</div>
    
{% endblock %}

localhost:8000/inventory/items/ এ গেলে নিচের চেহারা দেখতে পাবেন

আমরা আমাদের ১ম টার্গেট পূরন করতে পেরেছি। trello.com এ গিয়ে বোর্ড আপডেট করুন

GitHub এ কোড পুশ করা

[ git এবং GitHub সম্পর্কে জানতে জাকির হোসেন ভায়ের লেখাটি দেখুন ]

আমাদের এই প্রজেক্টটি গিটহাবে পুশ করব। github.com এ গিয়ে নতুন রিপজিটরী খুলুন

এখন কি করতে হবে, গিটহাব আমাদেরকে তা লিখেই দিয়েছে খুব সহজে

git init 
git add . 
git commit -m "Item list completed"
git remote add origin https://github.com/harunurkst/dokan.git
git push origin master

git remote add origin https://github.com/harunurkst/dokan.git এই লাইনটিতে আপনার রিপজিটরী url বাসান

কেমন লাগলো প্রজেক্টটি করতে? আশা করি ভাল লেগেছে। কমেন্টে আপনার অনুভুতি জানান। আগামি পর্বে প্রজেক্টের ২য় পর্ব দেখাবো ইনশাআল্লাহ।

Uncategorized

জ্যাঙ্গো পরিচিতি

by , on
March 21, 2018

জ্যাঙ্গো কি ?

জ্যাঙ্গো হচ্ছে পাইথন দ্বারা নির্মিত একটি মুক্ত প্রযুক্তির( Free and open source) ওয়েব এপলিকেশন ফ্রেমওয়ার্ক । এটি আবিষ্কৃত হয়েছিল ২০০৩ সালে Lawrence Journal-World পত্রিকার Application Developer দের হাত ধরে। পত্রিকার সংক্ষিপ্ত ডেডলাইনকে সামনে রেখে ডেভেলপারদের চাহিদা পূরন করতেই Django আবিষ্কার।

ফ্রেমওয়ার্ক কি ?

ফ্রেম বলতে আমরা বুঝি, যে কাজ বার বার করতে হয় তার একটি কাঠামোর দাড় করানো, যাতে ওই কাঠামো ব্যাবহার করে দ্রুত ওই কাজটি করা যায়। যেমন, আমরা সিমেন্টের তৈরী অনেক সুন্দর সুন্দর ডিজাইন দেখতে পাই। বার বার এই কাজ সহজে কারার জন্য একটি ফ্রেম তৈরী করা হয়। এরপর ফ্রেমে কাঁচামাল দিলেই সুন্দর ডিজাইন তৈরী হয়।
তেমনিভাবে ওয়েব ডেভেলপারদের বিভিন্ন প্রজেক্ট তৈরী করার সময় কিছু কমন কাজ বার বার করতে হয়। যেমনঃ অথেনটিকেশন, ডাটাবেজ কানেকশন, সেশন ইত্যাদি। এই কাজগুলোর মডিউল তৈরী করে যে প্লাটফর্ম দাড় করানো হয় তাকেই ফ্রেমওয়ার্ক বলে।

আবিষ্কারের ইতিহাস

জ্যাঙ্গো আবিষ্কারের ইতিহাস বলতে গিয়ে Django এর সহযোগী আবিষ্কারক Simon Wilson বলেন, “জ্যাঙ্গো আবিষ্কার করা হয় যখন তিনি এবং Adrian HolovatyLawrence Journal-World newspaper’ এ কাজ করতেন” ২০০৩ সালে। Adrian ইতমধ্যে Lawrance.com তৈরী করেছিলেন PHP দিয়ে এবং Simon ও ৫ বছরের অভিজ্ঞতা সম্পন্য PHP ডেভেলপার ছিলেন। তিনি বলেন, ” PHP দিয়ে বড় সাইট মেইন্টেইন করতে গিয়ে আমরা উভয়েই বিরক্ত ছিলাম, আমরা উভয়ের পাইথনের ভক্ত ছিলাম এবং ধন্যবাদ Mark Pilgrim কে তার Dive Into Python বইটির জন্য” ।

কেন ব্যাবহার করা হয়

পাইথন প্রোগ্রামিং ল্যাঙ্গুয়েজ দিয়ে তৈরি সবচেয়ে শক্তিশালী, রোবাস্ট, সিকিউর এবং ম্যাচিউর ওয়েব ফ্রেমওয়ার্কটি হল জ্যাঙ্গো! ছোট থেকে বড়, সাধারণ থেকে অসাধারন যেকোন ধরনের ওয়েবসাইট খুব সহজে এবং কম সময়ে তৈরি করতে এর জুড়ি নেই।

এর  সাহায্যে আপনি আপনার আইডিয়াকে কয়েক ঘন্টার মধ্যে ওয়েব এপলিকেশনে পরিনত করতে পারবেন।
বিভিন্ন কম্পানি এবং সরকারী প্রতিষ্ঠান তাদের Content management system, সামাজিক যোগাযোগ , সাইন্টিফিক প্লাটফর্ম সহ সকল ধরনের ওয়েব এপলিকেশন তৈরীর জন্য এই ফ্রেমওয়ার্ক ব্যাবহার করছেন।

জ্যাঙ্গো ব্যাবহার করে নির্মিত সাইট:

পরবর্তী পোষ্ট

Uncategorized

পাইথন জ্যাঙ্গো কোর্স

by , on
March 15, 2018

কোর্স সম্পর্কেঃ
বর্তমানে সবচেয়ে জনপ্রিয় প্রগ্রামিং ল্যাঙ্গুয়েজের মধ্যে অন্যতম হচ্ছে Python। এই কোর্সের মাধ্যমে আপনার প্রগ্রামিং শেখার পথ আরো সহজ ও সুন্দর হবে ইনশাআল্লাহ। কোর্সে ভর্তি হওয়ার জন্য আপনার কোন প্রগ্রামিং জানা জরুরী নয়। আপনার আগ্রহ এবং পরিশ্রমই যথেষ্ঠ। কোর্সের শুরু থেকেই প্রতি সপ্তাহে বাড়ির কাজ হিসেবে প্রচুর Problem Solve এবং জরুরী কিছু এলগরিদম করতে দেয়া হবে। জ্যাঙ্গো ( Django ) ক্লাসের সময় একটি ছোট Practice প্রজেক্ট করানো হবে। এতে প্রজেক্ট করতে করতেই জ্যাঙ্গো শেখার কারনে আপনার শেখার মজা বৃদ্ধি পাবে।
প্রথম থেকেই Git এবং Linux OS ব্যাবহারে অভ্যস্ত করা হবে।

৪ মাসের কোর্সের মেয়াদকাল শেষে ইনশাআল্লাহ আপনি জ্যাঙ্গো ফ্রেমওয়ার্ক ব্যাবহার করে পুর্নাঙ্গ প্রজেক্ট করার যোগ্য হয়ে উঠবেন। মূল কোর্সের পরবর্তি ২ মাসে  Agile Methodology অনুসরন করে সফটওয়ার বাজারে বিক্রয় উপযোগী একটি পুর্নাঙ্গ প্রজেক্টের MVP (Minimum Viable Product) তৈরী করা হবে। এই সময়ে প্রতি সপ্তাহে টিম মিটিং করা হবে।

সময়ঃ প্রতি  শুক্র ও শনি সকালঃ ৯ টা থেকে ১২ টা
সর্বমোট ক্লাসঃ ৩২ টি
সময়ঃ ৪ মাস, ৯৬ ঘন্টা
ফ্রি ক্লাসঃ ২৭ এপ্রিল শুক্রবার সকাল ৯ টা
ক্লাস শুরুঃ ২৮ এপ্রিল শনিবার সকাল ৯ টা
আসন সংখ্যাঃ ১৫ টি

কোর্স কারিকুলামঃ

  • Getting Started with Python3
  • Data structure
  • OOP -Object oriented Programing with python
  • Exception Handling
  • File Handling
  • Getting started with Django2
  • Basic Django ( models, views, templetes, urls, Forms)
  • Django Queryset
  • Class Based View
  • Django Rest API
  • Working with Postgresql Database
  • Version control with Git
  • Basic Concept of Freelancing and how to apply for job in freelance marketplace.

কোর্স ফিঃ ১০,০০০ টাকা (ভর্তির সময় ৫ হাজার এবং অবশিষ্ঠ ফি ১ মাস পর পরিশোধ করতে হবে।)
ঠিকানাঃ ও-২৩, মুসলিম সুইটস এর গলি, নুরজাহান রোড, মোহাম্মদপুর, ঢাকা

রেজিষ্ট্রেশনঃ রেজিষ্ট্রেশন লিঙ্ক

যোগাযোগঃ ফেচবুক পেজ ফেচবুক গ্রুপ, আমার ব্যাক্তিগত ফেচবুক গ্রুপ

মোবাইলঃ 01715251562, 01753163092

বিঃদ্রঃ ** কওমি মাদ্রাসা থেকে দাওরায়ে হাদিস ফারেগ, হাফেজ এবং ১ চিল্লার (+) সাথীদের জন্য পাইথন কোর্সে ২০% ছাড় ।
** মেয়েদের জন্য ভর্তির সুযোগ না দিতে পারায় দুঃখিত
** আমাদের ল্যাব সেটাপ নেই। কোর্স চলাকালীন সময়ে নিজস্ব ল্যাপটপ আনতে হবে।

আয়োজনেঃ

 

Uncategorized

কুইজ – ১

by , on
March 13, 2018

আপনার ক্লাসের বন্ধুদের রোল নাম্বার অনুসারে একটি Dictionary তৈরী করুন। যেমনঃ

friends = { 1: "Abu Talib" , 
                 2: "Abdur Rahman",
                 3: "Ibne Jahash" 
              }

এখন একটি ফাংশন লিখুন assalam(friends_roll). যদি friends তালিকায় রোল নম্বর পায়, তাইলে রিটান্ট করবে,
Assalamualaikum Abu Talib, How are you?’

যদি কোন বন্ধু না খুজে পায় তাহলে রিটার্ন করবে

‘Assalamualaikum, Who are you brother?’

দেখি আপনি সমাধান করতে পারেন কি না, কমেন্টে আপনার স্ক্রিনশট দিতে ভুলবেন না কিন্তু