<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Bidut Sharkar Shemanto</title>
    <description>The latest articles on DEV Community by Bidut Sharkar Shemanto (@shemanto_sharkar).</description>
    <link>https://dev.to/shemanto_sharkar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1640772%2Fb2082ea1-7820-424f-9e77-3e5d7d3e087e.jpg</url>
      <title>DEV Community: Bidut Sharkar Shemanto</title>
      <link>https://dev.to/shemanto_sharkar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shemanto_sharkar"/>
    <language>en</language>
    <item>
      <title>GitHub Action CI/CD using UV Package Manager (requirements.txt not required)</title>
      <dc:creator>Bidut Sharkar Shemanto</dc:creator>
      <pubDate>Fri, 09 May 2025 20:06:37 +0000</pubDate>
      <link>https://dev.to/shemanto_sharkar/github-action-cicd-using-uv-package-manager-requirementstxt-not-required-42b</link>
      <guid>https://dev.to/shemanto_sharkar/github-action-cicd-using-uv-package-manager-requirementstxt-not-required-42b</guid>
      <description>&lt;p&gt;I was working in django backend project and wanted to setup github action using uv package manager because I have shifted from pip to uv.&lt;/p&gt;

&lt;p&gt;The default template of Django github action is using pip and need requirements.txt file. &lt;/p&gt;

&lt;p&gt;The problem is that after add new packages you have to add dependencies each time in requirements.txt file. uv solve this problem. &lt;/p&gt;

&lt;p&gt;But I did not find any blog that shows how to write the yml file only using uv. This blog solve this problem, enjoy!:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name: Backend CI/CD Pipeline

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version-file: backend/.python-version

      - name: Install uv
        uses: astral-sh/setup-uv@v5

      - name: Create virtual environment
        working-directory: ./backend
        run: uv venv .venv

      - name: Install dependencies with uv
        working-directory: ./backend
        run: uv sync

      - name: Run Django tests
        working-directory: ./backend
        run: uv run python manage.py test

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;uv sync command install the dependencies using the uv.lock file&lt;/p&gt;

&lt;p&gt;you have to add uv run in every command related to django, because we are not activating the virtual environment&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Questions for React job interview</title>
      <dc:creator>Bidut Sharkar Shemanto</dc:creator>
      <pubDate>Fri, 25 Apr 2025 20:15:19 +0000</pubDate>
      <link>https://dev.to/shemanto_sharkar/questions-for-react-job-interview-587m</link>
      <guid>https://dev.to/shemanto_sharkar/questions-for-react-job-interview-587m</guid>
      <description>&lt;p&gt;Explain the difference between request and response interceptors in Axios.&lt;br&gt;
How would you add a custom header to all Axios requests using interceptors?&lt;br&gt;
What is a JWT, and what are its three components?&lt;br&gt;
Explain the difference between signed and encrypted JWTs.&lt;br&gt;
How do you store JWTs on the client side? What are the trade-offs between localStorage and cookies?&lt;br&gt;
What measures can you take to prevent JWT from being tampered with?&lt;br&gt;
How can you prevent a JWT from being stolen (e.g., token hijacking)?&lt;br&gt;
What is JWT, and why is it used?&lt;br&gt;
What are the three parts of a JWT? Explain their purpose.&lt;br&gt;
How does JWT differ from session-based authentication?&lt;br&gt;
How can you include a JWT in the headers of an Axios request?&lt;/p&gt;

</description>
      <category>react</category>
      <category>interview</category>
      <category>javascript</category>
      <category>security</category>
    </item>
    <item>
      <title>How to Build and Publish a Python Package on PyPI: My Experience with `my_eda_helper`</title>
      <dc:creator>Bidut Sharkar Shemanto</dc:creator>
      <pubDate>Fri, 07 Feb 2025 07:38:10 +0000</pubDate>
      <link>https://dev.to/shemanto_sharkar/how-to-build-and-publish-a-python-package-on-pypi-my-experience-with-myedahelper-1n0a</link>
      <guid>https://dev.to/shemanto_sharkar/how-to-build-and-publish-a-python-package-on-pypi-my-experience-with-myedahelper-1n0a</guid>
      <description>&lt;p&gt;Publishing your first Python package on PyPI is an exciting milestone for any developer. It’s a great way to share your work with the world, contribute to the open-source community, and showcase your skills. In this blog, I’ll walk you through the step-by-step process I followed to publish my package, &lt;code&gt;my_eda_helper&lt;/code&gt;, which simplifies Exploratory Data Analysis (EDA). I’ll also share tips on handling errors, publishing updates, and best practices. Let’s dive in! 🚀&lt;/p&gt;




&lt;h2&gt;
  
  
  What is &lt;code&gt;my_eda_helper&lt;/code&gt;?
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;my_eda_helper&lt;/code&gt; is a Python package designed to streamline the EDA process. It provides helper functions for tasks like:&lt;/p&gt;

&lt;p&gt;✅ Missing data analysis&lt;br&gt;&lt;br&gt;
✅ Correlation heatmaps&lt;br&gt;&lt;br&gt;
✅ Hypothesis testing&lt;br&gt;&lt;br&gt;
✅ Interactive visualizations  &lt;/p&gt;

&lt;p&gt;The goal is to reduce repetitive tasks and allow users to focus on deriving insights rather than writing boilerplate code.&lt;/p&gt;


&lt;h2&gt;
  
  
  Step-by-Step Guide to Publishing a Python Package
&lt;/h2&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;1. Plan Your Package&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Before writing any code, plan what your package will do. For &lt;code&gt;my_eda_helper&lt;/code&gt;, I wanted to automate common EDA tasks and make them reusable.&lt;/p&gt;


&lt;h3&gt;
  
  
  &lt;strong&gt;2. Organize Your Project Structure&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A well-structured project is crucial for maintainability. Your project should have the following structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my_eda_helper/                  &amp;lt;-- Root folder
