{"id":14983690,"url":"https://github.com/sjeguedes/symfonytdac","last_synced_at":"2026-01-02T20:50:09.487Z","repository":{"id":44201847,"uuid":"265208304","full_name":"sjeguedes/symfonyTDAC","owner":"sjeguedes","description":"Symfony 3 upgrade and application management","archived":false,"fork":false,"pushed_at":"2023-02-01T19:46:02.000Z","size":875,"stargazers_count":0,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-16T12:15:44.638Z","etag":null,"topics":["blackfire","faker","functional-testing","phpunit","symfony3","symfony4","unit-testing","upgrade"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sjeguedes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-19T09:49:11.000Z","updated_at":"2021-05-05T20:39:58.000Z","dependencies_parsed_at":"2023-02-17T10:10:19.559Z","dependency_job_id":null,"html_url":"https://github.com/sjeguedes/symfonyTDAC","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjeguedes%2FsymfonyTDAC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjeguedes%2FsymfonyTDAC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjeguedes%2FsymfonyTDAC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjeguedes%2FsymfonyTDAC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sjeguedes","download_url":"https://codeload.github.com/sjeguedes/symfonyTDAC/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243864824,"owners_count":20360360,"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":["blackfire","faker","functional-testing","phpunit","symfony3","symfony4","unit-testing","upgrade"],"created_at":"2024-09-24T14:07:47.205Z","updated_at":"2026-01-02T20:50:09.445Z","avatar_url":"https://github.com/sjeguedes.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![CI tests \u0026 code quality](https://github.com/sjeguedes/symfonyTDAC/actions/workflows/full-ci-workflow.yml/badge.svg)](https://github.com/sjeguedes/symfonyTDAC/actions/workflows/full-ci-workflow.yml)\n[![Maintainability](https://api.codeclimate.com/v1/badges/cd0698a66913d668f94b/maintainability)](https://codeclimate.com/github/sjeguedes/symfonyTDAC/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/cd0698a66913d668f94b/test_coverage)](https://codeclimate.com/github/sjeguedes/symfonyTDAC/test_coverage)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/d7c1a32d50db45d5ab05ec44db19dce0)](https://www.codacy.com/gh/sjeguedes/symfonyTDAC/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=sjeguedes/symfonyTDAC\u0026amp;utm_campaign=Badge_Grade)\n# SymfonyTDAC\n\n## Symfony upgrade from version 3.1 to 4.4 LTS, with bugs fixing and features improvements\nThis application manages tasks as a kind of simple \"to do list\".  \nIt is only accessible with a user account, and obviously he has to be authenticated!  \n\n- An anonymous user (visitor) is automatically redirected to login page.\n- An authenticated user is redirected to application homepage after successful login action.\n- A disconnected user is redirected to login page again.\n \nTask features: \n- Each task is associated to a single author.\n- Each task is updated by a single last editor.\n- A task without author was considered created by an \"anonymous author\" (user).\n- A task author, if one exists, is definitely set after creation.\n\nUser features:\n- An authenticated user can only manage tasks.\n- An authenticated user can list all tasks with or without a \"isDone\" state filter, and then access a particular dedicated list.\n- An authenticated user can create any tasks.\n- An authenticated user can toggle any tasks \"isDone\" state by marking selected one as \"done/undone\".\n- An authenticated user can update (edit) any tasks as last editor.\n- An authenticated user can only delete his own created tasks.\n\nAdministrator features:\n- An authenticated administrator (admin) can also manage other registered users.\n- An authenticated administrator benefits from the same user permissions on tasks.\n- An authenticated administrator can list all users accounts.\n- An authenticated administrator can create another user account and define his roles (user, admin).\n- An authenticated administrator can update all users accounts and redefine his roles.\n- An authenticated administrator can delete all users accounts.\n\n###### *Please note that this project uses these libraries or Symfony bundles:*\nFaker PHP library (in order to add custom data fixtures)\n\u003e https://github.com/FakerPHP/Faker\n\nDoctrine test bundle (in order to manage automated tests and easily rollback database transaction)\n\u003e https://github.com/dmaicher/doctrine-test-bundle\n\n### Local installation (can be used on deployment with ssh access with some adaptations for environment variables)\n\n#### 1. Clone project repository master branch on GitHub with:\n```\n$ git clone https://github.com/sjeguedes/symfonyTDAC.git\n```\n\n#### 2. Configure project needed particular data and your own database parameters with environment variables in `env.local` file using `.env` provided example file:\n\n###### *Prefer use a `env.\u003cyour_environment\u003e.local` file per environment combined to `env.local.php` to manage each environment.*\n```\n# Application environnement and secret\nAPP_ENV=your_environment # e.g. \"dev\", \"test\" or \"prod\"\nAPP_SECRET=your_secret\n\n# Database configuration (example here with MySQL)\nDATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7\n```\n#### 3. Adapt Doctrine \"dbal\" section configuration (driver and server_version) to your system requirements in `config/packages/doctrine.yaml` file if needed:\n\n###### *For instance, this is needed if you use another driver such as PostgreSQL, MariaDB, etc... instead of MySQL.*\n\n#### 4. Install dependencies defined in composer.json:\n```\n# Development (dev) environment\n$ composer install\n# Production (prod) environnement\n$ composer install --no-dev --no-scripts --optimize-autoloader\n```\n\n#### 5. Create database and schema with Doctrine migrations located in `migrations` folder:\n```\n# Create database\n$ php bin/console doctrine:database:create\n```\n\n###### *Use migrations instead of updating schema!*\n```\n# Create schema\n$ php bin/console doctrine:migrations:migrate\n```\n\n#### 6. Add starting set of data with Doctrine fixtures located in `src/DataFixtures`:\n```\n$ php bin/console doctrine:fixtures:load\n# or add \"-n\" option to avoid console interactivity\n$ php bin/console doctrine:fixtures:load -n\n```\n\n#### 7. Application automated tests:\n###### *Please note that 3 automated test suites were made with PHPUnit test framework, to maintain this project correctly.* \n###### *You can have a look at `tests` folder divided in 3 sub folders (Unit, Integration, Functional) and `env.test` example file:*\nFor local installation:\n```\n# You can or simply use option \"--env=test\" for each command or switch to \"test\" environnement \nand install \"test\" particular database thanks to \".env.test.local\" file configuration.\n# e.g. with \".env.local.php\"\n$ composer dump-env test\n# Then follow the same process as above to create \"test\" database and generate fixtures for this environment.\n\n# Execute all existing test suites after \"test\" environnement installation:\n$ php bin/phpunit\n# or to be more explicit:\n$ php bin/phpunit tests\n# or:\n$ php bin/phpunit --testsuite 'Project Tests Suite'\n\n# Execute only unit test suite:\n$ php bin/phpunit tests/Unit\n# or:\n$ php bin/phpunit --testsuite 'Project Unit Tests Suite'\n\n# Execute only integration test suite:\n$ php bin/phpunit tests/Integration\n# or:\n$ php bin/phpunit --testsuite 'Project Integration Tests Suite'\n\n# Execute only functional test suite:\n$ php bin/phpunit tests/Functional\n# or:\n$ php bin/phpunit --testsuite 'Project Functional Tests Suite'\n```\n###### *You can have a look at `phpunit.xml.dist` example file located in project root folder, to manage PHPUnit configuration*\nPHPUnit current documentation: \n\u003e https://phpunit.readthedocs.io\n\n#### 8. Project contribution:\nIf you are interested in improving this project you can follow our guidelines defined in [Contributing file](CONTRIBUTING.md).  \nYou are welcome to make this application evolve.\n\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsjeguedes%2Fsymfonytdac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsjeguedes%2Fsymfonytdac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsjeguedes%2Fsymfonytdac/lists"}