VueJS Vuetify Vue Router Vuex - Basic Project Skeleton
Getting started
This is a basic VueJs, Vuetify, Vue Router and Vuex skeleton written on JavaScript using async/await. Great for building a starter web app.
This project is created to help other developers create a basic VueJS app in an easy way. This basic example shows how powerful and simple JavaScript and VueJS can be. Do you want to contribute? Pull requests are always welcome to show more features.
Buy me a coffee
Hi! I'm Daniel Avellaneda, I'm an open source enthusiast and devote my free time to building projects in this field.
I'm the creator and maintainer of node-express-mongodb-jwt-rest-api-skeleton and vue-skeleton-mvp
These projects are a "starter web app kit" for any developer who wants to build their own app without starting from scratch: API + Frontend
Both projects have been downloaded thousands of times by web developers around the world.
I'm doing my best to provide you a good experience when using my apps, so if you like what I'm doing and wish to say "thanks!", please buy me a coffee
Feel free to send me a tweet https://twitter.com/davellanedam, share this with others or make a pull request
Features
- Vuetify
- Multiple environment ready (development, production).
- Vue router
- Vuex
- i18n ready.
- Google Analytics ready.
- Ready to add to home screen in iOS and Chrome, checks if there´s an app update every 2 hours and reloads page (When a web app is added as stand alone there´s no reload button in the browser so new .js files from a new build never get loaded)
- Landing page.
- Protected home page.
- Login.
- Signup.
- Forgot password.
- Account verification.
- User profile.
- Users admin area with CRUD operations.
- Cities admin area with CRUD operations.
- Testing with Cypress and mocha/chai.
- NPM script for keeping good source code formatting using prettier and ESLint.
- Use of ESLint for good coding practices.
- Use of prettier for beautiful format.
- Ability to refresh token
- JWT Tokens, make requests with a token after login with
Authorization
header with valueBearer yourToken
whereyourToken
is the signed and encrypted token given in the response from the login process.
Demo
A demo of this Frontend is located at: https://vue-demo.daniel-avellaneda.com
Login credentials
email: admin@admin.com
password: 12345
IMPORTANT: Database resets every 30 mins like "12:00am, 12:30am, 1:00am" and so on. So anything you do will be lost after a short time.
Demo is also linked to a Node.js express.js MongoDB JWT REST API project that shows how this frontend can be integrated to an API.
Repo is here: https://github.com/davellanedam/node-express-mongodb-jwt-rest-api-skeleton
Running demo is here: https://api-demo.daniel-avellaneda.com
How to install
Using Git (recommended)
- Clone the project from github. Change "myproject" to your project name.
git clone https://github.com/davellanedam/vue-skeleton-mvp.git ./myproject
Using manual download ZIP
- Download repository
- Uncompress to your desired directory
Install npm dependencies after installing (Git or manual download)
cd myproject
npm install
npm update
VERY IMPORTANT
This project uses Vue Router HTML5 History Mode, this means when you are in development mode you can hit Cmd+R (mac) or F5 (Windows) to reload the page and it will work, but when the project is built you will have problems, so will need to do a small change in your web server to make that work. Please read the official Vue Router documentation here: https://router.vuejs.org/guide/essentials/history-mode.html#example-server-configurations
Compiles and hot-reloads for development
npm run serve
Compiles and minifies for production
npm run build
Run your tests
npm run test
Lints and fixes files
npm run lint
Formatting markdown files
npm run remark
Run your end-to-end tests
npm run test:e2e
Run your unit tests
npm run test:unit
Customize configuration
Bugs or improvements
Feel free to report any bugs or improvements. Pull requests are always welcome.
License
This project is open-sourced software licensed under the MIT License. See the LICENSE file for more information.