A Vue.js project
- SCSS is used with BEM on each component
- Airbnb linter is also used for code writting
- Axios => used for API calls
- Lodash => use for filtering and Obj management
- VueX => Store of Vue to share data between component
component
folder: contains all the components of the project, the sub folderwidgets
has minor elements which can be reused in different componentsconfig
folder: has a config fill with the different API information requiered (url / PUBLIC key) and a CONST files (which could definitely be breakdown). But at least no magical string throught the appcss
folder: which contains the reset file and the variables and the genral main css rules of the Approuter
folder: Contains the files with the different route to navigate through the Appservices
folder: the apiMapper file return the different Promise needed for the component API callsstore
folder: this is where we share the data through different components, also use to store API request and reuse them (Well not really currently, but didn't have enough time :( )
- Review the router structure to load 2 differents components when we want to load single view or a listing
- breakdown the structure of a Tile component to split with characters and comic
- create some animation when the content load to make the navigation smoother
- Create a pagination for the listing
- Make properly work the single view when the store has the data for single view and not trigger an API request
- Make links in the related characters of a comic and vise versa point to a single view. As an other entry point
- Merge the procedure of API call to don’t duplicate code. Now the code look the same again and again, it's not nice at all
- Make error handling better, improve the type of error display
- Create a error page in case the user access to an unexisting page
# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
# build for production and view the bundle analyzer report
npm run build --report
# run unit tests
npm run unit
# run all tests
npm test
For a detailed explanation on how things work, check out the guide and docs for vue-loader.