# Dont know frontend
This project has as purpose learning about programing with the creation of a E-commerce platform with SPA programming paradigm.
## Techonologies to use
Here we are going to detail all the tecnology we'll use for develop the front end.
* **React:** *for component deployment*
* **Jest** *for testing deployment*
* **sass** *for testing deployment*
* **ES6** *as javascript standarization*
* **Redux** *as data storing library*
* **Typescript** *for javascript typed*
* **Air bnb Tslint rules** *as javascript code normalization*
* **Axios** *for Ajax request*
* **yarn** *as package manager*
## React
Is a library developed by facebook for create SPA ( single plage application ) with the RP (reactive programing) paradigm. This library is highly used by web app developers.
**For learning react**
* [*React Official Documentation*](https://es.reactjs.org/docs/getting-started.html)
* [*React lyfecicle*](https://flaviocopes.com/react-lifecycle-events/)
* [*React youtube reccomended course (Fazt)*](https://www.youtube.com/watch?v=iHqa6ojKnHI&list=PLL0TiOXBeDai6x37_wQwWX6_qNZUM4FBm)
* [*React blog*](https://flaviocopes.com/tags/react/)
## Jest
Is a testing framework for testing javascript code and has dependency which could be vert helful for testing react component and other app logics.
**For Learning Jest**
* [*Getting started*](https://jestjs.io/docs/en/getting-started.html)
* [*Javascript Testing overview*](https://medium.com/welldone-software/an-overview-of-javascript-testing-in-2018-f68950900bc3)
* [*Implementing JEST and Enzyme*](https://www.freecodecamp.org/news/how-to-set-up-jest-enzyme-like-a-boss-8455a2bc6d56/)
## Sass
Is a csss preprocessor which give superpower to css cascade code. Sass do css be like programming language with a lot of complments.
* [*Getting started*](https://sass-lang.com/documentation)
## EcmaScript 6 (2015).
Is the Javascript languaje specification. Those specifications defines the new languaje versions and features, the last scpecification was ES10 (2019).
* [*Introduction*](https://carlosazaustre.es/ecmascript6/)
* [*Features*](http://es6-features.org/#Constants)
## Redux
Is an global state manager for javascript app. It store in memory the data loaded from the api that you will use later and create an global state with all application data in order to feed the app when it requires without requesting the Api again and again..
* [*Getting started*](https://redux.js.org/introduction/getting-started)
* [*Redux course, from the hands of its creator*](https://egghead.io/courses/getting-started-with-redux)
* [*Understanding Redux*](https://www.freecodecamp.org/news/understanding-redux-the-worlds-easiest-guide-to-beginning-redux-c695f45546f6/)
## Typescript
Is typed system to scale javascript code. This make javascript be more refactable and scalable with typed superset for creating interfaces, types, enum, generics, and a lot of feature those do your application cleaner and stable.
* [*HandBook*](https://www.typescriptlang.org/docs/handbook/basic-types.html)
* [*Basics*](https://medium.com/@wittydeveloper/typescript-learn-the-basics-2f56eb9b02eb)
## Tslint
Is an typscript lint code convention that the code has to accomplish to be readable and reliable. Tslint are rules those make you have to use the good practices from javascript languaje. In this project we will use Air bnb tslint rules.
* [*Tslint*](https://www.npmjs.com/package/tslint)
* [*configuring Tslint*](https://palantir.github.io/tslint/usage/configuration/)
[**Axios**](https://github.com/axios/axios)
[**yarn**](https://yarnpkg.com/)