madlabsinc / mevn-cli Goto Github PK
View Code? Open in Web Editor NEWLight speed setup for MEVN(Mongo Express Vue Node) Apps
Home Page: https://mevn.surge.sh
License: MIT License
Light speed setup for MEVN(Mongo Express Vue Node) Apps
Home Page: https://mevn.surge.sh
License: MIT License
Update the file hierarchy in docs according to the latest changes.
Here's the file to work with: File Hierarchy Section
Currently gitRepo.js validates whether git
is installed within the user's machine and prompts to type in (Y/N) such that if it should continue with the installation or not.
It should be replaced with a confirm dialog as supported by
inquirer
On firing in mevn init <webapp>
the user is presented with a list of available commands where it shows up mevn-cli
instead of mevn
Update all the instances of mevn-cli
with mevn
This is the file to work with: initlib
Clean up the code as per JShint linter rules.
The package execa
has so many updates and deprecated options.
Shouldn't this be updated?
Add a footer section comprising of the license (MIT) and copyright information.
Replace the current docker image name, mhart/alpine-node:10 with nginx (latest version) on the Dockerfile present in client directory.
Code base requires proper comments such that it will help make the code base more easy to ready
and more over help new contributors to get started easily
Hi,
I have some doubts regarding the mevn.json file.
If I'm not wrong, the mevn.json file contains info regarding a particular project. Then why is it outside of the project directory, shouldn't it be inside the project directory since it is specific to it?
Due to the placement of mevn.json file outside the project directory, the user cannot create more than one project in the same location. Also, due to this, the user currently has to execute project-specific commands (like create: component, etc) outside of the project directory, ideally those commands should be called within the specific projects.
May I know the reason and thought process behind the placement of mevn.json file?
Thank you.
Repeated execution of server commands like:-
mevn-cli create:controller
mevn-cli create:route
...
will create the file but the repeated execution of these commands will note prompt warnings like
"The file already exist and do you wish to create anyway" and receiving user input as yes/no.
Currently, the user can only have the basic template if he chooses Nuxt-js
from the list.
It should be made such that the user will be prompted whether he/she requires pwa
support after making the selection as mentioned above.
See these guidelines
There is an action handler for each command. You can also find a couple of helper functions consumed by the respective handler. We need to write unit tests to ensure that the helpers serve their purpose.
With this we plan to create a ui for MEVN-cli tool which will help developers to add packages and integrations, basically execute different commands used in cli via a ui which would be running locally.
We're gonna follow commitlint standards while framing up the commit messages.
Refer these guidelines.
commitlint-cli
as a dev-dependency
.pre-commit
hook with husky
.Prisma replaces traditional ORMs and custom data access layers with a universal database abstraction used via the Prisma client. It provides Type-safe database access including filters, aggregations, pagination and transactions.
The necessary configurations is to be automated as required.
Ask the user whether he requires passport middleware for authentication and install the required dependencies.
Separate each section of the docs into individual pages and render them only when clicked.
Here's the file to work with: README.md
Currently the user is welcomed with 3 options (Boilerplate):
As a fourth option provide support SSR capability with
Nuxt-js
Further he/she should be prompted to go with either Universal
/ SPA
Add prompts such that user is required to decide whether he/she require any sort of test runners (Jest, Ava, Mocha) for the project and automate all further installation procedures.
This is the file to work with: init
Ask the user whether he requires axios to link up the client and server part. If so, add the required dependencies and couple of boilerplate code.
Currently MEVN-cli
only supports MongoDB and with this addition we could expand it to allow integration for SQL Databases. Also, the necessary configurations for ORM's like sequelize
is to be automated.
For now the server part supports only traditional RESTful API which has to be extended with GraphQL.
Currently gitRepo.js comprises of nested callbacks making the code ambiguous. It has to be replaced with a promisified approach.
Use async/await and promises
Check out herokuDeployjs
Add appropriate contributors guide, listing out the steps involved.
Provide support for vuetify
client plugin as required by the user.
Add Gifs within the Docs part demonstrating each command with description for each section.
Various sections may comprise:-
Add appropriate content listing out inspirations. You can find a docs
directory with a Readme.md
file. Just have your changes there ๐
As per now what we have is just the documentation part done in vuepress. We require a homepage that will serve the purpose of an intro section having a brief description of the tool.
For this you are required to work with the README.md
file within docs
directory.
The vuex
package can be added via the add:package
command. It creates a store.js
file with the initial boilerplate within client/src
directory.
The new store.js
file has to be imported and passed on to the Vue instance. Importing store file is already done which still is not that perfect. If the same command is being repeatedly executed, content repeats (import store from './store'
) within the main.js
file which has to be handled. Also, the store being imported has to be passed in as an arguement within the Vue instance.
This is a typical main.js file:-
import store from ./store;
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
Vue.config.productionTip = false
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'
})
Currently, mevn deploy
expects to have access to heroku
within the machine. The process crashes with a default message if otherwise.
Handle the failing case such that a custom message is shown instead. Also, there should be a prompt asking the user if he/she should get it installed (Y/N) and go forward with the installation.
Ask the user whether he would require pre-available validation plugins like vee-validate and add those dependencies.
Presently, mevn-cli init
doesn't warn if the user gives in special characters for the ProjectName.
It should follow the npm package naming conventions
Add required command, for instance mevn-cli generate:component <new_component>
This command should help developers to create a vue-component in the front-end inside the components folder.
Set up vue-apollo to integrate GraphQL within the client part.
Currently, mevn create:git-repo
expects to have access to git
within the machine. A default error message is thrown.
Handle the failing case such that a custom message is shown instead. Also, there should be a prompt asking the user if he/she should get it installed (Y/N) and go forward with the installation.
Linux/Mac
Replace all occurrences of mevn-cli
with mevn
Here is the file to work with: README.md
Currently, Mevn-CLI
supports only express.js
when it comes to the Node.js framework. But there are other frameworks growing in popularity just like Hapi.js
, Sails.js
etc.
Add provision for adding code linters (Jshint, Jslint, Eslint etc.) and prettier
(code formatter) as required.
Add mevn-cli deploy
command that deploys the web-app to heroku
Add a section that throws light into the overall view of the project structure.
This may include the various directories and files included in a hierarchical manner.
Add changelog (version-history
) to the Docs listing couple of recent commit history.
Migration from webpack v3
to v4
requires a lot of manual configurations which has to be automated with a particular command.
Server Commands
section.General Commands
to Available Commands
.Available Commands
.mevn run client/server
to mevn serve
This is the file to work with: README
Refer Repo Readme
The user should be able to code split a particular component as specified using dynamic imports.
For instance, mevn-cli codesplit <component>
should change the content within the routes file of the respective component to the code splitting way.
Currently, mevn dockerize
expects to have access to docker-compose
within the machine. It crashes yelling that docker-compose
not found which is a default message as thrown by the system.
Handle the failing case such that a custom message is shown instead. Also, there should be a prompt asking the user if he/she should get it installed (Y/N) and go forward with the installation.
Linux/Mac
All the dependencies such as vue-router
has to be linked up on prompting the user whether he would require it or not.
Provide support for testing components in isolation (Unit-Testing)
Update docs with the following content:
mevn-cli init <your_new_webapp>
mevn-cli run:client
mevn-cli run:server
Make the provision to add state management within the client part which asks the user whether he would require vuex for the current project.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.