<?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: Abhijeet Gavali</title>
    <description>The latest articles on DEV Community by Abhijeet Gavali (@abhijeetgavali).</description>
    <link>https://dev.to/abhijeetgavali</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%2F760246%2F78e421cc-7d0e-4d6b-bdf4-267fd03dfac4.jpeg</url>
      <title>DEV Community: Abhijeet Gavali</title>
      <link>https://dev.to/abhijeetgavali</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abhijeetgavali"/>
    <language>en</language>
    <item>
      <title>Running MySQL Server in Docker</title>
      <dc:creator>Abhijeet Gavali</dc:creator>
      <pubDate>Wed, 23 Oct 2024 12:16:25 +0000</pubDate>
      <link>https://dev.to/abhijeetgavali/running-mysql-server-in-docker-2i56</link>
      <guid>https://dev.to/abhijeetgavali/running-mysql-server-in-docker-2i56</guid>
      <description>&lt;h2&gt;
  
  
  no theory
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Check docker if installed
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;docker version&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Download MySQL server image
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;docker pull mysql/mysql-server&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Run MySQL Server container
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;docker run --name='sql_container' -d -p 3306:3306 mysql/mysql-server&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Check Logs and copy root password generated by MySQL Server
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;docker logs sql_container&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Go in bash and update the root password to simple password
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker exec -it sql_container bash

cd /var/lib/mysql

mysql -u root -p

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Create new user for accessing db \ Root access not recomendade
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE USER 'user'@'%' IDENTIFIED BY 'passwod';

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Now Connect Using Workbench
&lt;/h2&gt;



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

port = 3306

user_name = user

user_password = password
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>mysql</category>
      <category>docker</category>
      <category>onlycode</category>
      <category>notheory</category>
    </item>
    <item>
      <title>I fount codecrafters.io</title>
      <dc:creator>Abhijeet Gavali</dc:creator>
      <pubDate>Tue, 08 Oct 2024 09:01:27 +0000</pubDate>
      <link>https://dev.to/abhijeetgavali/i-fount-codecraftersio-5gk4</link>
      <guid>https://dev.to/abhijeetgavali/i-fount-codecraftersio-5gk4</guid>
      <description>&lt;p&gt;Recently, I stumbled upon CodeCrafters, and I must say—it's amazing! If you're someone who enjoys challenging yourself with hands-on projects, you’ll love it. At CodeCrafters, you can dive deep into practical, out-of-the-box projects like building Redis, creating your own DNS server, or even developing low-level systems that help you understand how core technologies really work.&lt;/p&gt;

&lt;p&gt;Currently, I'm working on building my own DNS server, and this project has given me a solid understanding of how DNS operates behind the scenes. From managing DNS requests to exploring the protocol in detail, I've gained insights that I wouldn't have gotten from theory alone. It’s a satisfying and eye-opening experience to reconstruct something we use every day!&lt;/p&gt;

&lt;p&gt;It gives you the building blocks to figure things out on your own, which makes the learning process much more rewarding.&lt;/p&gt;

&lt;p&gt;Here are a few reasons why I highly recommend checking them out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-world project experience: You’re not just learning concepts; you're applying them to build something functional and real.&lt;/li&gt;
&lt;li&gt;Step-by-step guidance: Each project comes with structured guidance, which makes challenging tasks more approachable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whether you're a developer looking to level up your skills or someone who's curious about how the web and its infrastructure work, CodeCrafters is an excellent platform to explore.&lt;/p&gt;

&lt;p&gt;If you’re ready to take on the challenge, I highly recommend checking them out &lt;a href="https://app.codecrafters.io/r/charming-ant-770954" rel="noopener noreferrer"&gt;here&lt;/a&gt;. You won’t be disappointed!&lt;/p&gt;

&lt;p&gt;Pro Tip: Start small and work your way up. With projects ranging from beginner-friendly to advanced, there's something for every skill level.&lt;/p&gt;

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

&lt;p&gt;Note: I’ll be creating a detailed blog on building and hosting the DNS server soon, so stay connected for more updates!&lt;/p&gt;

</description>
      <category>development</category>
      <category>community</category>
      <category>codereview</category>
      <category>learning</category>
    </item>
    <item>
      <title>🌟 Hacktoberfest 2024 Has Begun! 🌟</title>
      <dc:creator>Abhijeet Gavali</dc:creator>
      <pubDate>Tue, 01 Oct 2024 06:49:11 +0000</pubDate>
      <link>https://dev.to/abhijeetgavali/hacktoberfest-2024-has-begun-4no7</link>
      <guid>https://dev.to/abhijeetgavali/hacktoberfest-2024-has-begun-4no7</guid>
      <description>&lt;p&gt;Hey Devs! 🚀&lt;/p&gt;

&lt;p&gt;The most exciting time of the year for open-source lovers is here—Hacktoberfest 2024 has officially started! 🎉 I'm diving into my first contribution by tackling issues on the &lt;a href="https://github.com/freeCodeCamp/freeCodeCamp/issues?q=is%3Aissue+is%3Aopen+label%3Ahacktoberfest" rel="noopener noreferrer"&gt;FreeCodeCamp&lt;/a&gt; Github. It's a fantastic way to give back to the community while sharpening those coding skills.&lt;/p&gt;

&lt;p&gt;If you're participating this year too, I'd love to hear about it! Let me know in the comments which projects you're contributing to, and let’s cheer each other on as we build amazing things together!&lt;/p&gt;

&lt;p&gt;✨ Struggling to find a project? No worries! Use this &lt;a href="https://github.com/search?q=%23hacktoberfest+language%3AJavaScript&amp;amp;type=repositories&amp;amp;p=86&amp;amp;l=JavaScript" rel="noopener noreferrer"&gt;link&lt;/a&gt; to find GitHub projects participating in Hacktoberfest for the JavaScript language. You can easily change the language filter to match your preferred programming language too!&lt;/p&gt;

