Code Monkey home page Code Monkey logo

week2-assignment's Introduction

Week 2 Assignment

Getting Started

  1. Fork this repository
  2. Clone the forked repository to your local computer.
  3. Setup your application
    # Make sure you run this command inside the week2 folder. Check via `pwd`
    # Not doing so may cause the create-react-app command to fail
    pwd
    # /path/to/week2-assignment
    create-react-app blog-homepage
  4. Ensure you can run your dev server
    cd blog-homepage
    npm start

Overview

For this assignment, you'll be creating a blog UI using React. We're going to focus on creating the UI elements for now, but the "Bonus" section has additional tasks you can try out to add some interactive elements.

Requirements

Recreate the provided screenshot from Medium.

Medium screenshot

Ensure that your UI meets the following criteria:

  • Renders the provided data using React components.
    • Copy the JSON files in the _data folder into your project folder. Import them into a component like so (path may vary):
      import missedArticles from './missed-articles.json';
    • Data that should be rendered on the page includes:
      • "For you" section
      • "In case you missed it" section
      • Articles with
        • Image
        • Title
        • Description
        • Author picture/name
        • Article date
        • Article length
        • Bookmark
        • "Audio available"
        • "Member preview"
    • The green author outline (present if the author is a Medium member) is optional
  • Uses React components that...
    • Are modular/reusable.
      • At the very minimum, this means the "Article" should be a component.
      • Ideally, you should subdivide the Article into more components.
    • Use the appropriate loops/conditionals to map and display components.
    • Use propTypes to define props.
  • Looks "close enough" to the original screenshot.
    • Focus more on the React components first, then follow up with styling. We're really just ensuring that you know how to define and import a CSS file for this assignment.

Submission

  1. In order for a valid submission, your app should run and display a UI when running npm start. Please be mindful of any lint or console errors and clean those up before submission.
  2. Create a pull request to this repository. There will be no CI.

Bonus

  • Make each card clickable. Upon clicking a card title/description/image, the browser should open the link for the article.
  • Make each bookmark component clickable. Upon clicking a bookmark, the bookmark icon should turn green. Clicking the bookmark again will reset to the original state (no color). It's recommended to use React state to implement this behavior.

week2-assignment's People

Contributors

bhague1281 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.