Skip to content

A content and comment web app using React and Redux

Notifications You must be signed in to change notification settings

DeekshaPrabhakar/readable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Readable Project

Is a content and comment web app. Users will be able to post content to predefined categories, comment on their posts and other users' posts, and vote on posts and comments. Users will also be able to edit and delete posts and comments.

Why this project?

This content and comment structure is common across a large number of websites and applications, from news sites to blogs to aggregators like Hacker News and Reddit. By building this project, you will gain an understanding of how Redux can function in a standard type of application.

Walkthrough

Readable Walkthrough

Project Specifications

You will start with local backend development server.

The server is built in Node, but it is very simple. You won't need to edit the server code; instead, your code will talk to the server using documented API endpoints. You can use the server's endpoints to manage storing, reading, updating, and deleting data for your application.

Using this server, you will build a React/Redux front end for the application.

Required

Application Setup

  • Application easy to install and start.
    • install all project dependencies with npm install
    • start the development server with npm start
  • Application includes README with clear installation and launch instructions

Views

Your application should have, at a minimum, four views:

Default (Root)
  • should list all available categories, which should link to a category view for that category
  • should list all of the posts ordered by voteScore (highest score first)
  • should have a control for changing the sort method for the list, including at minimum, order by voteScore and order by timestamp
  • should have a control for adding a new post
Category View
  • identical to the default view, but filtered to only include posts with the selected category
Post Detail View
  • should show the details of a post, including: Title, Body, Author, timestamp (in user readable format), and vote score
  • should list all of the comments for that post, ordered by voteScore (highest first)
  • should have controls to edit or delete the post
  • should have a control to add a new comment.
  • implement comment form however you want (inline, modal, etc.)
  • comments should also have controls for editing or deleting
Create/Edit View
  • should have a form to create new post or edit existing posts
  • when editing, existing data should be populated in the form

Post/Comment UI

  • Posts and comments, in all views where they are displayed, should display their current score and should have controls to increment or decrement the voteScore for the object.
  • Posts should display the number of comments associated with the post.

Specific Requirements

Use React to build your application UI. Remember that composition is key. It’s rarely a mistake to break a component into smaller pieces. Look for opportunities to reuse your components. We recommend using create-react-app to bootstrap your project, but it is not required for this project.

While the focus (and specification) of this project is based on functionality, rather than styling, please ensure that your app is presentable and easy to navigate.

Use Redux to manage your application state. This includes all user actions and responses from the API server. You may use component state to handle form input fields and controlled components. Otherwise, the rest of the state for your application should be controlled by your reducers.

Create React App

This project was bootstrapped with Create React App. You can find more information on how to perform common tasks here.

Acknowledgements:

Contributions

Please submit a pull request with a description of the feature/fix.

License & Copyright

MIT License

Copyright (c) [2017] [Deeksha Prabhakar]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

A content and comment web app using React and Redux

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published