&lt;p&gt;Happy hacking! 💻✨&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>opensource</category>
      <category>community</category>
      <category>freecodecamp</category>
    </item>
    <item>
      <title>🚀 Seeking Validation for a No-Code Landing Page Solution!</title>
      <dc:creator>Abhijeet Gavali</dc:creator>
      <pubDate>Fri, 27 Sep 2024 08:56:37 +0000</pubDate>
      <link>https://dev.to/abhijeetgavali/seeking-validation-for-a-no-code-landing-page-solution-1la8</link>
      <guid>https://dev.to/abhijeetgavali/seeking-validation-for-a-no-code-landing-page-solution-1la8</guid>
      <description>&lt;p&gt;As the demand for quick and versatile web solutions grows, I’m exploring the concept of a no-code tool that empowers users to create lightweight, SEO-optimized landing pages effortlessly. This tool is designed not just for idea validation but also for any scenario that requires a single landing page. I’d love to gather feedback from the community before moving forward!&lt;/p&gt;

&lt;p&gt;Proposed Key Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Drag-and-Drop Builder: Users can easily add elements like text, images, and buttons with a simple drag-and-drop interface—no coding required!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Community-Built Templates: A wide range of customizable templates created by the community for various use cases, ensuring users have plenty of options to choose from.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Few-Click Launch: Users can select a template, upload necessary details and assets, and launch their landing page in just a few clicks. This streamlined process minimizes effort and accelerates deployment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SEO Optimization: Automatic generation of SEO metadata to ensure landing pages are optimized for search engines, enhancing visibility and attracting potential visitors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lead Capture &amp;amp; Analytics: Integrated lead capture forms to collect valuable information from visitors, paired with analytics to track engagement and optimize future iterations.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use Cases:&lt;br&gt;
This tool serves as a one-page builder for various needs, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Product Wishlist: Create a landing page to gather interest and pre-orders for an upcoming product.&lt;/li&gt;
&lt;li&gt;Event Registration: Set up a simple registration page for meetups, workshops, or webinars, especially those hosted on platforms like Discord.&lt;/li&gt;
&lt;li&gt;Community Engagement: Build a page to facilitate sign-ups and information sharing for specific communities or initiatives.&lt;/li&gt;
&lt;li&gt;Launch Announcements: Easily create landing pages to announce and showcase new products or services.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Challenge:&lt;br&gt;
Building a full website for every new initiative can be time-consuming and often unnecessary. By focusing on minimalistic landing pages, we aim to simplify the process for anyone needing a single page to convey information or collect registrations.&lt;/p&gt;

&lt;p&gt;Your Thoughts?&lt;br&gt;
I’m eager to hear your feedback on this concept!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Does this resonate with your experience?&lt;/li&gt;
&lt;li&gt;What features do you think are essential for a no-code landing page tool?&lt;/li&gt;
&lt;li&gt;Are there any pain points you’ve encountered in creating single-page solutions that this could address?&lt;/li&gt;
&lt;li&gt;Your insights would be invaluable in shaping this idea into a tool that truly meets the needs of its users. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thank you for your support!&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>discuss</category>
      <category>community</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>🌟 I'm Joining Hacktoberfest 2024! 🌟</title>
      <dc:creator>Abhijeet Gavali</dc:creator>
      <pubDate>Fri, 27 Sep 2024 06:14:07 +0000</pubDate>
      <link>https://dev.to/abhijeetgavali/im-joining-hacktoberfest-2024-g51</link>
      <guid>https://dev.to/abhijeetgavali/im-joining-hacktoberfest-2024-g51</guid>
      <description>&lt;p&gt;Hey everyone! I'm joining the &lt;a href="https://360khabar.iblogger.org/hacktoberfest-2024-is-now-live/" rel="noopener noreferrer"&gt;Hacktoberfest&lt;/a&gt; this year, and I’m super excited to dive in and make the most of it! 🎉&lt;/p&gt;

&lt;p&gt;As a beginner, I’ll be sharing my journey, learnings, and resources here. If you're new too or have any questions about the fest, feel free to ask! I’ll do my best to help with everything I know and learn along the way.&lt;/p&gt;

&lt;p&gt;Let’s grow together and make the most out of this amazing experience! 🚀&lt;/p&gt;

</description>
      <category>hacktoberfest2024</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>sppu-practical</title>
      <dc:creator>Abhijeet Gavali</dc:creator>
      <pubDate>Tue, 23 Apr 2024 18:48:54 +0000</pubDate>
      <link>https://dev.to/abhijeetgavali/sppu-practical-5gn2</link>
      <guid>https://dev.to/abhijeetgavali/sppu-practical-5gn2</guid>
      <description>&lt;p&gt;cuda mat mul&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;cuda_runtime.h&amp;gt;
#include &amp;lt;iostream&amp;gt;

__global__ void matmul(int* A, int* B, int* C, int N) {
    int Row = blockIdx.y*blockDim.y+threadIdx.y;
    int Col = blockIdx.x*blockDim.x+threadIdx.x;
    if (Row &amp;lt; N &amp;amp;&amp;amp; Col &amp;lt; N) {
        int Pvalue = 0;
        for (int k = 0; k &amp;lt; N; k++) {
            Pvalue += A[Row*N+k] * B[k*N+Col];
        }
        C[Row*N+Col] = Pvalue;
    }
}

