<?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: doros-devs</title>
    <description>The latest articles on DEV Community by doros-devs (@dorosdevs).</description>
    <link>https://dev.to/dorosdevs</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%2F1820829%2F47819600-e955-45e3-845f-cb5800ae1631.png</url>
      <title>DEV Community: doros-devs</title>
      <link>https://dev.to/dorosdevs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dorosdevs"/>
    <language>en</language>
    <item>
      <title>Building a Wedding Registry Platform: A Journey Through the Development Process</title>
      <dc:creator>doros-devs</dc:creator>
      <pubDate>Mon, 19 Aug 2024 08:57:33 +0000</pubDate>
      <link>https://dev.to/dorosdevs/building-a-wedding-registry-platform-a-journey-through-the-development-process-26di</link>
      <guid>https://dev.to/dorosdevs/building-a-wedding-registry-platform-a-journey-through-the-development-process-26di</guid>
      <description>&lt;h4&gt;
  
  
  Introduction
&lt;/h4&gt;

&lt;p&gt;Creating a wedding registry platform is a unique and fulfilling challenge. The project aims to provide couples with a personalized experience where they can curate their desired gifts, while guests can easily access and purchase these items. This blog post will walk you through the development journey of the wedding registry project, highlighting the technologies used, the challenges faced, and the solutions implemented.&lt;/p&gt;

&lt;h4&gt;
  
  
  Project Overview
&lt;/h4&gt;

&lt;p&gt;The wedding registry platform is designed to be a user-friendly web application that allows couples to manage their wedding registry, and guests to browse and purchase gifts. The platform includes features like user authentication, product management, category filtering, and a responsive design that works seamlessly across devices.&lt;/p&gt;

&lt;h4&gt;
  
  
  Technologies Used
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;React&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React was chosen as the frontend framework due to its component-based architecture, which allowed us to create reusable and modular components. React’s state management with hooks like &lt;code&gt;useState&lt;/code&gt; and &lt;code&gt;useEffect&lt;/code&gt; made it easy to handle dynamic data and interactions across the application.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Firebase&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Firebase was utilized for user authentication, providing a secure and scalable solution for managing user accounts, login, and signup processes. Firebase's &lt;code&gt;Auth&lt;/code&gt; module made it straightforward to implement authentication features with minimal code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tailwind CSS&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tailwind CSS was used to style the application. Its utility-first approach allowed for rapid prototyping and easy customization of components. Tailwind’s responsive design features ensured that the platform looked great on all screen sizes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Render&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Render was chosen as the platform for hosting the backend server. It offered an easy deployment process and reliable uptime, ensuring that the database was always accessible to the frontend.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Git &amp;amp; GitHub&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Version control was managed using Git, with the codebase hosted on GitHub. This allowed for collaborative development, code reviews, and easy management of different branches and features.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Vercel&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vercel was used to deploy the frontend of the application. Its integration with GitHub allowed for continuous deployment, ensuring that any changes pushed to the main branch were automatically reflected on the live site.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Development Process
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Planning and Design&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The project began with a detailed planning phase, where the core features were outlined, and the user interface was designed. Mockups were created to visualize the user journey and ensure a seamless experience.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Setting Up the Development Environment&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The development environment was set up using tools like VSCode, npm. The project was initialized with &lt;code&gt;vite&lt;/code&gt;, and Tailwind CSS was configured for styling.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Building Core Components&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The application was broken down into core components like &lt;code&gt;Navbar&lt;/code&gt;, &lt;code&gt;ProductCard&lt;/code&gt;, &lt;code&gt;CategoryList&lt;/code&gt;, and &lt;code&gt;Modal&lt;/code&gt;. These components were designed to be reusable and customizable, allowing for easy updates and maintenance.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Implementing User Authentication&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Firebase was integrated into the project for user authentication. This involved setting up Firebase in the project, creating login and signup forms, and managing user sessions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Developing the Product Management System&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A crucial part of the platform was the ability to manage products. This involved creating an admin page where products could be added, edited, and deleted. The data was fetched from the backend server, which was hosted on Render.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Creating the Registry and Cart Features&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The registry and cart features were developed to allow users to add products to their registry or cart. The state management of these features was handled using React’s &lt;code&gt;useContext&lt;/code&gt; and &lt;code&gt;useState&lt;/code&gt; hooks.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Making the Application Responsive&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tailwind CSS’s responsive utilities were leveraged to ensure that the application was fully responsive. This involved testing the platform on various screen sizes and adjusting the layout as needed.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Deployment&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The backend server was deployed on Render, and the frontend was deployed on Vercel. GitHub Actions were used to automate the deployment process, ensuring that any changes made in the codebase were quickly reflected on the live site.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Challenges Faced
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Data Management&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Managing product data across different components and ensuring that the data was always up-to-date was a challenge. This was mitigated by implementing efficient state management and using &lt;code&gt;useEffect&lt;/code&gt; hooks to fetch data whenever necessary.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Responsive Design&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensuring that the application looked good on all screen sizes required careful planning and testing. Tailwind CSS made this easier, but it still required multiple iterations to get the design right.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Conclusion
&lt;/h4&gt;

&lt;p&gt;The wedding registry project was a rewarding experience that involved a combination of modern web development tools and best practices. The use of React, Firebase, Tailwind CSS, and other technologies allowed us to build a robust and scalable platform that meets the needs of users.&lt;/p&gt;

&lt;p&gt;The project demonstrated the importance of careful planning, modular design, and responsive development. By leveraging the power of modern tools and platforms, we were able to create a seamless experience for both couples and their guests.&lt;/p&gt;

&lt;p&gt;Whether you’re looking to build a similar platform or just interested in learning more about modern web development, we hope this blog post provides valuable insights into the process and technologies involved.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Building My First Full Application: A Wedding Task Management App</title>
      <dc:creator>doros-devs</dc:creator>
      <pubDate>Mon, 22 Jul 2024 16:18:38 +0000</pubDate>
      <link>https://dev.to/dorosdevs/building-my-first-full-application-a-wedding-task-management-app-1jb7</link>
      <guid>https://dev.to/dorosdevs/building-my-first-full-application-a-wedding-task-management-app-1jb7</guid>
      <description>&lt;p&gt;Hello, everyone! My name is Terence, and I’m currently a student at Moringa School as well as a startup founder at &lt;a href="//www.doros.wedding"&gt;Doros&lt;/a&gt;. I’m thrilled to share my journey of building my first full application using JavaScript. As someone who runs a startup in the wedding space, I decided to create a Wedding Task Management App. This project was a way to practice my coding skills while building something that could benefit my business. The process has been challenging but incredibly rewarding, and I can’t wait to tell you all about it.&lt;/p&gt;

&lt;p&gt;I choose this idea because in the world of weddings, coordination is everything. There are countless tasks that need to be managed by different committee members to ensure that the event goes off without a hitch. This inspired me to create a tool that would help organize and track these tasks more efficiently. I wanted to make something that would not only help couples on their big day but also let me practice and improve my coding skills. I also built this because this  is a feature we are also planning to introduce for couples on our platform and wanted to test out the best UI for it.&lt;/p&gt;

&lt;p&gt;Starting at Moringa School has been an exciting adventure. Learning JavaScript and applying it to build a full-fledged application has been a steep learning curve. Its been very hard to how to work with arrays especially as well as combining fetch, and functions to build an application that actually works.&lt;/p&gt;

&lt;p&gt;For me, learning to code is not just about building this one app. It’s about equipping myself with the skills to build products faster and better for couples who rely on my startup. Being tech-savvy means I can turn ideas into reality more swiftly and efficiently, making a real difference in the wedding industry.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Features of the Wedding Task Management App&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The app allows users to:&lt;/p&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;• Add, view, and manage tasks for different coordinator roles.&lt;br&gt;
• Assign committee members to specific tasks.&lt;br&gt;
• Mark tasks as completed and move them to a separate section.&lt;br&gt;
• Persist data using localStorage to ensure no information is lost.&lt;br&gt;
• Enjoy a responsive design thanks to Tailwind CSS for a seamless experience across devices.&lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  &lt;strong&gt;Building the App&lt;/strong&gt;&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Setting Up the JSON Server&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To simulate a backend, I used json-server. This made it easy to handle data without setting up a full server. The data in db.json allowed me to focus on the front-end functionality and ensure everything worked smoothly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;HTML Structure&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The HTML file sets up the basic structure of the app, including the navbar, task sections, and modals for adding tasks and committee members.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Styling&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Design is key for me, and I wanted the app to look polished. I used Tailwind CSS for styling. It’s a utility-first CSS framework that makes it easy to create responsive and beautiful designs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Dynamic Functionality with JavaScript&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The core functionality is handled in JavaScript. This includes fetching tasks from the JSON server, adding new tasks and committee members, marking tasks as completed, and saving data with localStorage.&lt;/p&gt;

&lt;p&gt;Building this application was not easy. Managing state across different sections and ensuring data persistence were some of the key issues I faced. However, these challenges were valuable learning experiences that improved my problem-solving skills. It actually took me two days to fix a bug that was not allowing tasks to be fetched from the json server. I almost gave up to be fair but this taught me that coding is not only about building but also debugging. And that debugging sometimes takes time and if you persevere you can always figure it out and make the app work.&lt;/p&gt;

&lt;p&gt;Designing the user interface to be responsive and visually appealing was another critical aspect for me. Using Tailwind CSS made the process smoother, and I learned a lot about creating clean and responsive designs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This project has been a fantastic learning journey, and I’m proud of what I’ve accomplished. It has given me the confidence to take on more complex projects and further develop my skills. If you’re also starting out in coding, I encourage you to dive in and start building. The challenges will only make you stronger, and the sense of accomplishment is unmatched.&lt;/p&gt;

&lt;p&gt;Thank you for reading about my journey. Stay tuned for more updates as I continue to learn and build!&lt;/p&gt;

&lt;p&gt;This format includes suggestions on where to place images within the blog to help illustrate your story and make it more engaging for readers.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
