yogeshtakeo / team-pair-programming

0 stars 0 forks source link

Project 5: Blog Post #9

Open yogeshtakeo opened 1 year ago

yogeshtakeo commented 1 year ago

Building a Server-Side Rendered Blog with Next.js, Contentful CMS, Context API, and JSON Server

Objective

The objective of this task is to build a server-side rendered blog using Next.js, integrate it with a headless CMS like Contentful, and manage state using the Context API. Additionally, we will use a JSON Server to provide static blog data for development purposes.

Task Description

  1. Setup Project and Environment:

    • Create a new Next.js project for the blog.
    • Set up a development environment with Node.js and npm/yarn.
    • Install necessary dependencies for Next.js, Context API, Contentful integration, and JSON Server.
  2. Design and Implement Blog Components:

    • Design and implement React components for the blog layout and individual blog posts.
    • Create a template for displaying blog posts dynamically with their titles, authors, dates, and contents.
    • Ensure responsiveness and aesthetic design for a pleasant user experience.
  3. Contentful CMS Integration:

    • Sign up for a Contentful account (if not already done) and create a new content space for the blog.
    • Set up content models for blog posts, including fields for title, author, date, and content.
    • Use the Contentful web app or API to create sample blog posts in the content space.
  4. Next.js Pages and Routing:

    • Create Next.js pages for the blog index and individual blog post pages.
    • Configure routing using Next.js built-in router to display the dynamic blog post content based on unique identifiers.
  5. Context API for State Management:

    • Implement the Context API for state management in the blog application.
    • Create a context to hold blog post data fetched from the JSON Server and update it as needed.
    • Use the context to provide data to components that require blog post information.
  6. JSON Server for Static Data:

    • Set up a JSON Server to provide static blog data for development purposes.
    • Create a JSON file with sample blog post data and serve it through the JSON Server.
    • Fetch blog post data from the JSON Server and store it in the Context API.
  7. Server-Side Rendering:

    • Implement server-side rendering (SSR) for the blog posts to enhance SEO and initial page load performance.
    • Fetch blog post content from the JSON Server during server-side rendering.
  8. Blog Listing Page:

    • Implement the blog listing page that displays a list of all blog posts fetched from the JSON Server.
    • Ensure pagination or infinite scrolling for an organized and user-friendly browsing experience.
  9. Blog Search Functionality:

    • Add a search bar to allow users to search for specific blog posts by keywords.
    • Implement search logic to filter blog posts based on the entered keywords.
  10. Testing and Debugging:

    • Perform comprehensive testing of the blog application.
    • Test SSR, CMS integration, Context API, and other functionalities to ensure smooth functioning.
    • Use debugging tools to identify and fix any issues or bugs encountered.
  11. Documentation and Presentation:

    • Document the entire project setup, integration with Contentful, implementation of blog features, and state management with the Context API.
    • Prepare a presentation to showcase the server-side rendered blog and its functionalities.
    • Discuss the benefits of using Next.js, Contentful, Context API, and JSON Server for building dynamic, SEO-friendly blogs.

Collaboration

Encourage collaboration and regular communication between team members. Use version control (e.g., Git) to manage codebase changes. Divide tasks among team members based on their expertise and provide opportunities for code reviews and feedback.

ashmaupret100 commented 1 year ago

Name : Ashma Upreti Team Members: Ashma and Dina Github Url: https://github.com/dinakc/Blog-post-nextjs.git

Image

Image

Image

Image

Image

Image

Image

Image

sandessth commented 1 year ago

Name : Sandesh Shrestha Team Members: Namkhang and Sandesh Github Url: https://github.com/sandessth/Blog-Post-NextJS pr-codes2 pr-frontend1 pr-frontend2 pr-frontend3 pr-frontend4 pr-frontend5

Jharanatmg commented 1 year ago

Team 1: Jharana and Kabina GitHub url: https://github.com/Jharanatmg/Blog-Post.git

Image Image Image Image Image Image Image

Image

Image