I am happy that you want to contribute to Pocket ID and help to make it better! All contributions are welcome, including issues, suggestions, pull requests and more.
You've found a bug, have suggestion or something else, just create an issue on GitHub and we can get in touch.
Before you submit the pull request for review please ensure that
-
The pull request naming follows the Conventional Commits specification:
<type>[optional scope]: <description>
example:
feat(share): add password protection
Where
TYPE
can be:- feat - is a new feature
- doc - documentation only changes
- fix - a bug fix
- refactor - code change that neither fixes a bug nor adds a feature
-
Your pull request has a detailed description
-
You run
npm run format
to format the code
Pocket ID consists of a frontend, backend and a reverse proxy.
The backend is built with Gin and written in Go.
- Open the
backend
folder - Copy the
.env.example
file to.env
and change theAPP_ENV
todevelopment
- Start the backend with
go run cmd/main.go
The frontend is built with SvelteKit and written in TypeScript.
- Open the
frontend
folder - Copy the
.env.example
file to.env
- Install the dependencies with
npm install
- Start the frontend with
npm run dev
You're all set!
We use Caddy as a reverse proxy. You can use any other reverse proxy if you want but you have to configure it yourself.
Run caddy run --config reverse-proxy/Caddyfile
in the root folder.
We are using Playwright for end-to-end testing.
The tests can be run like this:
- Start the backend normally
- Start the frontend in production mode with
npm run build && node build/index.js
- Run the tests with
npm run test