Skip to content

wzalazar/reddit

Repository files navigation

Github Actions CI Codecov Status semantic-release

Guide

Bootstrapping

This project was bootstrapped with Create React App, Custom Template, using the Redux and Redux Toolkit template.

Requirements

This project is using nvm. If you use nvm just to execute nvm use for installing the rights NodeJS and NPM version. If you are not a user of nvm, you will be able to check the file .nvmrc

How to run

  $ git clone git@github.com:wzalazar/demo-reddit.git
  $ cd ./demo-reddit
  $ yarn
  $ yarn start

Scripts

script description
start Runs the app in the development mode.
build Builds the app for production.
test Launches the test runner in the interactive watch mode.
lint Lint the project.
semantic-release Generate semantic release, only for CI
codecov Push de coverage to codecov, only for CI

Tracking Tasks

I created a Project board for tracking my tasks.

https://github.com/wzalazar/demo-reddit/projects/1

Decision Making

  • Typescript: I choose typescript due that is a better way to create javascript applications. Is javascript with steroids.

  • Redux: I choose redux due to is the "king" of the state management. Single path of truth.

  • Styled Components: I choose styles-components because I think is the better way for creating isolated components.

  • React Testing Library: I choose testing-library because this brings an effective way of creating an integration test, and resilient tests.

  • Semantic Release: I choose semantic-release for adding versioning in the project.

  • Github actions: I choose Github Actions for adding Quality assurance in the project.

  • Github Project board: I choose the Github Project board due is a great tool for tracking the tasks and have historical progress.

  • Renovate: I choose to use the tool renovate for updating my dependencies, this update will have to pass all tests before the merge.

  • Testing: I choose to create more integration tests over unit tests for covering my project. With the integration test, I'm ensuring the scenarios are working fine with all components.