Journey through Frontend, Backend & DevOps || Check-in summary Day 11-20 || 100daysofMiva

TD! - Sep 17 - - Dev Community

For an overview of my first 10 days, click here

Over the past ten days, I've delved deep into various tools and frameworks, with a focus on front-end development using React, transitioning to Next.js, backend integration with Flask, mastering Git, and reinforcing Python fundamentals. Each day has introduced new challenges, insights, and lessons that are pivotal to my growth as a developer. Here's a breakdown of the activities and lessons learned:

Table of Contents

  1. Day 20: Transitioning from React.js to Next.js || Enhancing Frontend and Backend Synergy
  2. Day 19: Step-by-Step Guide to Deploy React Website to GitHub Pages Using GitHub Actions
  3. Day 18: A Comprehensive Guide to Writing JSX in React (with Vite)
  4. Day 17: Challenges I Encountered Configuring Vite for React Routing and Static File Integration
  5. Day 16: Managing Git Repositories || Resolving Branch, Remote, and Commit Issues in a Vite React Project
  6. Day 15: Developing My Personal Website || HTML, JavaScript, jQuery, and AJAX Integration
  7. Day 14: Mastering Python Modules, JSON, Math, and Dates
  8. Day 13: Setting Up Flask for Backend Development || Connecting to a React Frontend
  9. Day 12: Comprehensive Guide to Git Branching, Merging, and Pull Requests
  10. Day 11: Building a Simple Tree View Component in React

Day 20 - Transitioning from React.js to Next.js || Enhancing Frontend and Backend Synergy

The decision to move from React to Next.js was motivated by the desire to streamline full-stack development. With Next.js, server-side rendering (SSR) and static site generation (SSG) offer powerful tools to optimize performance. This transition is enhancing how my React components interact with the backend, and it simplifies routing and API integration. I learned about the core differences between React and Next.js, particularly the advantages of SSR, improved SEO, and automatic code-splitting. In the bigger picture, mastering Next.js will enable me to build scalable web applications with smoother user experiences and optimized performance.

Image of NEXT.js

Summary:

I embarked on transitioning my project from React.js to Next.js. The shift is key to improving frontend-backend synergy through server-side rendering (SSR) and static site generation (SSG). I explored how Next.js optimizes the user experience by pre-rendering pages, ensuring better performance, and enhancing SEO.

Key Lessons:

  • Differences between React and Next.js: Routing, SSR, and SSG.
  • Improved performance with automatic code splitting.
  • Leveraging Next.js for full-stack projects using API routes.

Impact on Future Projects:

This transition opens doors to building scalable web apps where SEO and performance are top priorities. With Next.js, integrating backend APIs and rendering content faster will be a game-changer for large-scale applications.

Day 19 - Step-by-Step Guide to Deploy React Website to GitHub Pages Using GitHub Actions

Deployment is a crucial aspect of any project. On Day 19, I worked on automating the deployment of a React website to GitHub Pages using GitHub Actions. I learned how to configure GitHub Actions to trigger automatic builds and deploy updates whenever code is pushed to the main branch. This process helped me understand the importance of continuous integration and continuous deployment (CI/CD) pipelines, which streamline development and ensure code changes are quickly reflected on live environments. This knowledge is essential for ensuring that my future projects are always up-to-date and can be deployed seamlessly.

Github Actions Pages

Summary:

Deploying React websites has always been a hassle, but today I simplified the process using GitHub Actions. By automating the build and deployment processes, I reduced the manual workload. This taught me about continuous deployment (CD) pipelines, which ensure that my site is always live and updated.

Key Lessons:

  • Setting up GitHub Actions for React deployment.
  • Automating deployment workflows using .yml configuration files.
  • Using GitHub Pages to host static websites directly from a repository.

Impact on Future Projects:

Mastering this deployment process will help me maintain live projects without needing external hosting platforms, ensuring that I can focus on development while GitHub handles the CI/CD aspect.

Day 18 - A Comprehensive Guide to Writing JSX in React (with Vite)