int main() {
    int N = 512;
    int size = N * N * sizeof(int);
    int* A, * B, * C;
    int* dev_A, * dev_B, * dev_C;
    cudaMallocHost(&amp;amp;A, size);
    cudaMallocHost(&amp;amp;B, size);
    cudaMallocHost(&amp;amp;C, size);
    cudaMalloc(&amp;amp;dev_A, size);
    cudaMalloc(&amp;amp;dev_B, size);
    cudaMalloc(&amp;amp;dev_C, size);

    // Initialize matrices A and B
    for (int i = 0; i &amp;lt; N; i++) {
        for (int j = 0; j &amp;lt; N; j++) {
            A[i*N+j] = i*N+j;
            B[i*N+j] = j*N+i;
        }
    }

    cudaMemcpy(dev_A, A, size, cudaMemcpyHostToDevice);
    cudaMemcpy(dev_B, B, size, cudaMemcpyHostToDevice);

    dim3 dimBlock(16, 16);
    dim3 dimGrid(N/dimBlock.x, N/dimBlock.y);

    matmul&amp;lt;&amp;lt;&amp;lt;dimGrid, dimBlock&amp;gt;&amp;gt;&amp;gt;(dev_A, dev_B, dev_C, N);

    cudaMemcpy(C, dev_C, size, cudaMemcpyDeviceToHost);

    // Print the result
    for (int i = 0; i &amp;lt; 10; i++) {
        for (int j = 0; j &amp;lt; 10; j++) {
            std::cout &amp;lt;&amp;lt; C[i*N+j] &amp;lt;&amp;lt; " ";
        }
        std::cout &amp;lt;&amp;lt; std::endl;
    }

    // Free memory
    cudaFree(dev_A);
    cudaFree(dev_B);
    cudaFree(dev_C);
    cudaFreeHost(A);
    cudaFreeHost(B);
    cudaFreeHost(C);

    return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cuda vec add&lt;br&gt;
&lt;/p&gt;

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

#include &amp;lt;iostream&amp;gt;  
#include &amp;lt;cuda_runtime.h&amp;gt;

using namespace std;

__global__ void addVectors(int* A, int* B, int* C, int n) 
{
    int i = blockIdx.x * blockDim.x + threadIdx.x; 
    if (i &amp;lt; n) 
    {
        C[i] = A[i] + B[I];
    }
}

int main() 
{
    int n = 1000000;  
    int* A, * B, * C;
    int size = n * sizeof(int);

    // Allocate memory on the host  
    cudaMallocHost(&amp;amp;A, size);  
    cudaMallocHost(&amp;amp;B, size);  
    cudaMallocHost(&amp;amp;C, size);

    // Initialize the vectors
    for (int i = 0; i &amp;lt; n; i++) 
    {
        A[i] = I;
        B[i] = i * 2;
    }
    // Allocate memory on the device  
    int* dev_A, * dev_B, * dev_C;  
    cudaMalloc(&amp;amp;dev_A, size);  
    cudaMalloc(&amp;amp;dev_B, size);  
    cudaMalloc(&amp;amp;dev_C, size);

    // Copy data from host to device
    cudaMemcpy(dev_A, A, size, cudaMemcpyHostToDevice);  
    cudaMemcpy(dev_B, B, size, cudaMemcpyHostToDevice);

    // Launch the kernel  
    int blockSize = 256;
    int numBlocks = (n + blockSize - 1) / blockSize;
    addVectors&amp;lt;&amp;lt;&amp;lt;numBlocks, blockSize&amp;gt;&amp;gt;&amp;gt;(dev_A, dev_B, dev_C, n);

    // Copy data from device to host
    cudaMemcpy(C, dev_C, size, cudaMemcpyDeviceToHost);

    // Print the results
    for (int i = 0; i &amp;lt; 10; i++) 
    {
        cout &amp;lt;&amp;lt; C[i] &amp;lt;&amp;lt; " ";
    }
    cout &amp;lt;&amp;lt; endl;

    // Free memory  
    cudaFree(dev_A);  
    cudaFree(dev_B);  
    cudaFree(dev_C);  
    cudaFreeHost(A);  
    cudaFreeHost(B);  
    cudaFreeHost(C);

    return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;cpp bfs dfs&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;queue&amp;gt;
#include &amp;lt;stack&amp;gt;
#include &amp;lt;omp.h&amp;gt;

using namespace std;

class Graph {
    int V;
    vector&amp;lt;vector&amp;lt;int&amp;gt;&amp;gt; adjList;

public:
    Graph(int V) {
        this-&amp;gt;V = V;
        adjList.resize(V);
    }

    void addEdge(int src, int dest) {
        adjList[src].push_back(dest);
        adjList[dest].push_back(src); // For undirected graph
    }

    vector&amp;lt;int&amp;gt; getNeighbors(int vertex) {
        return adjList[vertex];
    }
};

void parallelBFS(Graph&amp;amp; graph, int source, vector&amp;lt;bool&amp;gt;&amp;amp; visited) {
    queue&amp;lt;int&amp;gt; q;
    q.push(source);
    visited[source] = true;

    while (!q.empty()) {
        int current = q.front();
        q.pop();
        cout &amp;lt;&amp;lt; "Visited: " &amp;lt;&amp;lt; current &amp;lt;&amp;lt; endl;

        vector&amp;lt;int&amp;gt; neighbors = graph.getNeighbors(current);
        #pragma omp parallel for
        for (int i = 0; i &amp;lt; neighbors.size(); ++i) {
            int neighbor = neighbors[i];
            if (!visited[neighbor]) {
                visited[neighbor] = true;
                q.push(neighbor);
            }
        }
    }
}

void parallelDFS(Graph&amp;amp; graph, int source, vector&amp;lt;bool&amp;gt;&amp;amp; visited) {
    stack&amp;lt;int&amp;gt; s;
    s.push(source);
    visited[source] = true;

    while (!s.empty()) {
        int current = s.top();
        s.pop();
        cout &amp;lt;&amp;lt; "Visited: " &amp;lt;&amp;lt; current &amp;lt;&amp;lt; endl;

        vector&amp;lt;int&amp;gt; neighbors = graph.getNeighbors(current);
        #pragma omp parallel for
        for (int i = 0; i &amp;lt; neighbors.size(); ++i) {
            int neighbor = neighbors[i];
            if (!visited[neighbor]) {
                visited[neighbor] = true;
                s.push(neighbor);
            }
        }
    }
}

int main() {
    int V, E;
    cout &amp;lt;&amp;lt; "Enter the number of vertices: ";
    cin &amp;gt;&amp;gt; V;
    Graph graph(V);
    cout &amp;lt;&amp;lt; "Enter the number of edges: ";
    cin &amp;gt;&amp;gt; E;
    cout &amp;lt;&amp;lt; "Enter the edges (src dest):" &amp;lt;&amp;lt; endl;
    for (int i = 0; i &amp;lt; E; ++i) {
        int src, dest;
        cin &amp;gt;&amp;gt; src &amp;gt;&amp;gt; dest;
        graph.addEdge(src, dest);
    }

    vector&amp;lt;bool&amp;gt; visited(V, false);

    cout &amp;lt;&amp;lt; "Parallel BFS:" &amp;lt;&amp;lt; endl;
    #pragma omp parallel num_threads(2)
    {
        #pragma omp single nowait
        parallelBFS(graph, 0, visited);
    }

    // Reset visited array for DFS
    fill(visited.begin(), visited.end(), false);

    cout &amp;lt;&amp;lt; "Parallel DFS:" &amp;lt;&amp;lt; endl;
    #pragma omp parallel num_threads(2)
    {
        #pragma omp single nowait
        parallelDFS(graph, 0, visited);
    }

    return 0;
}

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

&lt;/div&gt;



&lt;p&gt;Boston&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense, Flatten
from sklearn import preprocessing

(X_train, Y_train), (X_test, Y_test) = keras.datasets.boston_housing.load_data()

print("Training data shape:", X_train.shape)
print("Test data shape:", X_test.shape)
print("Train output data shape:", Y_train.shape)
print("Actual Test output data shape:", Y_test.shape)

##Normalize the data

X_train=preprocessing.normalize(X_train)
X_test=preprocessing.normalize(X_test)

#Model Building

X_train[0].shape
model = Sequential()
model.add(Dense(128,activation='relu',input_shape= X_train[0].shape))
model.add(Dense(64,activation='relu'))
model.add(Dense(32,activation='relu'))
model.add(Dense(1))

model.summary()

model.compile(loss='mse',optimizer='rmsprop',metrics=['mae'])

history = model.fit(X_train,Y_train,epochs=100,batch_size=1,verbose=1,validation_data=(X_test,Y_test))

results = model.evaluate(X_test, Y_test)
print(results)

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

&lt;/div&gt;



&lt;p&gt;fashion&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from tensorflow import keras
import numpy as np 
import matplotlib.pyplot as plt 

fashion_mnist = keras.datasets.fashion_mnist
(train_img, train_labels), (test_img, test_labels) = fashion_mnist.load_data()

train_img = train_img / 255.0
test_img = test_img / 255.0

model = keras.Sequential([keras.layers.Flatten(input_shape=(28, 28)), 
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(10, activation='softmax')])

model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', 
    metrics=['accuracy'])

model.fit(train_img, train_labels, epochs=10)

test_loss, test_acc = model.evaluate(test_img, test_labels)
print("accuracy of tessting: ",test_acc)

predictions = model.predict(test_img)

predicted_labels = np.argmax(predictions, axis=1)

num_rows = 5 
num_cols = 5
num_imgs = num_rows*num_cols

plt.figure(figsize=(2*2*num_cols, 2*num_rows))
for i in range(num_imgs):
    plt.subplot(num_rows, 2*num_cols, 2*i+1)
    plt.imshow(test_img[1], cmap='gray')
    plt.axis("off")
    plt.subplot(num_rows, 2*num_cols, 2*i+2)
    plt.bar(range(10), predictions[i])
    plt.xticks(range(10))
    plt.ylim([0,1])
    plt.tight_layout()
    plt.title(f"predicted_labels: {predicted_labels[i]}")
    plt.show()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;imdb&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from  keras.datasets import imdb

(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)

max([max(sequence) for sequence in train_data])


word_index = imdb.get_word_index()
reverse_word_index = dict([(val, key) for (key, val) in word_index.items()])
decoded_review = ' '.join([reverse_word_index.get(i-3, '?') for i in train_data[0]])

import numpy as np

def vectorize(sequences, dimension=10000): 
        results = np.zeros((len(sequences), dimension))
        for i, sequence in enumerate(sequences):
            results[i, sequence] = 1
        return results

x_train = vectorize(train_data)
x_test = vectorize(test_data)
y_train = np.asarray(train_labels).astype('float32')
y_test = np.asarray(test_labels).astype('float32')


from keras import models
from keras import layers

model = models.Sequential()
model.add(layers.Dense(16, activation='relu', input_shape=(10000,)))
model.add(layers.Dense(16, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))


model.compile(loss = 'binary_crossentropy',optimizer='rmsprop',  metrics = ['accuracy'])


x_val = x_train[:10000]
y_val = y_train[:10000]

partial_x = x_train[10000:]
partial_y = y_train[10000:]


history = model.fit(partial_x, partial_y, epochs=20, batch_size=512, validation_data=(x_val, y_val))
results = model.evaluate(x_test, y_test)
print(results)

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

&lt;/div&gt;



&lt;p&gt;min-max cpp&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;omp.h&amp;gt;
#include &amp;lt;climits&amp;gt;

using namespace std;

void min_reduction(vector&amp;lt;int&amp;gt;&amp;amp; arr) {
  int min_value = INT_MAX;
  #pragma omp parallel for reduction(min: min_value)
  for (int i = 0; i &amp;lt; arr.size(); i++) {
    if (arr[i] &amp;lt; min_value) {
      min_value = arr[i];
    }
  }
  cout &amp;lt;&amp;lt; "Minimum value: " &amp;lt;&amp;lt; min_value &amp;lt;&amp;lt; endl;
}

void max_reduction(vector&amp;lt;int&amp;gt;&amp;amp; arr) {
  int max_value = INT_MIN;
  #pragma omp parallel for reduction(max: max_value)
  for (int i = 0; i &amp;lt; arr.size(); i++) {
    if (arr[i] &amp;gt; max_value) {
      max_value = arr[i];
    }
  }
  cout &amp;lt;&amp;lt; "Maximum value: " &amp;lt;&amp;lt; max_value &amp;lt;&amp;lt; endl;
}

void sum_reduction(vector&amp;lt;int&amp;gt;&amp;amp; arr) {
  int sum = 0;
   #pragma omp parallel for reduction(+: sum)
   for (int i = 0; i &amp;lt; arr.size(); i++) {
    sum += arr[i];
  }
  cout &amp;lt;&amp;lt; "Sum: " &amp;lt;&amp;lt; sum &amp;lt;&amp;lt; endl;
}

void average_reduction(vector&amp;lt;int&amp;gt;&amp;amp; arr) {
  int sum = 0;
  #pragma omp parallel for reduction(+: sum)
  for (int i = 0; i &amp;lt; arr.size(); i++) {
    sum += arr[i];
  }
  cout &amp;lt;&amp;lt; "Average: " &amp;lt;&amp;lt; (double)sum / arr.size() &amp;lt;&amp;lt; endl;
}

int main() {
  vector&amp;lt;int&amp;gt; arr;
  arr.push_back(5);
  arr.push_back(2);
  arr.push_back(9);
  arr.push_back(1);
  arr.push_back(7);
  arr.push_back(6);
  arr.push_back(8);
  arr.push_back(3);
  arr.push_back(4);

  min_reduction(arr);
  max_reduction(arr);
  sum_reduction(arr);
  average_reduction(arr);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;sorting&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;cstdlib&amp;gt;
#include &amp;lt;omp.h&amp;gt;

// Function to perform bubble sort
void bubbleSort(std::vector&amp;lt;int&amp;gt;&amp;amp; arr) {
    int n = arr.size();
    for (int i = 0; i &amp;lt; n-1; i++) {
        for (int j = 0; j &amp;lt; n-i-1; j++) {
            if (arr[j] &amp;gt; arr[j+1]) {
                std::swap(arr[j], arr[j+1]);
            }
        }
    }
}

// Function to merge two sorted subvectors
void merge(std::vector&amp;lt;int&amp;gt;&amp;amp; arr, int l, int m, int r) {
    int n1 = m - l + 1;
    int n2 = r - m;

    std::vector&amp;lt;int&amp;gt; L(n1), R(n2);

    for (int i = 0; i &amp;lt; n1; i++)
        L[i] = arr[l + i];
    for (int j = 0; j &amp;lt; n2; j++)
        R[j] = arr[m + 1 + j];

    int i = 0, j = 0, k = l;
    while (i &amp;lt; n1 &amp;amp;&amp;amp; j &amp;lt; n2) {
        if (L[i] &amp;lt;= R[j]) {
            arr[k] = L[i];
            i++;
        } else {
            arr[k] = R[j];
            j++;
        }
        k++;
    }

    while (i &amp;lt; n1) {
        arr[k] = L[i];
        i++;
        k++;
    }

    while (j &amp;lt; n2) {
        arr[k] = R[j];
        j++;
        k++;
    }
}

// Function to perform merge sort
void mergeSort(std::vector&amp;lt;int&amp;gt;&amp;amp; arr, int l, int r) {
    if (l &amp;lt; r) {
        int m = l + (r - l) / 2;

        #pragma omp parallel sections
        {
            #pragma omp section
            mergeSort(arr, l, m);
            #pragma omp section
            mergeSort(arr, m + 1, r);
        }

        merge(arr, l, m, r);
    }
}

// Function to print a vector
void printVector(const std::vector&amp;lt;int&amp;gt;&amp;amp; arr) {
    for (int num : arr)
        std::cout &amp;lt;&amp;lt; num &amp;lt;&amp;lt; " ";
    std::cout &amp;lt;&amp;lt; std::endl;
}

int main() {
    int n = 10000; // Size of vector
    std::vector&amp;lt;int&amp;gt; arr(n), arr_copy(n);

    // Initialize vector with random values
    srand(42);
    for (int i = 0; i &amp;lt; n; i++) {
        arr[i] = rand() % 10000;
        arr_copy[i] = arr[i];
    }

    std::cout &amp;lt;&amp;lt; "Original vector:" &amp;lt;&amp;lt; std::endl;
    printVector(arr);

    // Sequential bubble sort
    double start = omp_get_wtime();
    bubbleSort(arr);
    double end = omp_get_wtime();
    std::cout &amp;lt;&amp;lt; "\nSequential Bubble Sort: " &amp;lt;&amp;lt; end - start &amp;lt;&amp;lt; " seconds" &amp;lt;&amp;lt; std::endl;
    //printVector(arr);

    // Parallel merge sort
    start = omp_get_wtime();
    mergeSort(arr_copy, 0, n - 1);
    end = omp_get_wtime();
    std::cout &amp;lt;&amp;lt; "\nParallel Merge Sort: " &amp;lt;&amp;lt; end - start &amp;lt;&amp;lt; " seconds" &amp;lt;&amp;lt; std::endl;
    //printVector(arr_copy);

    return 0;
}

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

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Should You schedule tweet ?</title>
      <dc:creator>Abhijeet Gavali</dc:creator>
      <pubDate>Tue, 05 Sep 2023 14:38:58 +0000</pubDate>
      <link>https://dev.to/abhijeetgavali/mastering-tweet-scheduling-on-a-budget-free-and-professional-strategies-11od</link>
      <guid>https://dev.to/abhijeetgavali/mastering-tweet-scheduling-on-a-budget-free-and-professional-strategies-11od</guid>
      <description>&lt;p&gt;You probably know the power of Twitter if you're serious about using social media to promote your brand or business. When it comes to contacting your target audience and interacting with your followers, Twitter may be a game-changer because to its millions of active users and its real-time nature.&lt;/p&gt;

&lt;p&gt;But it might be challenging to keep up with Twitter's hectic environment. Your material may easily get buried in the cacophony as there are thousands of tweets made every minute. Because of this, scheduling your tweets in advance might be a wise technique to maximize your influence on Twitter by posting your tweets at the appropriate time, dispersing them throughout the day, and saving you time posting.&lt;/p&gt;

&lt;p&gt;Here are the exact steps for scheduling your tweets, the benefits of doing so, and some advice on how to post to Twitter efficiently.&lt;/p&gt;

&lt;h1&gt;
  
  
  How to schedule tweets on Twitter
&lt;/h1&gt;

&lt;p&gt;You can schedule tweets right within Twitter. Here’s how:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Log in to the &lt;a href="https://twitter.com" rel="noopener noreferrer"&gt;Twitter app&lt;/a&gt; or &lt;a href="https://twitter.com" rel="noopener noreferrer"&gt;website&lt;/a&gt;. Choose 'Tweet' from the menu on the left side of the page, then type your message.&lt;/li&gt;
&lt;li&gt;Enter the information you want to tweet there.&lt;/li&gt;
&lt;li&gt;Instead of sending sending, click the calendar button.&lt;/li&gt;
&lt;li&gt;Select the day and time when you want your tweet to be sent.&lt;/li&gt;
&lt;li&gt;To schedule your tweet, click the "confirm" button. Your tweet has been scheduled for the date and time you specified.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every time you schedule a tweet, you have to choose the day and time, which makes it a very laborious procedure. Fortunately, there are many tools available that make it simpler to plan tweets along with your other social media material.&lt;/p&gt;

&lt;h1&gt;
  
  
  How to schedule tweets with &lt;a href="https://hypefury.com/?via=abhijeet-gavali" rel="noopener noreferrer"&gt;HYPEFURRY&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://hypefury.com/?via=abhijeet-gavali" rel="noopener noreferrer"&gt;Hypefury&lt;/a&gt; is quite simple to use; all you have to do is register for an account to get started. Even better, you could get started scheduling tweets by creating a &lt;a href="https://hypefury.com/?via=abhijeet-gavali" rel="noopener noreferrer"&gt;free trial&lt;/a&gt; and learning more about the features of the subscription plan!&lt;/p&gt;

&lt;p&gt;You'll arrive at the dashboard after logging in with your Twitter credentials and be able to start creating the premium content your followers will adore right away.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click on “What would you like to share?”&lt;/li&gt;
&lt;li&gt;You can create a post by using the composer that will appear.&lt;/li&gt;
&lt;li&gt;After you've finished writing your post, you may decide when and where to share it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Tip: If you wish to post to Twitter directly, save the post to your draughts, or put it to your queue of tweets, scroll to the bottom of the composer once you've set your time.&lt;/p&gt;

&lt;p&gt;By selecting &lt;a href="https://hypefury.com/?via=abhijeet-gavali" rel="noopener noreferrer"&gt;"Compose a Draught"&lt;/a&gt; and writing your article, you may also choose to schedule tweets from the draughts tab. When you're finished, simply store the draught for later or put it in your queue of tweets that are ready to be posted.&lt;/p&gt;

&lt;p&gt;Additionally, you have the option to use the Insta-shot feature to share your post on Instagram.&lt;/p&gt;

&lt;h1&gt;
  
  
  Should you schedule tweets or post natively?
&lt;/h1&gt;

&lt;p&gt;When it comes to how your tweets perform, scheduling or posting them makes little difference, so it's truly a personal choice.&lt;/p&gt;

&lt;p&gt;Scheduling your social media postings ahead of time is an excellent strategy to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Maintain consistency.&lt;/li&gt;
&lt;li&gt;Posting when your audience is online.&lt;/li&gt;
&lt;li&gt;Grouping your tasks.&lt;/li&gt;
&lt;li&gt;Enable you to make advance plans.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;However, blogging natively can be a terrific method to be in real-time contact with your followers if you value spontaneity. The choice of approach depends ultimately on your objectives and target audience.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why should you schedule tweets?
&lt;/h1&gt;

&lt;p&gt;There are a lot of great reasons to schedule your tweets in advance!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Scheduling tweets ensures quality and consistency&lt;/strong&gt;&lt;br&gt;
You may ensure that you're maintaining a regular posting schedule by scheduling your material in advance. As a result of your continued presence, your audience will start to trust you more, which helps you stay on top of your social media strategy.&lt;/p&gt;

&lt;p&gt;If you want to utilize Twitter to amplify a future campaign, scheduling tweets is also a terrific idea. All of your tweets can be written and scheduled in advance while your campaign is being planned. You won't need to worry about your social media efforts on launch day because your tweets will be uploaded successfully at the timings you specify.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Scheduling tweets allows you to reach a wider audience&lt;/strong&gt;&lt;br&gt;
Scheduling tweets is another excellent approach to ensure that your material reaches the widest possible audience. By scheduling tweets at different times of the day, you may reach audiences in different time zones and begin to understand the optimal time to send your tweets, which will help you enhance your engagement and reach on Twitter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Scheduling tweets lets you batch your work and plan in advance&lt;/strong&gt;&lt;br&gt;
If you're trying to expand your Twitter account, it's a good idea to tweet one to five times every day. But that's just Twitter; most individuals also post to Instagram, LinkedIn, TikTok, and other platforms on a daily basis. Manually posting to social media is doable, but it can consume a significant amount of your productivity and time in a day.&lt;/p&gt;

&lt;p&gt;You may plan out your content to be posted without having to manually post the tweet by scheduling it. You can also create batch content by writing several days or weeks' worth of tweets at once, scheduling them, and focusing on engaging rather than creating new material every day.&lt;/p&gt;

&lt;p&gt;Scheduling also allows you to plan ahead of time. You can check an upcoming social media calendar to see if there are any holidays to celebrate and plan out your content accordingly.&lt;/p&gt;

&lt;h1&gt;
  
  
  Best practices for scheduling tweets
&lt;/h1&gt;

&lt;p&gt;If you are ready to start scheduling your tweets, here are a few best practices to follow before you get started:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use a social media management tool to schedule your tweets in advance&lt;/strong&gt;&lt;br&gt;
I recommend setting up a free account on &lt;a href="https://hypefury.com/?via=abhijeet-gavali" rel="noopener noreferrer"&gt;HYPEFURRY&lt;/a&gt;, where you can start adding in all of the tweets you want to schedule.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Schedule your tweets for the times when your audience is on Twitter&lt;/strong&gt;&lt;br&gt;
Pay attention to the best time to post on Twitter, but also to when you are getting the most engagement and schedule your tweets to be sent out at those times.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mix up your tweet content to keep it interesting&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Try new things on Twitter, like scheduling your Twitter threads or posting videos if you normally post only text, to see how it all performs with your audience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't rely solely on scheduled tweets&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don’t “post and ghost” by scheduling all of your tweets and then not responding to any of the replies. Make sure that you have time set aside to engage with your followers when they reply to your posts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analyze your tweet performance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Make sure you are regularly looking at how your tweets are performing to see what's working and what's not and adjust your content strategy from there.&lt;/p&gt;

&lt;p&gt;Scheduling tweets has saved my loads of time, I hope it can do the same for you! ✨&lt;/p&gt;

&lt;p&gt;Follow me as well :) &lt;a href="http://twitter.com/AbhijeetBGavali" rel="noopener noreferrer"&gt;@AbhijeetBGavali&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A dataset of LinkedIn users and businesses</title>
      <dc:creator>Abhijeet Gavali</dc:creator>
      <pubDate>Thu, 13 Oct 2022 03:35:37 +0000</pubDate>
      <link>https://dev.to/abhijeetgavali/a-dataset-of-linkedin-users-and-businesses-2hck</link>
      <guid>https://dev.to/abhijeetgavali/a-dataset-of-linkedin-users-and-businesses-2hck</guid>
      <description>&lt;p&gt;Hello there, developers. &lt;br&gt;
I'd like to tell you about LinkDB, which I recently discovered and found useful. Perhaps you'll find it useful as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  What exactly is LinkDB?
&lt;/h2&gt;

&lt;p&gt;LinkDB is a comprehensive database of LinkedIn members and businesses from around the world. The information also includes job titles, company names, employees, and executives, and it can be used to identify key business connections. The LinkDB database is updated daily with profiles from LinkedIn and available sources, ensuring that your information is up to date. This database is an excellent resource for businesses looking to expand their networks, find new customers and partners, or simply stay ahead of the competition. Individuals looking to connect with professionals in their field or industry can also use it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does it have to offer?
&lt;/h2&gt;

&lt;p&gt;The database contains profiles of over 17 million companies worldwide, as well as profiles of individuals organized by region, industry, and job function. It also contains information on over 5 million industry-specific companies and their executives, such as the company name, location, and website address. When you buy the LinkDB database, you get access to a searchable online portal where you can do more in-depth research on your data. The database includes information on over 5 million industry-specific companies and their executives, such as the company name, location, and website address. When you buy the LinkDB database, you get access to a searchable online portal where you can do more in-depth research on your data. Researchers all over the world use this database for business intelligence purposes such as market segmentation and competitive analysis.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who was LinkDB originally developed for?
&lt;/h2&gt;

&lt;p&gt;LinkDB is ideal for sales and marketing automation, candidate recruitment, investment analysis, and other applications. It is ideal for you if you are a middle-market company based in the United States or Europe or a startup with at least $1 million in funding.&lt;/p&gt;

&lt;p&gt;Finally, the purpose of this post is to inform you about a available LinkedIn Database, so that we can now provide quality developers, sales executives, and other professionals to companies by building a platform around LinkDB and writing some advanced fancy algorithms also termed as "business logic". &lt;/p&gt;

&lt;p&gt;The detailed blog can be found &lt;a href="https://nubela.co/blog/linkdb-an-exhaustive-dataset-of-linkedin-members-and-companies/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I hope you find this useful; please leave feedback in the comments:)&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>news</category>
      <category>community</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>Setting up an expo CLI for development</title>
      <dc:creator>Abhijeet Gavali</dc:creator>
      <pubDate>Sat, 07 May 2022 17:20:55 +0000</pubDate>
      <link>https://dev.to/abhijeetgavali/setting-up-an-expo-cli-for-development-54kl</link>
      <guid>https://dev.to/abhijeetgavali/setting-up-an-expo-cli-for-development-54kl</guid>
      <description>&lt;p&gt;Hello developers, let’s set up an expo CLI into the machine to start an app-development !&lt;/p&gt;

&lt;p&gt;Prerequisites,&lt;br&gt;
You need to have a node install on your machine, haven't? get node from &lt;a href="https://nodejs.org/en/download/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;br&gt;
You must have simmulator on your machine. If your mac user you can have Xcode(get from app store) and android both, but this choice is limmited to android for windows user’s, get android studio &lt;a href="https://developer.android.com/studio?gclsrc=aw.ds&amp;amp;gclid=CjwKCAjwjtOTBhAvEiwASG4bCCeFkbUBba0lkpRCzm3qE-G4ETrRxM24NqsE-17Htnj55Qiwpy2BbxoCNzcQAvD_BwE" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;br&gt;
Let’s check the version of our node and npm, to do so run following command in terminal.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;node --version&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm --version&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now we need an expo CLI for initializing our app’s, so we get an expo globally&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm i -g expo-cli&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will install expo CLI on your machine. If your Mac user, you need to prefix this with ‘sudo’ and to install that, you were asked for the password by terminal, go ahead and install expo.&lt;/p&gt;

&lt;p&gt;After setting up all, run following command to create a new expo app.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;expo init blog-app&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This will prompt for choosing template for your project, will go with blank.&lt;/p&gt;

&lt;p&gt;Congratulations developers! we have created a new expo app.&lt;/p&gt;

&lt;p&gt;We have successfully created our first expo app, now we need to run our app for that you can see &lt;a href="https://abhijeetgavali.medium.com/setting-up-an-expo-cli-for-development-9dff1e73e6d0" rel="noopener noreferrer"&gt;this&lt;/a&gt; guide.&lt;/p&gt;

&lt;p&gt;Till then keep learning :)&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>nativedevelopment</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
    <item>
      <title>DOGECART an ecommerce platform</title>
      <dc:creator>Abhijeet Gavali</dc:creator>
      <pubDate>Thu, 13 Jan 2022 07:31:43 +0000</pubDate>
      <link>https://dev.to/abhijeetgavali/dogecart-an-ecommerce-platform-5an9</link>
      <guid>https://dev.to/abhijeetgavali/dogecart-an-ecommerce-platform-5an9</guid>
      <description>&lt;p&gt;hey guys,&lt;br&gt;
