This boilerplate aims to provide a fullstack single page webapp with mobile application and service worker.
- VUE 3
- vue-class-component
- vue-property-decorator
- ionic
- capacitor
- ExpressJS (and most of popular middlewares like helmet or express-session)
- lodash
- i18next
- typeorm
- sql.js
- localforage
- pg (postgres driver)
- gp-native
- zod
- typescript
- ttypescript
- webpack
- babel
- mocha
- chai
- cypress
- nyc
- eslint
- stylelint
- commitlint
- husky
- lintstaged
- minimal configuration required for linters, tests, builds, compatibility tools,
- automatic api- and database-schema generation with decorators
- code sharing for front-, back- and mobile-end (one codebase)
- api mapping of frontend and backend with DDD (no CRUD)
- possibility of fire-and-forget backend with CQRS and event sourcing
- possibility of classic backend api
- server
- Node.js version 14 or higher
- postgreSQL
- path to postgres bin folder in the PATHS environment
- Web
- Node.js version 14 or higher
- Android
- JAVA 11
- Android Studio version 2020.1 or higher
- An Android SDK installation with api version 22 or higher
- iOS
- Xcode version 13 or higher
- Xcode Command Line Tools
- Homebrew
- Cocoapods version 1.11.3 or higher
- Hardware
- A Smartphone with usb debugging enabled
- Install node js full fledged (with node-gyp and everything node js provides in its installation)
- follow this guide https://capacitorjs.com/docs/getting-started/environment-setup
- make sure you use JAVA in your Android Studio. NOT KOTLIN! Otherwise Java will be missing.
- Install JAVA 11 if missing
- make sure you use JAVA in your Android Studio. NOT KOTLIN! Otherwise Java will be missing.
git clone https://github.com/Eluminati/boilerplate.git name-of-your-project
cd name-of-your-project
npm install
npm run build
- Development
- Server development
npm run dev:server
(currently not available)
- Web frontend development
npm run dev:web
- App development
npm run dev:app
(manually choose platform)npm run dev:app:android
npm run dev:app:ios
- Everything at the same time except app
npm run dev
- Server development
- Build
- Server build
npm run build:server
(currently not available)
- Web frontend build
npm run build:web
- App build
npm run build:app
(manually choose platform)npm run build:app:android
npm run build:app:ios
- Everything at the same time except app
npm run build
- Server build
- Test
- Unit-Tests
npm run test:unit
- E2E-Tests
npm run test:e2e
- Everything sequentially
npm run test
- Unit-Tests
- Scripts are linted by eslint with rules defined in the
.eslintrc
- Styles are linted by stylelint with rules defined in the
.stylelintrc
- Commit messages are linted by commitlint with rules defined in the
.commitlintrc
- The format is:
type(scope?): message #issue
type
can be:build
for updating build configuration, development tools or other changes irrelevant to the userchore
for changes which are not relevant to the build, production or documentation like typos in comments for exampleci
for changes in the CI/CD chaindocs
for changes to the documentationfeat
for a new feature for the user, not a new feature for build script. Such commit will trigger a release bumping a MINOR versionfix
for a bug fix for the user, not a fix to a build script. Such commit will trigger a release bumping a PATCH versionperf
for performance improvements. Such commit will trigger a release bumping a PATCH versionrefactor
for refactoring production code, e.g. renaming a variablerevert
for commits which revert changesstyle
for formatting changes, missing semicolons, etctest
for adding missing tests, refactoring tests; no production code change
- The format is: