<?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: Adam Chain</title>
    <description>The latest articles on DEV Community by Adam Chain (@adamchain).</description>
    <link>https://dev.to/adamchain</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%2F2284987%2F80c143de-18de-4df4-9c25-943162f0d2ca.png</url>
      <title>DEV Community: Adam Chain</title>
      <link>https://dev.to/adamchain</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adamchain"/>
    <language>en</language>
    <item>
      <title>Complete, full-stack setup for any node/express/psql app, equipped with basic ui, routes &amp; more.</title>
      <dc:creator>Adam Chain</dc:creator>
      <pubDate>Fri, 20 Dec 2024 18:54:58 +0000</pubDate>
      <link>https://dev.to/adamchain/complete-full-stack-setup-for-any-nodeexpresspsql-app-equipped-with-basic-ui-routes-more-4a0j</link>
      <guid>https://dev.to/adamchain/complete-full-stack-setup-for-any-nodeexpresspsql-app-equipped-with-basic-ui-routes-more-4a0j</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/adamchain/js-full-stack-template" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My 2nd public project!&lt;/strong&gt; a full-stack js/node/express/postgres template (or foundation?). Syncs interface with your db, lets users sign up, sign in, and open a JWT token-protected page. Includes CRUD for user management.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Sign Up: Form for name, email, and password (with validation).&lt;/li&gt;
&lt;li&gt;Sign In: Login with email and password, get a JWT.&lt;/li&gt;
&lt;li&gt;Dashboard: Protected, validates JWT.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;ol&gt;
&lt;li&gt;Built with Express.js.&lt;/li&gt;
&lt;li&gt;Handles routes, auth, and APIs.&lt;/li&gt;
&lt;li&gt;Hashes passwords with bcrypt.&lt;/li&gt;
&lt;li&gt;JWT for sessions.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;ol&gt;
&lt;li&gt;PostgreSQL for user data.&lt;/li&gt;
&lt;li&gt;CRUD for create, read, update, delete users.&lt;/li&gt;
&lt;li&gt;Simple, functional starting point for auth-based apps.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;My Schema:&lt;/strong&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%2Foade7rsz9chdgsgomj7r.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%2Foade7rsz9chdgsgomj7r.png" alt="Image description" width="800" height="187"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Guide to setting up node/express-postgres enviornment: &lt;a href="https://blog.logrocket.com/crud-rest-api-node-js-express-postgresql/" rel="noopener noreferrer"&gt;https://blog.logrocket.com/crud-rest-api-node-js-express-postgresql/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--&lt;br&gt;
Disclaimer: I'm brand new to dev &amp;amp; I am building projects, 1 at a time, to help myself. I would appreciate any &amp;amp; all feedback. &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>node</category>
      <category>express</category>
      <category>postgres</category>
    </item>
    <item>
      <title>Practice javascript via first principle thinking, not syntax memorization</title>
      <dc:creator>Adam Chain</dc:creator>
      <pubDate>Thu, 19 Dec 2024 18:53:36 +0000</pubDate>
      <link>https://dev.to/adamchain/practice-javascript-via-first-principle-thinking-not-syntax-memorization-2724</link>
      <guid>https://dev.to/adamchain/practice-javascript-via-first-principle-thinking-not-syntax-memorization-2724</guid>
      <description>&lt;p&gt;I'm a brand new coder. I started my first JavaScript course on Udemy on November 13. Quickly, I realized that I grasp new concepts via understanding the reasoning behind where and why specific pieces of code belong, rather than just memorizing syntax. Knowing how to write every JavaScript component correctly is valuable, but it doesn't automatically = understanding how to structure a program, determine execution order, or manage control flow. For me, grasping the "why" is essential to mastering the "how."&lt;/p&gt;

&lt;p&gt;To apply this learning philosophy, I created my first public program—a tool that generates project guidelines with these principles in mind. Powered by OpenAI's API and structured outputs, it allows you to specify the JavaScript concepts you want to practice (e.g., &lt;code&gt;setTimeout&lt;/code&gt;, &lt;code&gt;eventListener&lt;/code&gt;). The program provides step-by-step instructions using the "why" teaching method and even generates PDF/TXT guidelines to help you follow along as you build.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/adamchain/js-via-first-principles" rel="noopener noreferrer"&gt;Open on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;*I built this for myself but, based on demand from my new coding friends, I decided to make it public. All feedback is appreciated.&lt;/p&gt;

&lt;p&gt;Example output:&lt;/p&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%2Fag6xhxi09x3c50jpwmis.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%2Fag6xhxi09x3c50jpwmis.png" alt="Image description" width="800" height="1201"&gt;&lt;/a&gt; &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
