<?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: Keshav Rajpoot</title>
    <description>The latest articles on DEV Community by Keshav Rajpoot (@keshav_rajpoot_ee67f1aa9c).</description>
    <link>https://dev.to/keshav_rajpoot_ee67f1aa9c</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%2F3348064%2Faf548814-2d89-4887-bf42-b8bf1424cc77.png</url>
      <title>DEV Community: Keshav Rajpoot</title>
      <link>https://dev.to/keshav_rajpoot_ee67f1aa9c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/keshav_rajpoot_ee67f1aa9c"/>
    <language>en</language>
    <item>
      <title>Project Documentation: Full-Stack Task Manager Application</title>
      <dc:creator>Keshav Rajpoot</dc:creator>
      <pubDate>Sat, 12 Jul 2025 09:21:14 +0000</pubDate>
      <link>https://dev.to/keshav_rajpoot_ee67f1aa9c/project-documentation-full-stack-task-manager-application-348f</link>
      <guid>https://dev.to/keshav_rajpoot_ee67f1aa9c/project-documentation-full-stack-task-manager-application-348f</guid>
      <description>&lt;p&gt;Developer: Keshav Singh Rajpoot Frontend: Angular 17 (Standalone API) + Angular Material Backend: Node.js + Express + MongoDB (Atlas)Tools Used: Postman, VS Code, MongoDB Atlas, JWT, Angular CLI, Material Design&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Objective-&lt;/strong&gt;&lt;br&gt;
To build a secure, dynamic, and stylish full-stack Task Manager App as part of a professional software engineering portfolio.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;1. Project Kickoff &amp;amp; Tech Stack Setup&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
We began by identifying what’s typically expected from internal tools engineers:&lt;/p&gt;

&lt;p&gt;Decided Tech Stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Angular 17 (Standalone Component API)&lt;/li&gt;
&lt;li&gt;Node.js + Express (Backend)&lt;/li&gt;
&lt;li&gt;MongoDB Atlas (NoSQL database)&lt;/li&gt;
&lt;li&gt;JWT for authentication&lt;/li&gt;
&lt;li&gt;Angular Material for modern UI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools Installed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Angular CLI&lt;/li&gt;
&lt;li&gt;VS Code&lt;/li&gt;
&lt;li&gt;Postman&lt;/li&gt;
&lt;li&gt;MongoDB Atlas&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Backend Development&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Challenges Faced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initial MongoDB Atlas connection failed due to IP whitelisting&lt;/li&gt;
&lt;li&gt;&lt;p&gt;JWT authentication setup required correct handling of token storage and middleware&lt;br&gt;
Solutions:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Whitelisted local development IP securely via MongoDB Atlas for server connection&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implemented secure authentication using bcrypt and JWT&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Used environment variables via dotenv for sensitive data like DB URI and JWT secret&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verified auth middleware works correctly with protected routes&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Features Built:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User Registration and Login APIs&lt;/li&gt;
&lt;li&gt;JWT-based session handling and protection&lt;/li&gt;
&lt;li&gt;Task Create, Read, and Delete APIs&lt;/li&gt;
&lt;li&gt;Proper error handling for invalid input and auth failure&lt;/li&gt;
&lt;li&gt;Angular Frontend (Standalone)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Challenges Faced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Angular CLI created .ts files using standalone API instead of classic .component.ts files&lt;/li&gt;
&lt;li&gt;Workspace-related errors like "This command is not available outside a workspace"&lt;/li&gt;
&lt;li&gt;Component import paths and AuthService injection failures&lt;/li&gt;
&lt;li&gt;No app.module.ts required a new approach to routing and providers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Solutions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used --standalone flag during component creation to ensure proper Angular 17 structure.&lt;/li&gt;
&lt;li&gt;Rewrote routing logic inside app.routes.ts using provideRouter.&lt;/li&gt;
&lt;li&gt;Used CommonModule and FormsModule with standalone components.&lt;/li&gt;
&lt;li&gt;Corrected path issues using relative imports like ../../services/auth.service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Features Implemented:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fully functional login page using Angular Material UI&lt;/li&gt;
&lt;li&gt;Dashboard with task listing, add, and delete features&lt;/li&gt;
&lt;li&gt;JWT token stored in localStorage and used in protected API requests&lt;/li&gt;
&lt;li&gt;Error messages using MatSnackBar for feedback&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;UI Upgrade with Angular Material&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We integrated Angular Material to enhance UI/UX across the app.&lt;/p&gt;

&lt;p&gt;Modules Used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MatFormFieldModule, MatInputModule, MatCardModule, MatButtonModule&lt;/li&gt;
&lt;li&gt;MatSelectModule, MatSnackBarModule, MatIconModule&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enhancements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Login card with modern form inputs and validation&lt;/li&gt;
&lt;li&gt;Dashboard with Material-styled task cards&lt;/li&gt;
&lt;li&gt;Dynamic priority tags with custom colors (Low, Medium, High)&lt;/li&gt;
&lt;li&gt;Snackbar feedback on login success/failure and task actions&lt;/li&gt;
&lt;li&gt;Blue background for the login landing screen&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Learning Outcomes &amp;amp; Tools Mastered&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What We Learned:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Angular 17 standalone structure, including routing and component injection&lt;/li&gt;
&lt;li&gt;JWT authentication with Angular and Node.js&lt;/li&gt;
&lt;li&gt;Material UI integration with standalone components&lt;/li&gt;
&lt;li&gt;Debugging CLI setup, module resolution, and server-client communication&lt;/li&gt;
&lt;li&gt;Building secure, user-authenticated full-stack apps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools Mastered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Angular CLI and standalone architecture&lt;/li&gt;
&lt;li&gt;Angular Material and layout practices&lt;/li&gt;
&lt;li&gt;JWT integration with localStorage&lt;/li&gt;
&lt;li&gt;Postman for backend testing&lt;/li&gt;
&lt;li&gt;MongoDB Atlas for secure cloud DB hosting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next Steps (Future Enhancements)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add edit &amp;amp; completion toggles for tasks&lt;/li&gt;
&lt;li&gt;Add route guards for protected components&lt;/li&gt;
&lt;li&gt;Deploy Angular frontend to Netlify&lt;/li&gt;
&lt;li&gt;Deploy Node.js backend to Render&lt;/li&gt;
&lt;li&gt;Include unit tests with Jasmine &amp;amp; Karma&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Conclusion: This full-stack Task Manager app reflects a complete development lifecycle — including secure authentication, API building, Angular Material UI, and production-grade best practices. It’s structured, scalable, and showcases real-world problem solving from setup to completion.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