├── my_eda_helper/              &amp;lt;-- Package folder
│   ├── __init__.py             &amp;lt;-- Makes it a package
│   └── core.py                 &amp;lt;-- Main code
├── setup.py                    &amp;lt;-- Package metadata
├── README.md                   &amp;lt;-- Documentation
├── LICENSE                     &amp;lt;-- License file
└── tests/                      &amp;lt;-- Optional: Tests
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📌 &lt;strong&gt;Explanation:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;__init__.py&lt;/code&gt;: Marks the folder as a Python package. Add &lt;code&gt;from .core import *&lt;/code&gt; to expose functions.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;core.py&lt;/code&gt;: Contains the main code (e.g., functions for EDA).
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;setup.py&lt;/code&gt;: Defines package metadata and dependencies.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;README.md&lt;/code&gt;: Provides installation and usage instructions.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;LICENSE&lt;/code&gt;: Defines the package license.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tests/&lt;/code&gt;: (Optional) Contains unit tests for your package.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;3. Write &lt;code&gt;setup.py&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;setup.py&lt;/code&gt; file is crucial for packaging your project. Here’s what mine looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;setuptools&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;find_packages&lt;/span&gt;

&lt;span class="nf"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;my_eda_helper&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;0.1.0&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;# Start with 0.1.0 for the first release
&lt;/span&gt;    &lt;span class="n"&gt;author&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Your Name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;author_email&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your.email@example.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;A helper package for Exploratory Data Analysis (EDA)&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;long_description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;README.md&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
    &lt;span class="n"&gt;long_description_content_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text/markdown&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://github.com/shemanto27/eda-helper-py&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;packages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nf"&gt;find_packages&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
    &lt;span class="n"&gt;install_requires&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;numpy&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pandas&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;seaborn&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;matplotlib&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;scipy&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;statsmodels&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;scikit-learn&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;wordcloud&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;IPython&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;classifiers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Programming Language :: Python :: 3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;License :: OSI Approved :: MIT License&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Operating System :: OS Independent&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;python_requires&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;&amp;gt;=3.6&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📌 &lt;strong&gt;Why?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
This file tells PyPI how to install and use your package.&lt;/p&gt;


&lt;h3&gt;
  
  
  &lt;strong&gt;4. Write a &lt;code&gt;README.md&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Your &lt;code&gt;README.md&lt;/code&gt; should include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A short description&lt;/li&gt;
&lt;li&gt;Installation instructions&lt;/li&gt;
&lt;li&gt;Usage examples&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here’s a snippet from mine:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# My EDA Helper&lt;/span&gt;

A Python package to simplify Exploratory Data Analysis (EDA).

&lt;span class="gu"&gt;## Installation&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;br&gt;
pip install my_eda_helper&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
## Usage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
python&lt;br&gt;
import my_eda_helper as eda&lt;/p&gt;
&lt;h1&gt;
  
  
  Missing data analysis
&lt;/h1&gt;

&lt;p&gt;missing_data = eda.missing_info(df)&lt;br&gt;
print(missing_data)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;5. Build Your Package&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Before uploading to PyPI, build your package:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;build
python &lt;span class="nt"&gt;-m&lt;/span&gt; build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This creates a &lt;code&gt;dist/&lt;/code&gt; folder containing &lt;code&gt;.tar.gz&lt;/code&gt; and &lt;code&gt;.whl&lt;/code&gt; files.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;6. Upload to PyPI&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Step 1: Create a PyPI Account&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Sign up at &lt;a href="https://pypi.org/" rel="noopener noreferrer"&gt;pypi.org&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Step 2: Generate an API Token&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;strong&gt;Account Settings&lt;/strong&gt; &amp;gt; &lt;strong&gt;API Tokens&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Create a new token&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Step 3: Upload Your Package&lt;/strong&gt;
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;twine
python &lt;span class="nt"&gt;-m&lt;/span&gt; twine upload dist/&lt;span class="k"&gt;*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;__token__&lt;/code&gt; as the username.&lt;/li&gt;
&lt;li&gt;Paste your API token as the password.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ &lt;strong&gt;Your package is now live on PyPI!&lt;/strong&gt; 🎉&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;7. Test Your Package&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;To confirm the installation works, install and import it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;my_eda_helper
python &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"import my_eda_helper; print(dir(my_eda_helper))"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Handling Errors and Publishing Updates
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Common Errors&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;❌ &lt;strong&gt;Package Not Found:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure the package name is unique on PyPI.
&lt;/li&gt;
&lt;li&gt;Double-check the &lt;code&gt;name&lt;/code&gt; field in &lt;code&gt;setup.py&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;❌ &lt;strong&gt;Missing Files:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure all necessary files (&lt;code&gt;__init__.py&lt;/code&gt;, &lt;code&gt;core.py&lt;/code&gt;, &lt;code&gt;README.md&lt;/code&gt;) are included.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;❌ &lt;strong&gt;Version Conflict:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Increment the version number in &lt;code&gt;setup.py&lt;/code&gt; before uploading a new version.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Publishing a New Version&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;If you want to update your package:&lt;/p&gt;

&lt;p&gt;1️⃣ &lt;strong&gt;Update the version number&lt;/strong&gt; in &lt;code&gt;setup.py&lt;/code&gt; (e.g., &lt;code&gt;0.1.1&lt;/code&gt;).&lt;br&gt;&lt;br&gt;
2️⃣ &lt;strong&gt;Rebuild the package:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;-m&lt;/span&gt; build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3️⃣ &lt;strong&gt;Upload the new version:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;-m&lt;/span&gt; twine upload dist/&lt;span class="k"&gt;*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ Done! Your new version is live.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Final Thoughts&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Publishing a Python package is a rewarding experience. Whether it’s a small utility or a full-fledged library, your work can help others and grow your skills.&lt;/p&gt;

