Skip to content
Snippets Groups Projects
Commit 3a324084 authored by Janis Daniel Dähne's avatar Janis Daniel Dähne
Browse files

- initial

- added used frontend frameworks
parents
Branches
No related tags found
No related merge requests found
{
"root": "./docs"
}
\ No newline at end of file
# Used Frameworks
Here are all frameworks listed that are used by YAPEX
If you want to get into YAPEX this is a good point to start
The order is like the order inside `frontend/package.json`
## autoprefixer
Used to auto prefix css e.g. vendor specific prefixes
## awesome-typescript-loader
Used to transpile the typescript files into .js files during webpack bundling
[maybe switch to ts-loader??]
## axios
Used to make XHR requests to the backend (send/receive json data)
It has many options and supports interceptors to modify requests/responses before sending/receiving e.g. we translate the date/time values from backend or for backend before sending/receiving, also some unknown exceptions are catched here
## babel-plugin-recharts
TODO can be removed because we don't use babel??
## copy-webpack-plugin
Used to copy some statis files into the output directory, see `frontend/webpack.config.dist.js`
## crypto-js
Used to encrypt password on the client side before sending
## css-loader
Used to merge all css files into one file
[TODO make clear??]
TODO ref to how css
## diff
Used to calculate the diff inside the console output view
## extract-text-webpack-plugin
[TODO make clear??]
Combined with some other webpack loaders to extract text into one file (e.g. css-loader)
## file-loader
Used to inline some files (into the bundle file)
## file-saver
Used to save blob data on the frontend side (e.g. export exercise, export log)
[TODO watch ref]
## github-markdown-css
Used to style the markdown guides
## highlight.js
Used to highlight the code blocks inside markdown
[TODO watch ref]
TODO ref how to add more langs
## html-webpack-plugin
Used to generate the main html file (entry point) for the app. Because we use splitting we get multiple bundled js files (can be configured), thus we don't know the exact number of js/css files and for cache busting a hash is also added to the bundled files. We use templates (inside `frontend/htmlTemplates/`) to generate a the main html file.
[TODO watch ref]
TODO ref cache busting, bundling
## lodash
Contains some helper functions...
TODO explain how we only bundle the needed functions (special syntax...)
## lodash-es
Used so that we don't need to include the whole lodash lib only the functions we use
[TODO maybe webpack can handle this now without this because this destroys autocompletion!]
## marked
Used to parse markdown
[TODO maybe use markdown-it for custom regions e.g. to include diagrams??]
## moment
Used to deal with dates & times
## mousetrap
Used to deal with keyboard shortcuts
## poststylus
Used to post process stylus files e.g. [autoprefixer](##autoprefixer)
## raw-loader
Used to load .md files (the guides), see `frontend/webpack.config.dist.js`
## react
The primary js framework for the app
## react-ace
React bindings/wrapper for the ace editor in react
## react-color
Used as color picker for e.g. tags
## react-datetime
Used as date/time picker
[TODO search for a better one...]
## react-dom
Core part (??) of react
## react-notifications
Used to show notifications
## react-redux
Redux bindings for react (some helper functions)
## react-redux-typescript
Guide on how to use redux with react & typescript
## react-resize-detector
Used to detect window/component resizing, e.g. inside the multi file editor
## react-router
The router for react
## react-router-dom
Part of `react-router` ??
## recharts
Used for charts, e.g. my assessment site
## redux
Used for application state management
## redux-actions
Some helper functions for redux
## redux-logger
A nice logger for redux
## redux-promise-middleware
Used so that we can use promises as actions
## redux-thunk
Used so that we can chains multiple dispatches??
## semantic-ui-css
Css files of semantic ui
## semantic-ui-react
Semantic ui for react, main ui framework for the app
## source-map-loader
Used to get sourcemaps
## style-loader
Used to load css files
[TODO is this used??]
## stylus
Used to process .style files
[better syntax than less/sass/css, less characters to type]
## stylus-loader
Webpack loader for stylus
## sweetalert2
Used to make nice modals/dialogs
## tslib
Used so that we can target es5, see `frontend/tsconfig.json`
[TODO is this needed?]
## tslint
Used to lint the typescript files
## typescript
Used to transpile typescript files into js files
## typings
Used to manage some typings for typescript
[TODO check if this is still needed, we primarily use @types/ now]
## uglify-js
Used to minify the bundle files
## url-loader
Used to bundle fonts with webpack, see `frontned/webpack.config.dist.js`
[TODO the font stuff is somehow not clean/mystical...]
## webpack
The bundler for the app
## webpack-dev-server
Used to develop the app. The webpack dev server rebuilds the bundle on the fly if we change any files and reloads the browser
---
## Dev dependencies
### redux-devtools
???
[TODO I have no idea, never used]
### tslint-immutable
Rules for tslint for immutability
### webpack-bundle-analyzer
Used to analyze the bundle size
# YAPEX dev docs
# Docs for YAPEX
The dev docs are inside `dev/`
The user docs are inside `user/`
The docs are written as `gitbook`s in `markdown`
In `helpers/` are some helper programs/scripts stored
e.g. to create images, diagrams, ...
## Writing docs
### Indentation
- use tabs
- [everyone can configure the space size of the tabs]
### Paths
- if you write a path enclose it in ` to mark it
- if the path is a directory add a `/` to the path to indicate a folder
- [we don't use `/xyz` because on unix this is ambiguous]
- [we don't use `xyz` because could be a file without a file extension (even though all files should have an extension!)]
### Meta information
- if you want to justify why a decision was made (like the path format) enclose it in brackets []
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment