Everyone is more than welcome to contribute to this project! That's what open source is all about!
In the following, we try to provide some help and guidance on how to participate, contribute and develop on the project.
Table of content:
- 1. Raising an issue or feature request
- 2. Project Setup & Development
The simplest way to contribute to the project is to use it!
Whenever you encounter any issues or missing features while using the project, please create a GitHub Issue in this project and describe what you found or what you need. To help you with this, we provide several templates to help and guide you through the issue creation.
If you are interested in getting your hands dirty, the following subsections provide information and instructions for the setup of your local development environment.
VSCode + Volar (and disable Vetur) + TypeScript Vue Plugin (Volar).
TypeScript cannot handle type information for .vue
imports by default, so we replaced the tsc
CLI with vue-tsc
for type checking. In editors, e.g. for VSCode we need TypeScript Vue Plugin (Volar) to make the TypeScript language service aware of .vue
types.
npm install
Please be aware that some browser allow access to the cameras only if the website uses https. Therefor we are using mkcert. See this chapter for more details.
npm run dev
Or if you want to access the application from you mobile device while developing:
npm run dev-network
2.2.3 Lint with ESLint
# Shows errors
npm run lint
# Fixes errors
npm run lint:fix
npm run build
As some browsers only allow camera access on websites that were transferred via HTTPS we need for development purposes also HTTPS. To make it simple for the developer, we are using mkcert which was made to use one local Certificate Authority (CA) for all local development projects.
As we are using vite for hosting our local development server, we are also using the vite-plugin-mkcert to configure and set up mkcert.
As the project is mostly focusing on mobile applications, we would also need to allow/accept the local self-signed certificates on our mobile devices. The vite-plugin we are using provides a good guide on how to do this: https://github.com/liuweiGL/vite-plugin-mkcert#mobile-devices
A sandbox environment has been set up for development purposes. You can find it in the /sandbox
folder and in the index.html
.
The development is orientated on GitHub flow. Therefore every source code contribution needs to be provided through a GitHub Pull-Request against the main
branch.
Releases will be made by tagging a specific commit on the main
branch. For the versioning we are using the Semantic Versioning Schema:
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes
- MINOR version when you add functionality in a backwards compatible manner
- PATCH version when you make backwards compatible bug fixes
Sometimes it's happening that security issues appear in older releases. Regarding the fact that the community behind this project is not very large, we are not able to provide patches for each release we have ever published. Therefore, we will only maintain the latest minor version with security patches and bug fixes!