&lt;p&gt;If you found this guide helpful, follow me for more tips and projects:&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;LinkedIn:&lt;/strong&gt; &lt;a href="https://www.linkedin.com/in/shemanto/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/shemanto/&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🐍 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="http://github.com/shemanto27/" rel="noopener noreferrer"&gt;http://github.com/shemanto27/&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Happy coding! 🚀&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Upload Folder Files from Google Colab to GitHub for Continuous Machine Learning Project</title>
      <dc:creator>Bidut Sharkar Shemanto</dc:creator>
      <pubDate>Sun, 02 Feb 2025 06:33:57 +0000</pubDate>
      <link>https://dev.to/shemanto_sharkar/how-to-upload-folder-files-from-google-colab-to-github-for-continuous-machine-learning-project-46pk</link>
      <guid>https://dev.to/shemanto_sharkar/how-to-upload-folder-files-from-google-colab-to-github-for-continuous-machine-learning-project-46pk</guid>
      <description>&lt;p&gt;Google Colab provides a simple way to write and execute Python code using cloud resources. However, for continuous machine learning, it's essential to keep your code version-controlled and synced with GitHub. This tutorial shows how to upload a folder from Google Colab to GitHub effortlessly.&lt;/p&gt;




&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A GitHub account (&lt;a href="https://github.com/" rel="noopener noreferrer"&gt;Sign up here&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;A Google Drive account&lt;/li&gt;
&lt;li&gt;A GitHub repository where you want to upload files&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Steps to Upload a Folder from Colab to GitHub
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Generate a GitHub Token&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;To push code to GitHub from Colab, you need a &lt;strong&gt;Personal Access Token&lt;/strong&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;a href="https://github.com/settings/tokens" rel="noopener noreferrer"&gt;GitHub Tokens&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Generate new token&lt;/strong&gt; (classic)&lt;/li&gt;
&lt;li&gt;Select necessary permissions: &lt;code&gt;repo&lt;/code&gt; (for full repo access)&lt;/li&gt;
&lt;li&gt;Generate and &lt;strong&gt;copy the token&lt;/strong&gt; (you will need it later)&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  2. &lt;strong&gt;Set Up Google Colab for GitHub Upload&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Copy and run the following code in a Colab notebook:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Replace with your details
&lt;/span&gt;&lt;span class="n"&gt;token&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;your_github_token&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;user_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;your_github_username&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;repo_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;your_repository_name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;code_folder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/content/drive/MyDrive/Colab Notebooks/your_project_folder&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;

&lt;span class="c1"&gt;# Mount Google Drive
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;google.colab&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;drive&lt;/span&gt;
&lt;span class="n"&gt;drive&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;mount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/content/drive&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;force_remount&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Check Git version
&lt;/span&gt;&lt;span class="err"&gt;!&lt;/span&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;version&lt;/span&gt;

&lt;span class="c1"&gt;# Set up Git configuration
&lt;/span&gt;&lt;span class="err"&gt;!&lt;/span&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;email&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your_email@example.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="err"&gt;!&lt;/span&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{user_name}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="c1"&gt;# Clone GitHub repo
&lt;/span&gt;&lt;span class="err"&gt;!&lt;/span&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;clone&lt;/span&gt; &lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;token&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="nd"&gt;@github.com&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;user_name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;repo_name&lt;/span&gt;&lt;span class="p"&gt;}.&lt;/span&gt;&lt;span class="n"&gt;git&lt;/span&gt;

&lt;span class="c1"&gt;# Sync Colab folder with GitHub repo
&lt;/span&gt;&lt;span class="err"&gt;!&lt;/span&gt;&lt;span class="n"&gt;rsync&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;av&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;{code_folder}/&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/content/{repo_name}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="c1"&gt;# Push to GitHub
&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;repo_name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="err"&gt;!&lt;/span&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;add&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="err"&gt;!&lt;/span&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;commit&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Initial commit&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="err"&gt;!&lt;/span&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;remote&lt;/span&gt; &lt;span class="n"&gt;add&lt;/span&gt; &lt;span class="n"&gt;origin&lt;/span&gt; &lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;token&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="nd"&gt;@github.com&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;user_name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;repo_name&lt;/span&gt;&lt;span class="p"&gt;}.&lt;/span&gt;&lt;span class="n"&gt;git&lt;/span&gt;
&lt;span class="err"&gt;!&lt;/span&gt;&lt;span class="n"&gt;git&lt;/span&gt; &lt;span class="n"&gt;push&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt; &lt;span class="n"&gt;origin&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;strong&gt;Explanation of the Code&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Mounts Google Drive&lt;/strong&gt;: Allows access to files stored in Google Drive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sets Git Configuration&lt;/strong&gt;: Defines user details for Git operations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clones the GitHub repository&lt;/strong&gt;: Ensures the local version is up-to-date.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copies files using &lt;code&gt;rsync&lt;/code&gt;&lt;/strong&gt;: Syncs the specified folder from Google Drive to the cloned repo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Commits and Pushes changes&lt;/strong&gt;: Updates GitHub with the latest changes.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Why Use This Method?&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Automates code synchronization between Colab and GitHub.&lt;/li&gt;
&lt;li&gt;Allows continuous machine learning workflows.&lt;/li&gt;
&lt;li&gt;Keeps project versions safe and trackable.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Follow Me&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LinkedIn:&lt;/strong&gt; &lt;a href="https://www.linkedin.com/in/shemanto/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/shemanto/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="http://github.com/shemanto27" rel="noopener noreferrer"&gt;http://github.com/shemanto27&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy coding! 🚀&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Building a Cooking Expert AI Agent with Phidata and Django Rest Framework (DRF)</title>
      <dc:creator>Bidut Sharkar Shemanto</dc:creator>
      <pubDate>Fri, 20 Dec 2024 18:33:53 +0000</pubDate>
      <link>https://dev.to/shemanto_sharkar/building-a-cooking-expert-ai-agent-with-phidata-and-django-rest-framework-drf-3nch</link>
      <guid>https://dev.to/shemanto_sharkar/building-a-cooking-expert-ai-agent-with-phidata-and-django-rest-framework-drf-3nch</guid>
      <description>&lt;p&gt;Artificial Intelligence (AI) is reshaping industries, and the concept of AI agents is leading this transformation. Imagine a world where billions of AI agents assist us in every field of work – from healthcare and education to cooking and transportation. Even Mark Zuckerberg has spoken about the rise of AI agents and their potential to revolutionize how we interact with technology. In this blog, I’ll walk you through the process of building a custom AI agent api using &lt;strong&gt;Phidata&lt;/strong&gt; and &lt;strong&gt;Django Rest Framework (DRF)&lt;/strong&gt;. This agent will act as a &lt;strong&gt;cooking and food expert&lt;/strong&gt;, answering your culinary questions and providing helpful tips and recipes.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://github.com/shemanto27/AI-Agent-Experiments" rel="noopener noreferrer"&gt;Github Repo Link for requirement file and code&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What is an AI Agent?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Imagine you have a virtual assistant in your kitchen named ChefBot. You can ask ChefBot, "How do I bake a chocolate cake?" or "What can I cook with chicken and spinach?" ChefBot understands your questions, uses its knowledge of recipes, and provides accurate and helpful answers. That’s what an &lt;strong&gt;AI agent&lt;/strong&gt; does.&lt;/p&gt;

&lt;p&gt;An &lt;strong&gt;AI agent&lt;/strong&gt; is a software entity that performs tasks intelligently by interacting with users, tools, and other systems. Unlike an AI model, which is just a mathematical function trained on data, an &lt;strong&gt;agent&lt;/strong&gt; is a complete system that leverages one or more models to achieve specific objectives. It combines the following components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Model&lt;/strong&gt;: The underlying machine learning model, such as GPT or Groq, that generates intelligent responses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools&lt;/strong&gt;: Plugins or functionalities the agent can use, such as web search or APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Knowledge Base&lt;/strong&gt;: A storage system for the agent’s memory or external knowledge.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage&lt;/strong&gt;: A backend system, like a database, for session management or historical data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this project, we’ll use &lt;strong&gt;Phidata&lt;/strong&gt; to build an AI agent specialized in food and cooking. Our agent will provide recipes, cooking tips, and answer food-related queries.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;What Makes Phidata Special?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Phidata simplifies the creation of AI agents by providing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Model Integration&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easily integrate pre-trained models like OpenAI GPT or Groq.&lt;/li&gt;
&lt;li&gt;Customize model behavior using descriptions and instructions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tools&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What are tools?&lt;/strong&gt; Tools extend the agent’s abilities by connecting it to external functionalities. For example:

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;web search tool&lt;/strong&gt; can help the agent look up recipes or cooking methods online if its internal knowledge is insufficient.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;unit conversion tool&lt;/strong&gt; could allow the agent to convert between cups and grams seamlessly.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analogy&lt;/strong&gt;: Think of tools as specialized gadgets your ChefBot uses to enhance its cooking knowledge, like a spice rack or a cookbook.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Knowledge Base&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What is a knowledge base?&lt;/strong&gt; It is where the agent stores and retrieves information. For example:

&lt;ul&gt;
&lt;li&gt;A vector database like &lt;strong&gt;PgVector&lt;/strong&gt; can store recipes and their ingredients in a way that the agent can search and retrieve related information efficiently.&lt;/li&gt;
&lt;li&gt;Semantic search in the knowledge base enables the agent to answer "What desserts can I make with chocolate?" by looking up stored recipes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analogy&lt;/strong&gt;: Imagine ChefBot has a personal diary of recipes and tips it can flip through to answer your questions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Storage&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What is storage?&lt;/strong&gt; This refers to databases used for session management or storing interaction history. For example:

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;Postgres database&lt;/strong&gt; can store past interactions, so the agent remembers what you asked last time.&lt;/li&gt;
&lt;li&gt;This is useful for continuity in conversations or analyzing frequently asked questions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analogy&lt;/strong&gt;: ChefBot keeps a logbook of all your past recipe requests to serve you better in the future.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By combining these features, Phidata allows developers to build comprehensive, intelligent agents tailored to specific needs.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Project Overview&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;We’ll build a &lt;strong&gt;Cooking Expert AI Agent&lt;/strong&gt; that:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Accepts cooking-related instructions from the user via a REST API.&lt;/li&gt;
&lt;li&gt;Processes the instruction using a pre-trained AI model (e.g., Groq).&lt;/li&gt;
&lt;li&gt;Returns the agent’s intelligent response with helpful food-related information.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Technologies Used&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Django&lt;/strong&gt;: Web framework for building the API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Django REST Framework (DRF)&lt;/strong&gt;: For creating and managing API endpoints.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Phidata&lt;/strong&gt;: To define and interact with the AI agent.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Step-by-Step Guide&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;0. create python environment&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Open your terminal or command prompt.&lt;/p&gt;