First of all I want to thank &lt;a href="http://dev.to"&gt;dev.to&lt;/a&gt; and &lt;a href="http://mongoDB.com" rel="noopener noreferrer"&gt;mongoDB&lt;/a&gt; for hosting this amazing hackathon to explore non SQL database as I Wanted to do...&lt;/p&gt;


&lt;h2&gt;
  
  
  For quick readers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Overview of Submission&lt;/li&gt;
&lt;li&gt;Submission Category&lt;/li&gt;
&lt;li&gt;Code of the project&lt;/li&gt;
&lt;li&gt;Resources, frameworks and code-stack Used in project&lt;/li&gt;
&lt;li&gt;Screenshots and Demo video&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;let's talk about submission as this post is for overview of what I have build, what I have learnt, and the next plan..&lt;/p&gt;


&lt;h3&gt;
  
  
  Overview of My Submission &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;It is an online e-commerce platform, I always wanted to create a platform so every one can generate sell from online market, till date no one is providing a platform to explore market for free. yes, there are some but they are not clear about the seller policy they charge before seller makes profit from online market, When I'm exploring the drop shipping I end up with subscription for using platform, so with the help of this hackathon I bound myself to the project for creating a platform, and here is what I come with &lt;a href="https://dogecart.vercel.app" rel="noopener noreferrer"&gt;dogecart&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Submission Category &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;E-Commerce Creation&lt;/p&gt;


