This is a CV builder app by Hazem. W
- You need to have
git&yarninstalled in your machine.
- Dowload the project from Github.
- Go to the main folder and hit
yarn installto install the dependencies.
reach-routerfor routing.axiofor API requests.react-semantic-ui&bootstrapfor UI.i18nextfor managing the app languages.prop-typesfor type checking.react-toastifyfor notification.reduxfor state management.redux-logger&redux-thunkas redux enhancers.redux-formfor managing the forms.
src/actions/for redux action methods.src/api/for everything related to API calls, URLs.src/components/for all general components 'both class & functional'.src/constants/for all constants e.g. route names, actionTypes, global strings 'tokenName' ...etc.src/form/for general and reusable forms, form validators, formNames, andform rendering files.src/helpers/for helper functions e.g. localStorage related methods, strings, numbers, ...etc.src/reducers/for reducers.
- So far, two langaues are supported
tr&en. All languages related files must reside underpublic/locales/, each language should have a seperate folder. - There is a naming convention for the folders e.g.
trrufr... etc. - Under each language folder there is a file named
translation.jsonthat contain the (key, value) pair used in translation. - I used I18N Manager to easily manage the inter-languages translations.
- You can use
WithTranscomponent to translate what you want by passingkeywordprop as string,varsas object for variabes in the translation text. - The code is able to detect your language configuration and set the proper one intially.
- For more info visit I18Next
- In the implementation I followed:
Container Viewer Patternto split manipulating the state from the view layer for easier debugging and more resusable components.Decorated Componentsto wrap the components withreduc-form.
- It's a general file used for global styling, colors, font sizes, ...etc.
- For this purpose, you can add your own
CSScode inindex.cssorapp.css.