π WeAreOpenSource Vue 3 - Beta
This project is a Vue 3 stack that can be ran as a standalone FrontEnd. Or in a fullstack with another repo of your choice (ex: Node, Swift).
Quick links :
- Mindset and what we would like to create
- How to start a project and maintain updates from stacks
- Global roadmap and ideas about stacks
- How to contribute and help us
Our stack Vue is actually in Beta.
- Knowledges JS
- Demo (working with Node stack, email: test@waos.me, password: TestWaos@2019)
Subject | Informations |
---|---|
Available | |
Architecture | Layered Architecture : everything is separated in layers, and the upper layers are abstractions of the lower ones, that's why every layer should only reference the immediate lower layer (vertical modules architecture) |
Security | JWT Stateless - have a look on Node stack for more informations |
CI | Github Action |
Linter | ESLint ecmaVersion 10 (2019) |
Developer | Coveralls - Code Climate - Dependency status - Dependabot - Snyk standard-version / semantic-release - commitlint - commitizen - @weareopensource/conventional-changelog |
Dependencies | npm |
Deliver | Docker & Docker-compose |
Being released | |
Testing | Jest WIP |
In reflexion | |
WIP | wip |
- User : classic register / auth
- Tasks : list - add - edit - delete
- Mails Subscriptions : add
Make sure you have installed all of the following prerequisites on your development machine:
- Git - Download & Install Git
- Node.js (10.x) - Download & Install Node.js
It's straightforward (you can use yarn if you want)
git clone https://github.com/weareopensource/vue.git && cd Vue
npm install -g @vue/cli@v4.0.0-rc.4
npm i
npm start
to run a dev server with hot-reloads. Available athttp://localhost:8080/
.
/!\ in order to launch Vue with our node stack, node need to accept CORS. You can specify it in config or like it WAOS_NODE_cors_origin=['http://localhost:8080'] npm start
when you starting node.
npm run build
to build a prod server.
- vue:serve :
npm vue:serve
-> be careful, this bypass config generation of the stack - vue:build :
npm vue:build
-> be careful, this bypass config generation of the stack - test :
npm test
- test e2e :
npm run test:e2e
- test unit :
npm run test:unit
- lint :
npm run lint
- commit :
npm run commit
- release :
npm run release -- --first-release
standard version, changelog, tag & choose version number : -- --release-as 1.1.1 - release:auto :
GITHUB_TOKEN=XXXXX npm run release:auto
semantic release, changelog, tag, release require repositoryUrl conf in package.json - generateConfig :
npm run generateConfig
docker run --rm -p 8080:80 weareopensource/vue
if you want to build yourself : docker build -t weareopensource/vue .
--build-arg WAOS_VUE_api_port=4000
docker-compose (example with Node stack as api)
docker-compose up
The default configuration is : src/config/defaults/development.js
The other configurations : src/config/defaults/*.js
overwrite the default configuration, you can create your own.
We take into account all system environment variables defined under the form WAOSVUE<path_toVariable>. A pre-build npm script turns under the hood those system environment variables into an object, infering paths from the varialbles name, merged to the configuration defined on src/config/defaults
to regenerate the file used src/config/index.js
.
So configuration avalable on src/config/defaults/development
file are overidable. You can for instance define the app name by defining those system environment variables :
WAOS_VUE_app_title='my app =)'
βοΈ Contribute
This work is based on MEAN.js and more precisely on a fork of the developers named Riess.js. The work being stopped we wished to take it back, we want to create updated stack with same mindset "simple", "easy to use". The toolbox needed to start projects, but not only with Node and Angular ...
We dreams to create stacks Backs / Fronts, aligns on feats & Architecture, in multiple languages. This to allow anyone to create fullstack on demand (VueJS, Node, Swift β¦) and keep updates. While exploring resilient and scalable deployment, as well as growth hacking via our articles.
Feel free to help us ! :)