&lt;h3&gt;
  
  
  Code of the project &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/AbhijeetGavali" rel="noopener noreferrer"&gt;
        AbhijeetGavali
      &lt;/a&gt; / &lt;a href="https://github.com/AbhijeetGavali/dogecart" rel="noopener noreferrer"&gt;
        dogecart
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Repo created for hackthon
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;About Doge cart&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;It is an ecomerce platform build to give exprence of online market to seller and provide quality producs to customers from nearby seller&lt;/p&gt;
&lt;p&gt;&lt;a href="https://dogecart.vercel.app" rel="nofollow noopener noreferrer"&gt;Explore Platform&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;build it on local for explore&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;first of all you need to clone the repository and provide the environmental variables
get variables from sample.env file and provide values&lt;/p&gt;
&lt;p&gt;move to backend folder and configure env file as same&lt;/p&gt;
&lt;p&gt;run following command in backend folder to start server&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;&lt;code&gt;npm start&lt;/code&gt;&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;now move to dogecart and run&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;&lt;code&gt;npm run dev&lt;/code&gt;&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;it will start a local development server&lt;/p&gt;
&lt;p&gt;happy coding:)&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/AbhijeetGavali/dogecart" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;





&lt;h3&gt;
  
  
  Additional Resources / Info
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Resources, frameworks and code-stack Used in project  &lt;a&gt;&lt;/a&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;In frontend : 

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://nextjs.org" rel="noopener noreferrer"&gt;Next Js&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://reactjs.org" rel="noopener noreferrer"&gt;React Js&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://redux.js.org" rel="noopener noreferrer"&gt;Redux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;In Backend :

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://expressjs.com" rel="noopener noreferrer"&gt;express&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/auth0/node-jsonwebtoken" rel="noopener noreferrer"&gt;JWT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mongoosejs.com" rel="noopener noreferrer"&gt;mongoose&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nodemailer.com/" rel="noopener noreferrer"&gt;nodemailer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://outlook.live.com/" rel="noopener noreferrer"&gt;outlook&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;In DataBase:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.atlas.mongodb.com" rel="noopener noreferrer"&gt;MongoDB Atlas&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.atlas.mongodb.com/atlas-search/" rel="noopener noreferrer"&gt;Atlas Search&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h3&gt;
  
  
  Screenshots and demo videos&lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  demo video
