Hey, let's build simple Blog.
We will start with simple MVP. It will have Posts and Comments features.
State layer should be handled with Redux or similar solution you're experienced with.
Styling recommended to do in CSS in JS library you have experience with, usually, styled-components will be the best choice.
Use React Router in case of React. Other frameworks going to have different routers out of the box.
Pages and Features
Our blog going to have next pages:
- Latest Posts / -- List of all Posts, Post short description, author and publish date
- View Post /posts/:postId -- Post page
- View list of latest Posts
- View specific Post
- Create new comment under Post
- Create / Edit Post * Optional
To persist data and work with real API, we're going to use simple Node.js API created in few minutes. API hosted in cloud and you can query it from anywhere. API endpoints documentation: https://documenter.getpostman.com/view/1917440/RzteTChV
Structure and Code Style
- Split components to Presentational and Container components
- Redux action, reducers, and selectors should be separate from each other. To handle network you can use native browser fetch method and redux-thunk middleware. As another option we prefer is Axios and redux-axios-middleware.
- Check JS code style with ESLint
- Use functional programming if you know how. Ramda.js or lodash/fp is +100 to your score ;)
- ES 6/7 features are very welcome. If you want to use
async / await, pipes etc. go ahead and do it.
The design is up to you. Simple, minimalistic and clean would be nice. As general example check Ghost standard UI.
- Avoid use of jQuery and bootstrap. Native JS and flexbox nowadays solve all you need from these two.
- The code should be clean, passing ESLint checks and simple to understand.
- Task usually takes from 2 to 4 hours. If you need more time, you're good to take it and it's appreciated, but results should be sent no later than 24 hours after the start.
- Challenge code should be uploaded git repository to GitHub or BitBucket. Send us link to the repository right after that. Thanks!
- Challenge should have clean README.md file with details how to run the project.
- Skills to write great business logic evaluated higher than markup or styling.
If you have any questions about challenge details, ask for details, it's appreciated.
Have a good luck and looking forward to working with you!