JSX is the syntax extension for React, and understanding it is fundamental to writing efficient and readable React components. I explored how JSX transforms into JavaScript and how to leverage Vite for quicker build times and better developer experience. Key lessons include dynamic component rendering, passing props, and handling events effectively in JSX. Vite, with its fast HMR (Hot Module Replacement), greatly improves the workflow. This has strengthened my understanding of component-based architecture, an essential skill for building modular and maintainable applications.

Image of article

Summary:

JSX lies at the core of React development. Today, I dove deep into writing efficient JSX and understanding how it works behind the scenes. Additionally, using Vite enhanced my workflow, as its fast build process allowed for quicker iterations.

Key Lessons:

  • Structuring JSX effectively for readable and maintainable components.
  • Leveraging Vite’s Hot Module Replacement (HMR) for a faster development cycle.
  • Passing props, managing state, and rendering dynamic content in React.

Impact on Future Projects:

This deeper understanding of JSX, coupled with Vite, allows me to create highly performant, interactive UI components that are quick to iterate on and easy to manage in large-scale applications.

Day 17 - Challenges I Encountered Configuring Vite for React Routing and Static File Integration

Vite offers significant speed improvements, but I encountered issues when integrating React routing and serving static files. Troubleshooting the routing and file-serving setup was an exercise in debugging and configuring build tools. The experience taught me about configuring vite.config.js correctly, handling route redirects, and ensuring static assets like images and CSS are served properly. Overcoming these challenges is critical for larger projects where build tools like Vite will be integral to maintaining efficiency and performance.

Vite webpage homepage

Summary:

Configuring Vite for React presented some challenges, particularly with routing and static file integration. I spent the day troubleshooting routing issues and serving static files like images and stylesheets.

Key Lessons:

  • Configuring vite.config.js to handle static files correctly.
  • Overcoming challenges with React Router in a Vite-powered app.
  • Debugging build issues caused by incorrect file paths.

Impact on Future Projects:

Understanding the intricacies of Vite configuration equips me to handle more complex build setups in the future, ensuring smoother routing and file serving in modern React applications.

Day 16 - Managing Git Repositories: Resolving Branch, Remote, and Commit Issues in a Vite React Project

Day 16 focused on repository management, particularly resolving branch conflicts and managing remotes in Git. I ran into issues related to branch syncing and pushing changes to the correct repository. This day reinforced my understanding of Git's branching model, how to rebase, merge, and resolve conflicts effectively. By mastering these Git techniques, I’m able to work more confidently in collaborative environments, which is crucial for open-source contributions or team projects.

Image of git branching

Summary:

Focused on resolving Git issues related to branches and remotes in a Vite React project. Managing these repositories taught me how to effectively handle commits, rebase branches, and resolve conflicts without disrupting the project’s workflow.

Key Lessons:

  • Creating and switching between Git branches effectively.
  • Handling rebasing, merge conflicts, and commit history cleanups.
  • Best practices for maintaining a clean Git repository in team projects.

Impact on Future Projects:

Effective Git management is essential for any collaborative development effort. These skills will help ensure that my repositories stay clean, organized, and easy to manage, especially in team environments.

Day 15 - Developing My Personal Website || HTML, JavaScript, jQuery, and AJAX Integration

On Day 15, I worked on integrating jQuery and AJAX into my personal website to enable dynamic content loading without refreshing the page. This enhanced user interactivity and site performance. Understanding AJAX allowed me to make asynchronous requests, which is essential for developing responsive web applications. The skills I gained here are applicable to any front-end project that requires seamless communication between the client and server without sacrificing user experience.

Image of website project

Summary:

Building a personal website using core technologies like HTML, JavaScript, and jQuery was a rewarding experience. AJAX integration allowed me to load content dynamically, improving the website’s responsiveness and user interaction.

Key Lessons:

  • Using AJAX to make asynchronous requests without reloading the page.
  • Leveraging jQuery for DOM manipulation and event handling.
  • Structuring HTML and CSS for a responsive, mobile-friendly layout.

Impact on Future Projects:

Mastering AJAX enables me to create more dynamic, interactive web applications. This skill is particularly useful in building SPAs (Single Page Applications) and applications where speed and user experience are critical.

Day 14 of #100DaysOfMiva || Mastering Python Modules, JSON, Math, and Dates

Switching gears to backend development, Day 14 was dedicated to Python. I focused on Python modules, JSON handling, and working with dates and math operations. These skills are particularly useful in backend tasks like data serialization, time-based calculations, and more. Handling JSON is crucial for APIs, as it’s the standard format for transmitting data between frontend and backend. This knowledge is the foundation for building robust, data-driven applications.

Python fundamentals

Summary:

Switching gears to backend development, Day 14 was dedicated to Python. I worked on handling JSON, performing mathematical operations, and managing dates. These core Python concepts are foundational for backend development, particularly when working with APIs.

Key Lessons:

  • Parsing and generating JSON for data serialization.
  • Performing mathematical operations for business logic.
  • Handling date and time effectively in Python.

Impact on Future Projects:

These Python fundamentals are critical for backend logic and API development, enabling me to build data-driven applications that can handle complex computations and date-based functionalities.

Day 13 - A Comprehensive Guide to Setting Up Flask Environment for Backend Development and Connecting It to a React Frontend

Flask is a lightweight framework perfect for building backend services. I learned how to set up a Flask environment and connect it to a React frontend. This involved setting up routes in Flask to serve data to my React components via RESTful APIs. The key takeaway was the importance of creating a clear interface between the frontend and backend, allowing data to flow smoothly. This knowledge is invaluable for full-stack development, where front-end applications need to communicate seamlessly with the server.

Image of development

Summary:

Set up a Flask environment for backend development and connected it to my React frontend. This full-stack approach allowed me to build REST APIs using Flask and consume them in React.

Key Lessons:

  • Setting up Flask routes and serving data via REST APIs.
  • Fetching data in React from Flask using fetch and axios.
  • Managing CORS issues and ensuring secure data transmission.

Impact on Future Projects:

Mastering Flask for backend development and integrating it with React is invaluable for full-stack development. It gives me the ability to build robust web applications that rely on backend APIs for data processing and business logic.

Day 12 - Comprehensive Guide to Git Branching, Merging, and Pull Requests

On Day 12, I deepened my understanding of Git workflows, particularly branching and merging strategies. I practiced creating pull requests (PRs) and merging branches, essential skills for collaborating in team environments. I learned about best practices for creating feature branches, reviewing PRs, and resolving merge conflicts. These skills ensure that codebases remain clean and manageable, especially when working on large projects with multiple contributors.

Image of git branching

Summary:

Focused on mastering Git’s branching and merging model. I explored how to work with feature branches, submit pull requests (PRs), and merge changes into the main codebase.

Key Lessons:

  • Creating, merging, and rebasing Git branches.
  • Submitting and reviewing pull requests.
  • Resolving merge conflicts and keeping a clean commit history.

Impact on Future Projects:

These skills are critical for team-based development, ensuring smooth collaboration and clean integration of code changes. I can now handle Git workflows more effectively in collaborative projects.

Day 11 - Building a Simple Tree View Component in React

React is all about components, and on Day 11, I built a tree view component that allows users to expand and collapse nested items. This exercise taught me about managing component state effectively and optimizing performance when rendering nested elements. Tree views are commonly used in file explorers or data displays, and understanding how to build such components is crucial for developing user interfaces with complex hierarchical structures.

Tree view component in React

Summary:

Built a tree view component in React. This component allows users to explore hierarchical data in a collapsible and expandable format. It’s commonly used for file explorers or data visualization.

Key Lessons:

  • Structuring components to handle nested, hierarchical data.
  • Managing component state for dynamic rendering.
  • Optimizing performance when rendering nested elements.

Impact on Future Projects:

Building dynamic UI components like the tree view prepares me for more complex user interfaces where data hierarchies are displayed, such as file browsers or nested menus.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player