{"id":14965581,"url":"https://github.com/contributte/webapp-skeleton","last_synced_at":"2025-05-16T10:05:36.005Z","repository":{"id":37807755,"uuid":"141758009","full_name":"contributte/webapp-skeleton","owner":"contributte","description":"🎁 Web application project skeleton based on Nette Framework (@nette), Doctrine (@nettrine) and Contributte (@contributte) libraries by @f3l1x.","archived":false,"fork":false,"pushed_at":"2025-03-29T09:06:22.000Z","size":2823,"stargazers_count":95,"open_issues_count":5,"forks_count":20,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-09T04:05:28.273Z","etag":null,"topics":["api","apitte","contributte","nette-framework","nettrine","project","skeleton","web"],"latest_commit_sha":null,"homepage":"https://examples.contributte.org/webapp-skeleton/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/contributte.png","metadata":{"funding":{"github":["f3l1x"],"custom":["https://contributte.org/partners.html"]},"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-20T21:07:43.000Z","updated_at":"2025-04-06T14:38:36.000Z","dependencies_parsed_at":"2023-09-23T16:17:05.466Z","dependency_job_id":"69e3b293-2968-413f-97aa-7d8372d17058","html_url":"https://github.com/contributte/webapp-skeleton","commit_stats":{"total_commits":546,"total_committers":18,"mean_commits":"30.333333333333332","dds":0.336996336996337,"last_synced_commit":"45ee08b3021ae54d1503371f0e4f69709e18f0d0"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contributte%2Fwebapp-skeleton","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contributte%2Fwebapp-skeleton/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contributte%2Fwebapp-skeleton/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contributte%2Fwebapp-skeleton/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/contributte","download_url":"https://codeload.github.com/contributte/webapp-skeleton/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254509476,"owners_count":22082891,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","apitte","contributte","nette-framework","nettrine","project","skeleton","web"],"created_at":"2024-09-24T13:34:56.710Z","updated_at":"2025-05-16T10:05:35.971Z","avatar_url":"https://github.com/contributte.png","language":"PHP","readme":"![](https://heatbadger.now.sh/github/readme/contributte/webapp-skeleton/)\n\n\u003cp align=center\u003e\n  \u003ca href=\"https://github.com/contributte/webapp-skeleton/actions\"\u003e\u003cimg src=\"https://badgen.net/github/checks/contributte/webapp-skeleton/master\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://coveralls.io/r/contributte/webapp-skeleton\"\u003e\u003cimg src=\"https://badgen.net/coveralls/c/github/contributte/webapp-skeleton\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://packagist.org/packages/contributte/webapp-skeleton\"\u003e\u003cimg src=\"https://badgen.net/packagist/dm/contributte/webapp-skeleton\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://packagist.org/packages/contributte/webapp-skeleton\"\u003e\u003cimg src=\"https://badgen.net/packagist/v/contributte/webapp-skeleton\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=center\u003e\n  \u003ca href=\"https://packagist.org/packages/contributte/webapp-skeleton\"\u003e\u003cimg src=\"https://badgen.net/packagist/php/contributte/webapp-skeleton\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/contributte/webapp-skeleton\"\u003e\u003cimg src=\"https://badgen.net/github/license/contributte/webapp-skeleton\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://bit.ly/ctteg\"\u003e\u003cimg src=\"https://badgen.net/badge/support/gitter/cyan\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://bit.ly/cttfo\"\u003e\u003cimg src=\"https://badgen.net/badge/support/forum/yellow\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://contributte.org/partners.html\"\u003e\u003cimg src=\"https://badgen.net/badge/sponsor/donations/F96854\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=center\u003e\nWebsite 🚀 \u003ca href=\"https://contributte.org\"\u003econtributte.org\u003c/a\u003e | Contact 👨🏻‍💻 \u003ca href=\"https://f3l1x.io\"\u003ef3l1x.io\u003c/a\u003e | Twitter 🐦 \u003ca href=\"https://twitter.com/contributte\"\u003e@contributte\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=center\u003e\n    \u003cimg src=\"https://api.microlink.io?url=https%3A%2F%2Fexamples.contributte.org%2Fwebapp-skeleton%2F\u0026overlay.browser=light\u0026screenshot=true\u0026meta=false\u0026embed=screenshot.url\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\n-----\n\n## Goal\n\nMain goal is to provide best prepared starter-kit project for Nette developers.\n\nFocused on:\n\n- PHP 8.1+\n- `nette/*` packages\n- Doctrine ORM via `nettrine/*`\n- Symfony components via `contributte/*`\n- codestyle checking via **CodeSniffer** and `contributte/qa`\n- static analysing via **phpstan** and `contributte/phpstan`\n- unit / integration tests via **Nette Tester** and `contributte/tester`\n\n## Demo\n\nhttps://examples.contributte.org/webapp-skeleton/\n\n## Installation\n\nTo install latest version of `contributte/webapp-skeleton` use [Composer](https://getcomposer.org).\n\n```\ncomposer create-project -s dev contributte/webapp-skeleton acme\n```\n\n### Install using [docker](https://github.com/docker/docker/)\n\n1) At first, use composer to install this project.\n\n   ```\n   composer create-project -s dev contributte/webapp-skeleton\n   ```\n\n2) After that, you have to setup Postgres \u003e= 10 database. You can start it manually or use docker image `dockette/postgres:12`.\n\n   ```\n   docker run -it -p 5432:5432 -e POSTGRES_PASSWORD=webapp -e POSTGRES_USER=webapp dockette/postgres:12\n   ```\n\n   Or use make task, `make docker-postgres`.\n\n3) Custom configuration file is located at `config/local.neon`. Edit it if you want.\n\n   Default configuration should look like:\n\n   ```neon\n   # Host Config\n   parameters:\n       # Database\n       database:\n           host: localhost\n           dbname: webapp\n           user: webapp\n           password: webapp\n   ```\n\n4) Ok database is now running and application is configured to connect to it. Let's create initial data.\n\n   Run `NETTE_DEBUG=1 bin/console migrations:migrate` to create tables. Run `NETTE_DEBUG=1 bin/console doctrine:fixtures:load --append` to create first user(s).\n\n   Or via task `make build`.\n\n5) Start your devstack or use PHP local development server.\n\n   You can start PHP server by running `php -S localhost:8000 -t www` or use prepared make task `make dev`.\n\n6) Open http://localhost and enjoy!\n\n   Take a look at:\n    - http://localhost:8000.\n    - http://localhost:8000/admin (admin@admin.cz / admin)\n\n### Install using [docker-compose](https://https://github.com/docker/compose/)\n\n1) At first, use composer to install this project.\n\n   ```\n   composer create-project -s dev contributte/webapp-project\n   ```\n\n2) Modify `config/local.neon` and set host to `database`\n\n   Default configuration should look like this:\n\n   ```neon\n   # Host Config\n   parameters:\n       # Database\n       database:\n           host: database\n           dbname: webapp\n           user: webapp\n           password: webapp\n   ```\n\n3) Run `docker-compose up`\n\n4) Open http://localhost and enjoy!\n\n   Take a look at:\n    - http://localhost.\n    - http://localhost/admin (admin@admin.cz / admin)\n\n## Features\n\nHere is a list of all features you can find in this project.\n\n- PHP 8.0+\n- :package: Packages\n    - Nette 3+\n    - Contributte\n    - Nettrine\n- :deciduous_tree: Structure\n    - `app`\n        - `config` - configuration files\n            - `env` - prod/dev/test environments\n            - `app` - application configs\n            - `ext` - extensions configs\n            - `local.neon` - local runtime config\n            - `local.neon.dist` - template for local config\n        - `domain` - business logic and domain specific classes\n        - `model` - application backbone\n        - `modules` - Front/Admin module, presenters and components\n        - `resources` - static content for mails and others\n        - `ui` - UI components and base classes\n        - `bootstrap.php` - Nette entrypoint\n    - `bin` - console entrypoint (`bin/console`)\n    - `db` - database files\n        - `fixtures` - PHP fixtures\n        - `migrations` - migrations files\n    - `docs` - documentation\n    - `var`\n        - `log` - runtime and error logs\n        - `tmp` - tmp files and cache\n    - `tests` - test engine and unit/integration tests\n    - `vendor` - composer's folder\n    - `www` - public content\n- :exclamation: Tracy\n    - Cool error 500 page\n\n### Notable changes\n\n- `$user` variable in templates [is renamed](https://github.com/contributte/webapp-skeleton/blob/master/app/model/Latte/TemplateFactory.php) to `$_user`\n\n### Composer packages\n\nTake a detailed look :eyes: at each single package.\n\n- [contributte/bootstrap](https://contributte.org/packages/contributte/bootstrap.html)\n- [contributte/application](https://contributte.org/packages/contributte/application.html)\n- [contributte/di](https://contributte.org/packages/contributte/di.html)\n- [contributte/cache](https://contributte.org/packages/contributte/cache.html)\n- [contributte/http](https://contributte.org/packages/contributte/http.html)\n- [contributte/forms](https://contributte.org/packages/contributte/forms.html)\n- [contributte/latte](https://contributte.org/packages/contributte/latte.html)\n- [contributte/mail](https://contributte.org/packages/contributte/mail.html)\n- [contributte/security](https://contributte.org/packages/contributte/security.html)\n- [contributte/utils](https://contributte.org/packages/contributte/utils.html)\n- [contributte/tracy](https://contributte.org/packages/contributte/tracy.html)\n- [contributte/console](https://contributte.org/packages/contributte/console.html)\n- [contributte/webapp-skeleton](https://contributte.org/packages/contributte/webapp-skeleton.html)\n- [contributte/event-dispatcher](https://contributte.org/packages/contributte/event-dispatcher.html)\n- [contributte/event-dispatcher-extra](https://contributte.org/packages/contributte/event-dispatcher-extra.html)\n- [contributte/neonizer](https://contributte.org/packages/contributte/neonizer.html)\n- [contributte/mailing](https://contributte.org/packages/contributte/mailing.html)\n- [contributte/monolog](https://contributte.org/packages/contributte/monolog.html)\n\n**Doctrine**\n\n- [contributte/doctrine-orm](https://contributte.org/packages/contributte/doctrine-orm.html)\n- [contributte/doctrine-dbal](https://contributte.org/packages/contributte/doctrine-dbal.html)\n- [contributte/doctrine-annotations](https://contributte.org/packages/contributte/doctrine-annotations.html)\n- [contributte/doctrine-cache](https://contributte.org/packages/contributte/doctrine-cache.html)\n- [contributte/doctrine-migrations](https://contributte.org/packages/contributte/doctrine-migrations.html)\n- [contributte/doctrine-fixtures](https://contributte.org/packages/contributte/doctrine-fixtures.html)\n\n**Dev**\n\n- [contributte/dev](https://contributte.org/packages/contributte/dev.html)\n- [ninjify/qa](https://contributte.org/packages/ninjify/qa.html)\n- [ninjify/nunjuck](https://contributte.org/packages/ninjify/nunjuck.html)\n- [phpstan/phpstan](https://github.com/phpstan/phpstan)\n- [mockery/mockery](https://github.com/mockery/mockery)\n- [nelmio/alice](https://github.com/nelmio/alice)\n\n## Screenshots\n\n![](.docs/assets/screenshot1.png)\n\n\u003e admin@admin.cz / admin\n\n![](.docs/assets/screenshot2.png)\n![](.docs/assets/screenshot3.png)\n![](.docs/assets/screenshot4.png)\n\n## Development\n\nSee [how to contribute](https://contributte.org/contributing.html) to this package.\n\nThis package is currently maintaining by these authors.\n\n\u003ca href=\"https://github.com/f3l1x\"\u003e\n    \u003cimg width=\"80\" height=\"80\" src=\"https://avatars2.githubusercontent.com/u/538058?v=3\u0026s=80\"\u003e\n\u003c/a\u003e\n\n-----\n\nConsider to [support](https://contributte.org/partners.html) **contributte** development team. Also thank you for using this project.\n","funding_links":["https://github.com/sponsors/f3l1x","https://contributte.org/partners.html"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontributte%2Fwebapp-skeleton","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcontributte%2Fwebapp-skeleton","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontributte%2Fwebapp-skeleton/lists"}