- Install dependencies
npm install
- Deploy Front App
npm run dev-front
- Deploy Back App
Launch a mongoDB and then:
npm run dev-back
If you need to restart the server:
rs
- chemistry-ui as local dependency (for development and testing)
"npm link" is useful, but there're some issues regarding having different "react" and "react-router-dom" instances.
To solve this, you can execute this bash script that will perform the correct linking:
(Note: You can use Git Bash to be able to execute that in Windows)
sh link.sh
- Launch Jasmine (Unit Tests)
npm run utest
- Launch Cypress (Functional Tests)
npm run dev-front
Launch without ui
npm run ftest
Launch only a spec
npm run ftest-spec cypress/integration/[spec-file-name].spec.js
Launch with ui
npm run ftest-ui
- Build
npm run build
-
When the App is launched, real data como from node.js server.
-
When Cypress Tests are launched, fake data is used from randomized JSONs.
-
React
-
Node
-
MongoDB
-
Babel (compilation)
-
Webpack (bundling)
-
Jasmine: Unit Testing Tool
-
Cypress: Integration Testing Tool
-
Chemistry-UI: my own Components Library, based on Material-UI.
-
Prettier, ESLint (code style tools, based on airbnb conventions), Husky (pre-commit automated formatting tool)
-
Heroku: deploying free site for this App Demo
-
A pre-commit has been added to this repository to help maintain a coherent code style, even if new developers were added to this project in the future.
-
Literals are not hardcoded but instead passed down to components by props in order to implement a multilanguage support system in the future.
-
A random number and string generator has been added to Cypress Tests in order to garantee that different data will fit correctly on the UI (for example, this simulates the effect of having different languages).
-
Build and unit tests are executed on the CI in GitHub with every push to master and pull request.
-
Logo created by Marta Ximenis
-
Favicon formatted from logo with favicon-generator
-
Editor's choice banner from original image, which is under Pixabay License, free for commercial use
-
Fake room image from pixabay