VilnaCRM-Org / user-service

Creative Commons Zero v1.0 Universal
5 stars 1 forks source link

SWUbanner

User Service

CodeScene Code Health CodeScene System Mastery codecov PHPInsights code PHPInsights style PHPInsights complexity PHPInsights architecture

Possibilities

Why you might need it

The User Service is designed to manage user accounts and authentication within the VilnaCRM ecosystem. It provides essential functionalities such as user registration and authentication, implemented with OAuth Server, REST API, and GraphQL, ensuring seamless integration with other components of the CRM system.

License

This software is distributed under the Creative Commons Zero v1.0 Universal license. Please read LICENSE for information on the software availability and distribution.

Minimal installation

You can clone this repository locally or use Github functionality "Use this template"

Install the latest docker and docker compose

Use make command to set up project

make start

Use make command to automatically install all needed dependencies

make install

Use make command to run migrations

make doctrine-migrations-migrate

Go to browser and open the link below to access REST API docs

https://localhost/api/docs

And using the link below you can access the GraphQL documentation

https://localhost/api/graphql/graphql_playground

Also, you can see architecture diagram using link below

http://localhost:8080/workspace/diagrams

That's it. You should now be ready to use user service!

Using

You can use make command to easily control and work with project locally.

Execute make or make help to see the full list of project commands.

The list of the make possibilities:

all-tests                  Run unit, integration, and e2e tests
average-load-tests         Run load tests with average load
build                      Builds the images (PHP, caddy)
cache-clear                Clears and warms up the application cache for a given environment and debug mode
cache-warmup               Warmup the Symfony cache
changelog-generate         Generate changelog from a project's commit messages
check-requirements         Checks requirements for running Symfony and gives useful recommendations to optimize PHP for Symfony.
check-security             Checks security issues in project dependencies. Without arguments, it looks for a "composer.lock" file in the current directory. Pass it explicitly to check a specific "composer.lock" file.
commands                   List all Symfony commands
composer-validate          The validate command validates a given composer.json and composer.lock
coverage-html              Create the code coverage report with PHPUnit
coverage-xml               Create the code coverage report with PHPUnit
create-oauth-client        Run mutation testing
deptrac                    Check directory structure
deptrac-debug              Find files unassigned for Deptrac
down                       Stop the docker hub
e2e-tests                  Run end-to-end tests
execute-load-tests-script  Execute single load test scenario.
first-release              Generate changelog from a project's commit messages for the first release
fix-perms                  Fix permissions of all var files
infection                  Run mutation testing
install                    Install vendors according to the current composer.lock file
integration-tests          Run integration tests
load-fixtures              Build the DB, control the schema validity, load fixtures and check the migration status
load-tests                 Run load tests
logs                       Show all logs
new-logs                   Show live logs
phpcsfixer                 A tool to automatically fix PHP Coding Standards issues
phpinsights                Instant PHP quality checks and static analysis tool
phpmetrics                 Get mathematical metrics
phpunit-codecov            Get code coverage report
psalm                      A static analysis tool for finding errors in PHP applications
psalm-security             Psalm security analysis
purge                      Purge cache and logs
release                    Generate changelogs and release notes from a project's commit messages for the first release
release-major              Generate changelogs and commit new major tag from a project's commit messages
release-minor              Generate changelogs and commit new minor tag from a project's commit messages
release-patch              Generate changelogs and commit new patch tag from a project's commit messages
setup-test-db              Create database for testing purposes
sh                         Log to the docker container
smoke-load-tests           Run load tests with minimal load
spike-load-tests           Run load tests with a spike of extreme load
start                      Start docker
stats                      Commits by the hour for the main author of this project stop                       Stop docker and the Symfony binary server
stress-load-tests          Run load tests with high load
unit-tests                 Run unit tests
update                     Update vendors according to the current composer.json file
up                         Start the docker hub (PHP, caddy)

Documentation

Start reading at the GitHub wiki. If you're having trouble, head for the troubleshooting guide as it's frequently updated.

You can generate complete API-level documentation by running phpdoc in the top-level folder, and documentation will appear in the docs folder, though you'll need to have PHPDocumentor installed.

If the documentation doesn't cover what you need, search the many questions on Stack Overflow, and before you ask a question, read the troubleshooting guide.

Tests

Tests use PHPUnit 9 and Behat.

Test status

If this isn't passing, is there something you can do to help?

Security

Please disclose any vulnerabilities found responsibly – report security issues to the maintainers privately.

See SECURITY and Security advisories on GitHub.

Contributing

Please submit bug reports, suggestions, and pull requests to the GitHub issue tracker.

We're particularly interested in fixing edge cases, expanding test coverage, and updating translations.

If you found a mistake in the docs, or want to add something, go ahead and amend the wiki – anyone can edit it.

Sponsorship

Development time and resources for this repository are provided by VilnaCRM, the free and opensource CRM system.

Donations are very welcome, whether in beer 🍺, T-shirts 👕, or cold, hard cash 💰. Sponsorship through GitHub is a simple and convenient way to say "thank you" to maintainers and contributors – just click the "Sponsor" button on the project page.

Changelog

See changelog.