&lt;p&gt;Create the environment,I am using conda package manager:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;conda create &lt;span class="nt"&gt;-n&lt;/span&gt; myenv &lt;span class="nv"&gt;python&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;3.12 &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;activate the environment&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;conda activate myenv&lt;span class="sb"&gt;```&lt;/span&gt;
&lt;span class="o"&gt;{&lt;/span&gt;% endraw %&lt;span class="o"&gt;}&lt;/span&gt;


&lt;span class="c"&gt;### **1. Setting Up the Project**&lt;/span&gt;
Install the required dependencies:
&lt;span class="o"&gt;{&lt;/span&gt;% raw %&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="sb"&gt;```&lt;/span&gt;bash
pip &lt;span class="nb"&gt;install &lt;/span&gt;django djangorestframework phidata python-dotenv groq
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start by creating a new Django project and app:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;django-admin startproject my_project &lt;span class="nb"&gt;.&lt;/span&gt;
django-admin startapp api
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add &lt;code&gt;rest_framework&lt;/code&gt; and &lt;code&gt;api&lt;/code&gt; to your &lt;code&gt;INSTALLED_APPS&lt;/code&gt; in &lt;code&gt;settings.py&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;INSTALLED_APPS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="bp"&gt;...&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;rest_framework&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;api&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;2. Defining the AI Agent&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Create a folder named &lt;code&gt;agents/&lt;/code&gt; to store the agent logic. In &lt;code&gt;agents/agent.py&lt;/code&gt;, define your custom agent:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;phi.agent&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Agent&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;phi.model.groq&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Groq&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;dotenv&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;load_dotenv&lt;/span&gt;
&lt;span class="nf"&gt;load_dotenv&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;chef_agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nc"&gt;Groq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;llama-3.3-70b-versatile&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[],&lt;/span&gt;
    &lt;span class="n"&gt;show_tool_calls&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You are a recipe expart. You will be given a recipe and you have to answer the questions related to it.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;instructions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;process_instruction&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;instruction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;chef_agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;instruction&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;3. Creating the API&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Serializers&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;In &lt;code&gt;api/serializers.py&lt;/code&gt;, define the input and output serializers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;rest_framework&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;serializers&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;InstructionSerializer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;serializers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Serializer&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;instruction&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;serializers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CharField&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max_length&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ResponseSerializer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;serializers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Serializer&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;serializers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CharField&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max_length&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  &lt;strong&gt;Views&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;In &lt;code&gt;api/views.py&lt;/code&gt;, implement the API view:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;django.shortcuts&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;render&lt;/span&gt;

&lt;span class="c1"&gt;# Create your views here.
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;rest_framework.views&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;APIView&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;rest_framework.response&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Response&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;rest_framework&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;.serializers&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;agents.agent&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;process_instruction&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;AgentView&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;APIView&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;serializer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;instruction_serializer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="c1"&gt;# input validation
&lt;/span&gt;        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;serializer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;is_valid&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
            &lt;span class="n"&gt;instruction&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;serializer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;validated_data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;instruction&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

            &lt;span class="c1"&gt;#process the instruction using agent
&lt;/span&gt;            &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;agent_response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;process_instruction&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;instruction&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

            &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;HTTP_500_INTERNAL_SERVER_ERROR&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="c1"&gt;#return the response
&lt;/span&gt;            &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;response&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;agent_response&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="n"&gt;response_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;response_serializer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;response_data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;is_valid&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
                &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response_data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;HTTP_200_OK&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;serializer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;errors&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;HTTP_400_BAD_REQUEST&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  &lt;strong&gt;Routing&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;In &lt;code&gt;api/urls.py&lt;/code&gt;, define the endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;django.urls&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;.views&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AgentView&lt;/span&gt;

&lt;span class="n"&gt;urlpatterns&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="nf"&gt;path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;agent/&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AgentView&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;as_view&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;agent-api&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Include this in the main &lt;code&gt;urls.py&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;django.urls&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;include&lt;/span&gt;

&lt;span class="n"&gt;urlpatterns&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="nf"&gt;path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;api/&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;include&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;api.urls&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;4. Running the Project&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Run the Django development server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python manage.py runserver
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Send a POST request to &lt;code&gt;http://127.0.0.1:8000/api/agent/&lt;/code&gt; with a JSON body:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"instruction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"How do I bake a chocolate cake?"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The response will be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"response"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Baking a chocolate cake requires the following steps: ..."&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;5. Key Learnings&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Phidata&lt;/strong&gt;: Simplifies AI integration with pre-built tools and models.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Django REST Framework&lt;/strong&gt;: Provides a robust and scalable way to create APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dotenv&lt;/strong&gt;: Keeps sensitive configurations secure and manageable.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Next Steps&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add tools to your agent for more functionality (e.g., web search, database queries).&lt;/li&gt;
&lt;li&gt;Deploy your application using ASGI servers like Uvicorn or Daphne for better scalability.&lt;/li&gt;
&lt;li&gt;Extend the agent to include memory or knowledge base integration.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Building an AI agent with Phidata and Django REST Framework unlocks a wide range of possibilities for creating intelligent web applications. Let your imagination run wild and start building AI-powered tools today!&lt;/p&gt;




&lt;p&gt;Do you have questions or ideas for improvement? Feel free to share your thoughts in the comments!&lt;/p&gt;

&lt;p&gt;(Help of ChatGPT was taken to write this blog, code is written and tested all by myself.There may be some mistakes in writings, follow this &lt;a href="https://github.com/shemanto27/AI-Agent-Experiments" rel="noopener noreferrer"&gt;github link&lt;/a&gt; for actual codes)&lt;/p&gt;

</description>
      <category>phidata</category>
      <category>django</category>
      <category>ai</category>
      <category>agents</category>
    </item>
    <item>
      <title>How to Check Whether Data is Linear or not? 😕</title>
      <dc:creator>Bidut Sharkar Shemanto</dc:creator>
      <pubDate>Mon, 02 Dec 2024 06:52:06 +0000</pubDate>
      <link>https://dev.to/shemanto_sharkar/how-to-check-whether-data-is-linear-or-not-4na3</link>
      <guid>https://dev.to/shemanto_sharkar/how-to-check-whether-data-is-linear-or-not-4na3</guid>
      <description>&lt;p&gt;*&lt;em&gt;Linear function: *&lt;/em&gt;&lt;br&gt;
Can be simply defined as a function which always follows the principle of :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;input/output = constant.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A linear equation is always a polynomial of degree 1 (for example x+2y+3=0). In the two dimensional cases, they always form lines; in other dimensions, they might also form planes, points, or hyperplanes. Their “shape” is always perfectly straight, with no curves of any kind. This is why we call them linear equations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Non-linear function:&lt;/strong&gt; &lt;br&gt;
Any function that is not linear is simply put, Non-linear. Higher degree polynomials are nonlinear. Trigonometric functions (like sin or cos) are nonlinear. Square roots are nonlinear.&lt;/p&gt;

&lt;p&gt;In case you are dealing with predicting numerical value, the technique is to use scatter plots and also apply simple linear regression to the dataset, and then check the least square error. If the least square error shows high accuracy, it can be implied that the dataset is linear in nature, else the dataset is non-linear.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Setting Up MLflow in Google Colab: A Beginner-Friendly Guide</title>
      <dc:creator>Bidut Sharkar Shemanto</dc:creator>
      <pubDate>Sat, 30 Nov 2024 08:56:48 +0000</pubDate>
      <link>https://dev.to/shemanto_sharkar/setting-up-mlflow-in-google-colab-a-beginner-friendly-guide-5c8g</link>
      <guid>https://dev.to/shemanto_sharkar/setting-up-mlflow-in-google-colab-a-beginner-friendly-guide-5c8g</guid>
      <description>&lt;p&gt;Tracking machine learning experiments is essential for improving model performance and maintaining reproducibility. MLflow is a powerful tool that helps track experiments, log parameters, metrics, and artifacts, and even deploy models. In this blog, I'll guide you through setting up MLflow in Google Colab, complete with an accessible dashboard using ngrok.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Use MLflow in Google Colab?
&lt;/h2&gt;

&lt;p&gt;Google Colab offers a free environment to run Python notebooks. Combining it with MLflow enables you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Track your model's performance over time.&lt;/li&gt;
&lt;li&gt;Save and organize metrics, parameters, and artifacts for various experiments.&lt;/li&gt;
&lt;li&gt;Share your experiment dashboard with collaborators using ngrok.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 1: Installing MLflow and Dependencies&lt;br&gt;
First, we need to install MLflow and ngrok. Run the following commands in your Colab notebook:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;!pip install mlflow -q
!pip install pyngrok -q
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 2: Starting the MLflow Server&lt;br&gt;
Google Colab doesn’t natively support localhost connections. To overcome this, we’ll use ngrok to expose the MLflow UI on the internet.&lt;/p&gt;

&lt;p&gt;Here’s the complete setup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import mlflow
import subprocess
from pyngrok import ngrok, conf
import getpass

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Define the MLflow tracking URI with SQLite
MLFLOW_TRACKING_URI = "sqlite:///mlflow.db"

# Start the MLflow server using subprocess
subprocess.Popen(["mlflow", "ui", "--backend-store-uri", MLFLOW_TRACKING_URI, "--port", "5000"])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Set MLflow tracking URI
mlflow.set_tracking_uri(MLFLOW_TRACKING_URI)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Set or create an experiment
mlflow.set_experiment("BD House Price Prediction")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Set up ngrok for exposing the MLflow UI
print("Enter your authtoken, which can be copied from https://dashboard.ngrok.com/auth")
conf.get_default().auth_token = getpass.getpass()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Expose the MLflow UI on port 5000
port = 5000
public_url = ngrok.connect(port).public_url
print(f' * ngrok tunnel "{public_url}" -&amp;gt; "http://127.0.0.1:{port}"')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;we will get an ngrok tunnel url after running this command.go to that url and you will find your experiment has been setup.from there you can see all your expected results&lt;/p&gt;

&lt;p&gt;Step 3: Logging Experiments&lt;br&gt;
You can log metrics, parameters, and even artifacts (e.g., models or plots) in MLflow. Here’s an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Start an MLflow run
with mlflow.start_run():
    # Log parameters and metrics
    mlflow.log_param("learning_rate", 0.01)
    mlflow.log_metric("rmse", 0.25)
    print("Run logged successfully!")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Congratulations! You’ve successfully set up MLflow in Google Colab. With this setup, you can track experiments, log results, and share your work effortlessly. MLflow’s flexibility and ease of use make it a must-have tool for any data scientist or machine learning enthusiast.&lt;/p&gt;

&lt;p&gt;Follow me on &lt;a href="https://www.linkedin.com/in/shemanto/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://github.com/shemanto27" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have fun experimenting and tracking your models like a pro! 🚀&lt;/p&gt;

</description>
    </item>
    <item>
      <title>New Look of my GitHub README Profile✨</title>
      <dc:creator>Bidut Sharkar Shemanto</dc:creator>
      <pubDate>Tue, 20 Aug 2024 06:41:53 +0000</pubDate>
      <link>https://dev.to/shemanto_sharkar/new-look-of-my-github-readme-profile-1e7i</link>
      <guid>https://dev.to/shemanto_sharkar/new-look-of-my-github-readme-profile-1e7i</guid>
      <description>&lt;p&gt;🚀 Just redesigned my GitHub Profile README! 🎨 Kept it simple yet catchy, with a focus on showcasing my skills. Check it out and let me know your thoughts! &lt;br&gt;
👉 &lt;a href="//www.github.com/shemanto27"&gt;www.github.com/shemanto27&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv68dcq40wjvqx8jx1r9h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv68dcq40wjvqx8jx1r9h.png" alt="Image description" width="800" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdto6fir8la6xzbq517uu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdto6fir8la6xzbq517uu.png" alt="Image description" width="800" height="743"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  GitHub #Coding #Developer
&lt;/h1&gt;

</description>
      <category>webdev</category>
      <category>github</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>HTML, CSS Interview Question&amp;Answer</title>
      <dc:creator>Bidut Sharkar Shemanto</dc:creator>
      <pubDate>Sat, 06 Jul 2024 12:20:49 +0000</pubDate>
      <link>https://dev.to/shemanto_sharkar/html-css-interview-questionanswer-31gd</link>
      <guid>https://dev.to/shemanto_sharkar/html-css-interview-questionanswer-31gd</guid>
      <description>&lt;p&gt;&lt;strong&gt;1) What Do You Understand By The Universal Selector?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt;&lt;br&gt;
The universal selector (&lt;code&gt;*&lt;/code&gt;) in CSS applies styles to all elements on a web page. It is used to set a common style for all elements without needing to specify each one individually.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Differentiate Between The Use Of ID Selector And Class Selector.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ID Selector (&lt;code&gt;#&lt;/code&gt;)&lt;/strong&gt;: Used to style a single, unique element. Each ID must be unique within a document.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Class Selector (&lt;code&gt;.&lt;/code&gt;)&lt;/strong&gt;: Used to style multiple elements that share the same class. Multiple elements can have the same class.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3) How Can You Use CSS To Control Image Repetition?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt;&lt;br&gt;
CSS property &lt;code&gt;background-repeat&lt;/code&gt; controls image repetition. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;background-repeat: repeat;&lt;/code&gt; repeats the background image both horizontally and vertically.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;background-repeat: no-repeat;&lt;/code&gt; prevents the background image from repeating.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;background-repeat: repeat-x;&lt;/code&gt; repeats the image horizontally.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;background-repeat: repeat-y;&lt;/code&gt; repeats the image vertically.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4) Are The HTML Tags And Elements The Same Thing?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt;&lt;br&gt;
No, HTML tags and elements are not the same. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tags&lt;/strong&gt;: The code surrounded by angle brackets, such as &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Elements&lt;/strong&gt;: The combination of the opening tag, content, and closing tag, such as &lt;code&gt;&amp;lt;div&amp;gt;Content&amp;lt;/div&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5) Difference Between Inline, Block, And Inline-Block Elements. Is It Possible To Change An Inline Element Into A Block-Level Element?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inline Elements&lt;/strong&gt;: Do not start on a new line and only take up as much width as necessary (e.g., &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Block Elements&lt;/strong&gt;: Start on a new line and take up the full width available (e.g., &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inline-Block Elements&lt;/strong&gt;: Behave like inline elements but can have width and height set like block elements.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yes, it is possible to change an inline element into a block-level element using CSS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.element&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>career</category>
    </item>
    <item>
      <title>Git And Github Interview Questions (&amp; Answer) For Beginners</title>
      <dc:creator>Bidut Sharkar Shemanto</dc:creator>
      <pubDate>Wed, 03 Jul 2024 16:05:46 +0000</pubDate>
      <link>https://dev.to/shemanto_sharkar/git-and-github-interview-questions-answer-for-beginners-4d80</link>
      <guid>https://dev.to/shemanto_sharkar/git-and-github-interview-questions-answer-for-beginners-4d80</guid>
      <description>&lt;p&gt;&lt;strong&gt;Question-1: What is Git? What are the advantages of using Git?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt;&lt;br&gt;
Git is a distributed version control system used to track changes in source code during software development. It allows multiple developers to work on a project simultaneously. Advantages include version tracking, branching and merging capabilities, collaboration facilitation, and offline work support.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Question-2: What do you understand by the term "Version Control System"?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt;&lt;br&gt;
A Version Control System (VCS) is software that helps manage changes to documents, computer programs, large websites, and other collections of information. It allows multiple users to collaborate, track history, revert to previous versions, and manage branches of projects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Question-3: What is the difference between Git and GitHub?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt;&lt;br&gt;
Git is a version control system used for tracking changes in files, while GitHub is a web-based platform that uses Git for version control and provides a collaborative environment for hosting Git repositories, project management, and other features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Question-4: Name a few Git commands with their functions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;git init&lt;/code&gt;: Initializes a new Git repository.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git clone&lt;/code&gt;: Clones an existing repository.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git add&lt;/code&gt;: Adds changes to the staging area.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git commit&lt;/code&gt;: Records changes to the repository.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git push&lt;/code&gt;: Uploads local repository content to a remote repository.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git pull&lt;/code&gt;: Fetches and merges changes from a remote repository to the local repository.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git status&lt;/code&gt;: Shows the status of changes in the working directory and staging area.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git branch&lt;/code&gt;: Lists, creates, or deletes branches.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Question-5: What is the difference between &lt;code&gt;git fetch&lt;/code&gt; and &lt;code&gt;git pull&lt;/code&gt;?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;git fetch&lt;/code&gt; downloads changes from a remote repository but does not merge them into the local repository. It updates the remote tracking branches. &lt;code&gt;git pull&lt;/code&gt; fetches changes from a remote repository and immediately merges them into the local branch.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>git</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>My Web Development Journey Day-3: Git &amp; Github 🎨</title>
      <dc:creator>Bidut Sharkar Shemanto</dc:creator>
      <pubDate>Wed, 03 Jul 2024 15:19:32 +0000</pubDate>
      <link>https://dev.to/shemanto_sharkar/my-web-development-journey-day-3-git-github-5ffe</link>
      <guid>https://dev.to/shemanto_sharkar/my-web-development-journey-day-3-git-github-5ffe</guid>
      <description>&lt;p&gt;In my third day of mission webdevelopment, I learned about Git and Git hub.To be honest I already had idea about github and already worked with it.But in this module I get to know how to make brach and work with it.&lt;/p&gt;

&lt;p&gt;Then I learned more about CSS gradient.I learned-&lt;br&gt;
1)Adding google font in css&lt;br&gt;
2)CSS Gradients&lt;br&gt;
3)Transitions&lt;br&gt;
4)Flex Box&lt;br&gt;
5) Justify-content vs align-item&lt;/p&gt;

&lt;p&gt;I will write a separate blog on interview questions on Git and Github.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>git</category>
    </item>
    <item>
      <title>My Web Development Journey Day-2: CSS 🎨</title>
      <dc:creator>Bidut Sharkar Shemanto</dc:creator>
      <pubDate>Tue, 02 Jul 2024 11:09:32 +0000</pubDate>
      <link>https://dev.to/shemanto_sharkar/my-web-development-journey-day-2-css-428k</link>
      <guid>https://dev.to/shemanto_sharkar/my-web-development-journey-day-2-css-428k</guid>
      <description>&lt;p&gt;In module-2 I learned CSS.The topics that I covered:&lt;/p&gt;

