Git Product home page Git Product logo

crud-vuetify-structured-template's Introduction

crud-vuetify-structured-template boilerplate

GitHub issues GitHub stars GitHub license code style: prettier

πŸ’» A full-featured Vuejs + Vuetify + Great structure project template + API Ready

πŸ‘‰ It's using latest VueJS 2 and Vuetify 2

VueJS 3 + Vuetify 3 + Vite is coming soon 😎

Requirements

It's exactly the same as the VueJS projects, basicly you'll need a NodeJS installation. Check the links below out for more details:

Quick start

$ npm i -g @vue/cli-init
$ vue init huogerac/crud-vuetify-structured-template my-project
$ cd my-project
$ npm install   # Or yarn
$ npm run dev   # See the package.json / scripts

Note: The npm run dev will run the api mock and vuejs server, check the package.json out for running separeted which one.

Why using this boilerplate ❓

  • Focus on the business and creating value
  • Faster project setup
  • Standard project structure organization (easy to scale)
  • Easy to remove / rename features
  • DRY (I was doing those setup steps over and over again)
  • I don't want to be backend API dependent (Faster development using API Mocking)

What's Included πŸŽ‰

  • VueJS (2) + Vuetify configured
  • Page inheritance (Layout)
    • Home Task's list
    • Create, Update and Delete Task
    • Error pages (404, 500)
  • Vue Router to be scalable
  • API Ready (using Axios)
  • API Mock (using json-server)
  • Pure components
  • Linter + Code style (Prettier)

Structure

β”œβ”€β”€ apiMock                πŸ‘‰ The sub-project for the API mock
β”‚Β Β  └── server
β”‚       db.json            πŸ‘‰ The API data (mock)
β”œβ”€β”€ public
β”‚     favicon.ico
β”œβ”€β”€ package.json           πŸ‘‰ Project/Package Manifest
β”œβ”€β”€ .prettierrc.js         πŸ‘‰ Code Style
β”œβ”€β”€ .env                   πŸ‘‰ Set environment var for development
└── src
    β”œβ”€β”€ router             πŸ‘‰ #1 App routes
    β”‚   β”œβ”€β”€ index.js
    β”‚   └── tasks.api.js       πŸ‘‰ Routers by context
    β”œβ”€β”€ pages              πŸ‘‰ #2 App pages (App pages/views)
    β”‚Β Β  β”œβ”€β”€ layouts            πŸ‘‰ Pages bases
    β”‚   β”‚   └── Public.vue
    β”‚Β Β  └── public             πŸ‘‰ Pages by context
    β”‚       β”œβ”€β”€ 500.vue
    β”‚       └── Home.vue       πŸ‘‰ VueJS "SMART" components
    β”œβ”€β”€ components         πŸ‘‰ #3 VueJS "DUMP" components
    β”‚Β Β  └── visual             πŸ‘‰ Pure components**
    β”œβ”€β”€ api                πŸ‘‰ #4 API folder
    β”‚   β”œβ”€β”€ index.js
    β”‚   └── tasks.api.js       πŸ‘‰ API endpoints by context
    β”œβ”€β”€ mixins             πŸ‘‰ Anything used cross components
    β”‚   └── ApiResponse.vue
    β”œβ”€β”€ filters            πŸ‘‰ VueJS template filters
    β”‚   └── dateFilter.js
    β”œβ”€β”€ assets
    β”‚   └── some-image.jpg
    └── plugins
      └── vuetify.js

Screenshots

Contribute πŸš€

Any help is more than welcome...

  • πŸ‘‰ It could be an Issue
  • πŸ’» It could be using it and give a feedback
  • 🌟 It could be a github star
  • πŸ€” It could be a question ( Use the Issues )
  • πŸ€” If you hate this project, feel free to tell us what is wrong with it

Alternatives βš™οΈ

  • If you know great vuejs project templates, please, add it here

Extra Documentation

crud-vuetify-structured-template's People

Contributors

huogerac avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

crud-vuetify-structured-template's Issues

General Refactoring

Tips from @luizotcarvalho

  • Explain the .env in the README
  • Remove or rename the visual folder inside Components which doesn't make sense at all
  • The extractErrorFromResponse should be an interceptor
  • Make all imports the same way, some of them are using '@/...' others using '../...'
  • Make all components "dumb", the pages components should only call the API

Simulate a slow network

Having a slow network, we'll need:

  • progress bar in the task list
  • progress bar in the save button
  • review all api endpoints calls

Add some frontend test

  • find a great unity or e2e test framework, is cypress a good one?
  • write at least 1 test to help the development
  • create a npm run test entry inside the package.json
  • add some documentation about the tests

Criar categoria de anotaçáes

Seria interessante tentar permitir que o usuÑrio agrupe suas anotaçáes por tema ou por categoria, por exemplo: Trabalho, Estudos, Tarefas, Projetos, etc.

Mais pra frente tambΓ©m poderia permitir que o usuΓ‘rio tambΓ©m consiga escolher uma cor para o card(isso reproduziria o google keep) ou para os cards numa categoria (isso o google keep nΓ£o tem ^^)

Espero que goste das ideias, e desejo sucesso nos estudos e no desenvolvimento do projeto.

Gostaria tambΓ©m de parabenizar vocΓͺs pela iniciativa, tΓ‘ muito bom o design e bem interativo!

Add createAt and updatedAt inside the MockApi

  • When we add task inside a real backend API, it should create/update the fields createdAt and updatedAt automatically
  • Using the json-server, it's possible to do this as soon the id is auto populated

Test it on windows

It'd be amazing if someone could:

  • test it on windows
  • add what's difference in the usage and installation
  • please, update the README

Change the Task.dueTo from string to string datetime field

  • [Task create] [Task update] Using the Vuetify UI componente, it'd be nice openup a date picker to choose a due to date.
  • [Task list] Show the due to date in the main page (it should use or add a VueJs filter). It might add the filters folder inside the structure

Run linter before git push

Check if the lint-staged works:

"devDependencies": {
    ...
    "lint-staged": "^8.1.5",
  },
  "gitHooks": {
    "pre-commit": "lint-staged"
  },
  "lint-staged": {
    "*.{js,vue}": [
      "vue-cli-service lint",
      "git add"
    ]
  }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.