&lt;/h4&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/6yvAILnXCcE"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h4&gt;
  
  
  Home page for searching what you want
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzl4641neiob7qni09neq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzl4641neiob7qni09neq.png" alt="home page search bar" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Auto couple when you type black
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu4ynermk1aaarcbfiysp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu4ynermk1aaarcbfiysp.png" alt="auto complete functionality" width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Browsing categories/ subcategories
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4gyectoo8pho262vry9h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4gyectoo8pho262vry9h.png" alt="Browsing categories/ subcategories" width="732" height="1084"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgc0rf47n4bfulhtk0uob.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgc0rf47n4bfulhtk0uob.png" alt="groups product according to categories subcategories" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Product details page
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Focji7jktpj03tirnjif6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Focji7jktpj03tirnjif6.png" alt="product page" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  User cart Small
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjqo35hmuscsghwz6e3du.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjqo35hmuscsghwz6e3du.png" alt="cart page" width="800" height="1072"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dogecart.vercel.app" rel="noopener noreferrer"&gt;explore more...&lt;/a&gt; [feedback is appreciated]&lt;/p&gt;




&lt;h2&gt;
  
  
  Details of the Project
&lt;/h2&gt;

&lt;p&gt;so long you have gone through what I build, Now allow me to give a quick overview of what I build till now,&lt;br&gt;
First thing first I am a second year engineering student from India, and this project is build by me alone, with some inspiration from YouTube.&lt;br&gt;
Idea behind building this project is to build a platform where sellers can cell their products online in there area as well in hole globe and experience market without any subscription charges, I haven't any experience in web UI design so this is a challenge for me, although I have backend ready for hole project, due to lack of designs I can't come with the actual Idea, so currently users can create acc, verify with their mails, verify orders with mails, most important can search, view and place order, we were providing more product according to the category and subcategory but in future will provide more relevant with the help of AI, all listings your able to see are from my prebuilt store, if you want to know more stay tune in comments ill make hole brief of the model of the platform&lt;/p&gt;

&lt;p&gt;at last one thing that I can say is this 30 day's gap span of building the project come with tones of bugs and lots of challenges that I enjoyed the most.&lt;/p&gt;




&lt;p&gt;Images used for creating the platform are demo images and used from direct e-commerce platform such as Myntra, flip cart etc&lt;/p&gt;

&lt;p&gt;Thanks for reading, if you complete the reading, don't forget to comment!&lt;/p&gt;

</description>
      <category>atlashackathon</category>
      <category>javascript</category>
      <category>node</category>
      <category>mongodb</category>
    </item>
  </channel>
</rss>