&lt;p&gt;1)3 way of CSS&lt;br&gt;
2)CSS Syntex&lt;br&gt;
3)Text-alignment&lt;br&gt;
4)CSS Structure&lt;br&gt;
5)CSS Selectors&lt;br&gt;
6)ID vs Class&lt;br&gt;
7)CSS Background Image&lt;br&gt;
8)CSS Margin and Padding&lt;br&gt;
9)CSS Box Shadow&lt;br&gt;
10)CSS Box Model&lt;br&gt;
11)Display: Inline, Block, Inline-block&lt;/p&gt;

&lt;p&gt;I practised this by my own:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhwyewx3mpwr2nnloem6s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhwyewx3mpwr2nnloem6s.png" alt="Image description" width="800" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhowfcefrdt1y82jd6rm2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhowfcefrdt1y82jd6rm2.png" alt="Image description" width="800" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This the practise code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset="UTF-8"&amp;gt;
    &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
    &amp;lt;title&amp;gt;My Reading List&amp;lt;/title&amp;gt;
    &amp;lt;link rel="shortcut icon" href="./images/book.png" type="image/x-icon"&amp;gt;
    &amp;lt;link rel="stylesheet" href="./styles/book.css"&amp;gt;
    &amp;lt;link rel="preconnect" href="https://fonts.googleapis.com"&amp;gt;
&amp;lt;link rel="preconnect" href="https://fonts.gstatic.com" crossorigin&amp;gt;
&amp;lt;link href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&amp;amp;display=swap" rel="stylesheet"&amp;gt;
&amp;lt;link rel="preconnect" href="https://fonts.googleapis.com"&amp;gt;
&amp;lt;link rel="preconnect" href="https://fonts.gstatic.com" crossorigin&amp;gt;
&amp;lt;link href="https://fonts.googleapis.com/css2?family=Playwrite+US+Modern:wght@100..400&amp;amp;display=swap" rel="stylesheet"&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;div id="portion_1"&amp;gt;
    &amp;lt;div class="section_1"&amp;gt;
        &amp;lt;h1 id="name"&amp;gt;Hi, I'm Shemanto Sharkar 👋&amp;lt;/h1&amp;gt;
        &amp;lt;p id="welcome"&amp;gt;welcome to my website of Book List!&amp;lt;/p&amp;gt;

    &amp;lt;/div&amp;gt;
    &amp;lt;div class="section_2"&amp;gt;
        &amp;lt;button class="button"&amp;gt;&amp;lt;a href=""&amp;gt;My LinedIn&amp;lt;/a&amp;gt;&amp;lt;/button&amp;gt;
        &amp;lt;button class="button"&amp;gt;&amp;lt;a href=""&amp;gt;My Facebook&amp;lt;/a&amp;gt;&amp;lt;/button&amp;gt;
        &amp;lt;button class="button"&amp;gt;&amp;lt;a href=""&amp;gt;My Youtube&amp;lt;/a&amp;gt;&amp;lt;/button&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class="section_3"&amp;gt;
        &amp;lt;img id="profile" src="./images/profile.png" alt=""&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;

    &amp;lt;div id="portion_2"&amp;gt;
        &amp;lt;p&amp;gt;I am studying Energy Science and Engineering at KUET. I am in my last year.Now I am taking web development couse by programming Hero.I took this course becouse it is by Jhonkar Mahbub bhai.It will help me to get a job after I am graduated in 2025.&amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div id="portion_3"&amp;gt;
        &amp;lt;img class="book" src="./images/download (1).jfif" alt=""&amp;gt;
        &amp;lt;img class="book" src="./images/download.jfif" alt=""&amp;gt;
        &amp;lt;img class="book" src="./images/images.jfif" alt=""&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  name {
&lt;/h1&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;font-family: "Playwrite US Modern", cursive;
text-align: center;
color: #000000;
font-weight: bold;
font-size: 40px;
margin-bottom: 0%;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;h1&gt;
  
  
  welcome{
&lt;/h1&gt;

&lt;p&gt;text-align: center; &lt;br&gt;
   font-family: "Poppins", sans-serif;&lt;br&gt;
   font-weight: bold;&lt;br&gt;
   color: #595959;&lt;br&gt;
   margin-top: 0%;&lt;br&gt;
   font-size: 30px;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;.section_2{&lt;br&gt;
    text-align: center;&lt;br&gt;
    margin: 5%;&lt;/p&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;.button{&lt;br&gt;
    background-color: #ffea3d;&lt;br&gt;
    color: #ffffff;&lt;br&gt;
    font-family: "Poppins", sans-serif;&lt;br&gt;
    font-weight: bold;&lt;br&gt;
    font-size: 20px;&lt;br&gt;
    padding: 10px 20px;&lt;br&gt;
    border: none;&lt;br&gt;
    border-radius: 10px;&lt;br&gt;
    cursor:pointer;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;a{&lt;br&gt;
    text-decoration: none;&lt;br&gt;
    color: #000000;&lt;br&gt;
}&lt;/p&gt;

&lt;h1&gt;
  
  
  profile{
&lt;/h1&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;display: block;
width: 300px;
margin: 0 auto;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;h1&gt;
  
  
  portion_2{
&lt;/h1&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;background-color: #ffea3d;
font-family: "Poppins", sans-serif;
font-size: medium;
padding: 2%;
margin: 5%;
border-radius: 10px;
text-align: center;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;.book{&lt;br&gt;
    display: inline-block;&lt;br&gt;
    width: 200px;&lt;br&gt;
    padding: 10px;&lt;br&gt;
    margin-left: auto;&lt;br&gt;
    margin-right: auto;&lt;br&gt;
    border: 10px solid #ffea3d;&lt;br&gt;
    border-radius: 5%;&lt;br&gt;
}&lt;/p&gt;

&lt;h1&gt;
  
  
  portion_3{
&lt;/h1&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;text-align: center;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>css</category>
    </item>
  </channel>
</rss>
