Skip to content
Permalink
Browse files

Initial commit

  • Loading branch information...
Maksclub committed Feb 10, 2018
0 parents commit e73eb0d7e0f4bb8e8c5662e32bb76fa4cbeaa287
Showing with 6,597 additions and 0 deletions.
  1. +24 −0 .env.dist
  2. +18 −0 .gitignore
  3. +22 −0 README.MD
  4. 0 assets/.gitignore
  5. +39 −0 bin/console
  6. +18 −0 bin/phpunit
  7. +80 −0 composer.json
  8. +5,525 −0 composer.lock
  9. +16 −0 config/bundles.php
  10. +16 −0 config/packages/dev/easy_log_handler.yaml
  11. +19 −0 config/packages/dev/monolog.yaml
  12. +3 −0 config/packages/dev/routing.yaml
  13. +4 −0 config/packages/dev/swiftmailer.yaml
  14. +6 −0 config/packages/dev/web_profiler.yaml
  15. +27 −0 config/packages/doctrine.yaml
  16. +5 −0 config/packages/doctrine_migrations.yaml
  17. +30 −0 config/packages/framework.yaml
  18. +31 −0 config/packages/prod/doctrine.yaml
  19. +17 −0 config/packages/prod/monolog.yaml
  20. +3 −0 config/packages/routing.yaml
  21. +18 −0 config/packages/security.yaml
  22. +3 −0 config/packages/swiftmailer.yaml
  23. +4 −0 config/packages/test/framework.yaml
  24. +7 −0 config/packages/test/monolog.yaml
  25. +2 −0 config/packages/test/swiftmailer.yaml
  26. +6 −0 config/packages/test/web_profiler.yaml
  27. +7 −0 config/packages/translation.yaml
  28. +4 −0 config/packages/twig.yaml
  29. +7 −0 config/routes.yaml
  30. +3 −0 config/routes/annotations.yaml
  31. +3 −0 config/routes/dev/twig.yaml
  32. +7 −0 config/routes/dev/web_profiler.yaml
  33. +33 −0 config/services.yaml
  34. +9 −0 config/services_test.yaml
  35. +13 −0 package.json
  36. +35 −0 phpunit.xml.dist
  37. +39 −0 public/index.php
  38. 0 src/Controller/.gitignore
  39. +14 −0 src/Controller/HomeController.php
  40. 0 src/Entity/.gitignore
  41. +61 −0 src/Kernel.php
  42. 0 src/Migrations/.gitignore
  43. 0 src/Repository/.gitignore
  44. +380 −0 symfony.lock
  45. +15 −0 templates/base.html.twig
  46. 0 tests/.gitignore
  47. 0 translations/.gitignore
  48. +24 −0 webpack.config.js
@@ -0,0 +1,24 @@
# This file is a "template" of which env vars need to be defined for your application
# Copy this file to .env file for development, create environment variables when deploying to production
# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration

###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=9baecf2ab835a490f548991bfbaac251
#TRUSTED_PROXIES=127.0.0.1,127.0.0.2
#TRUSTED_HOSTS=localhost,example.com
###< symfony/framework-bundle ###

###> symfony/swiftmailer-bundle ###
# For Gmail as a transport, use: "gmail://username:password@localhost"
# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="
# Delivery is disabled by default via "null://localhost"
MAILER_URL=null://localhost
###< symfony/swiftmailer-bundle ###

###> doctrine/doctrine-bundle ###
# Format described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# Configure your db driver and server_version in config/packages/doctrine.yaml
DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name
###< doctrine/doctrine-bundle ###
@@ -0,0 +1,18 @@

###> symfony/framework-bundle ###
.env
.idea/
/public/bundles/
/var/
/vendor/
###< symfony/framework-bundle ###

###> symfony/webpack-encore-pack ###
/node_modules/
/public/build/
###< symfony/webpack-encore-pack ###

###> symfony/phpunit-bridge ###
.phpunit
/phpunit.xml
###< symfony/phpunit-bridge ###
@@ -0,0 +1,22 @@
# Приложение для управления базой резюме — тестовое на джуниора

Находчвый разработчик Вениамин решил сменить место работы и уже заприметил подходящие компании куда следует отправить резюме. Однако, чтобы повысить шансы на успех (что резюме по достоинству оценят в избранных компаниях) Вениамин решил провести небольшой эксперимент-исследование: создать несколько версий своего резюме отличающихся друг от друга содержанием и разослать их от вымышленных имен в разные компании (не из списка избранных); из всех версий в итоге выбрать ту, на которую было больше всего положительных откликов (приглашений на собеседование); отправить самую удачную версию в избранные компании.

### Задача:

* Реализовать web приложение для управления базой резюме (загружаемый файл или простой текст) со следующим функционалом:
* Управление профилями компаний (название, сайт, адрес, телефон): создание, изменение, удаление, просмотр списка всех компаний.
* Управление версиями резюме (название должности, загружаемый файл или текст резюме, дата создания, дата изменения): создание, изменение, удаление, просмотр списка всех вариантов резюме.
* Фиксация сведений об отправленных резюме и реакции на них: в базу данных необходимо записывать сведения о положительной и отрицательной реакции на отправленную версию резюме, когда и кому оно было отправлено (дата и время).
* Отображение информации со сводной статистикой на отдельной странице: какая версия резюме получила наибольшее количество положительных оценок; статистика положительных откликов по дням недели (диаграмма) — в какой день было больше всего положительных откликов (по всем версиям резюме).

### Требования:

1. Использовать для построения приложения php фреймворк Symfony 3.3
2. Использовать базу данных (MySQL, PostgreSQL)
3. Оформить код в соответствии со стандартами PSR
4. Исходный код приложения выложить в открытый репозиторий (Github, Bitbucket, Gitlab)
5. Написать краткую инструкцию по запуску приложения
* Использовать миграции
* Создать фикстуру для заполнения базы тестовыми данными
* Предложить варианты развития функционала приложения
No changes.
@@ -0,0 +1,39 @@
#!/usr/bin/env php
<?php
use App\Kernel;
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Debug\Debug;
use Symfony\Component\Dotenv\Dotenv;
set_time_limit(0);
require __DIR__.'/../vendor/autoload.php';
if (!class_exists(Application::class)) {
throw new \RuntimeException('You need to add "symfony/framework-bundle" as a Composer dependency.');
}
if (!isset($_SERVER['APP_ENV'])) {
if (!class_exists(Dotenv::class)) {
throw new \RuntimeException('APP_ENV environment variable is not defined. You need to define environment variables for configuration or add "symfony/dotenv" as a Composer dependency to load variables from a .env file.');
}
(new Dotenv())->load(__DIR__.'/../.env');
}
$input = new ArgvInput();
$env = $input->getParameterOption(['--env', '-e'], $_SERVER['APP_ENV'] ?? 'dev');
$debug = ($_SERVER['APP_DEBUG'] ?? ('prod' !== $env)) && !$input->hasParameterOption(['--no-debug', '']);
if ($debug) {
umask(0000);
if (class_exists(Debug::class)) {
Debug::enable();
}
}
$kernel = new Kernel($env, $debug);
$application = new Application($kernel);
$application->run($input);
@@ -0,0 +1,18 @@
#!/usr/bin/env php
<?php
if (!file_exists(dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit')) {
echo "Unable to find the `simple-phpunit` script in `vendor/symfony/phpunit-bridge/bin/`.\n";
exit(1);
}
if (false === getenv('SYMFONY_PHPUNIT_REMOVE')) {
putenv('SYMFONY_PHPUNIT_REMOVE=symfony/yaml');
}
if (false === getenv('SYMFONY_PHPUNIT_VERSION')) {
putenv('SYMFONY_PHPUNIT_VERSION=6.5');
}
if (false === getenv('SYMFONY_PHPUNIT_DIR')) {
putenv('SYMFONY_PHPUNIT_DIR='.__DIR__.'/.phpunit');
}
require dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit';
@@ -0,0 +1,80 @@
{
"type": "project",
"license": "proprietary",
"require": {
"php": "^7.0.8",
"ext-iconv": "*",
"sensio/framework-extra-bundle": "^5.1",
"symfony/asset": "^3.4",
"symfony/console": "^3.4",
"symfony/debug-pack": "*",
"symfony/expression-language": "^3.4",
"symfony/flex": "^1.0",
"symfony/form": "^3.4",
"symfony/framework-bundle": "^3.4",
"symfony/lts": "^3",
"symfony/monolog-bundle": "^3.1",
"symfony/orm-pack": "*",
"symfony/process": "^3.4",
"symfony/security-bundle": "^3.4",
"symfony/serializer-pack": "*",
"symfony/swiftmailer-bundle": "^3.1",
"symfony/validator": "^3.4",
"symfony/var-dumper": "^3.4",
"symfony/web-link": "^3.4",
"symfony/webpack-encore-pack": "*",
"symfony/yaml": "^3.4"
},
"require-dev": {
"symfony/browser-kit": "^3.4",
"symfony/css-selector": "^3.4",
"symfony/dotenv": "^3.4",
"symfony/maker-bundle": "^1.0",
"symfony/phpunit-bridge": "^3.4",
"symfony/profiler-pack": "*"
},
"config": {
"preferred-install": {
"*": "dist"
},
"sort-packages": true
},
"autoload": {
"psr-4": {
"App\\": "src/",
"Maksclub\\": "bundles/"
}
},
"autoload-dev": {
"psr-4": {
"App\\Tests\\": "tests/"
}
},
"replace": {
"symfony/polyfill-iconv": "*",
"symfony/polyfill-php70": "*",
"symfony/polyfill-php56": "*"
},
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install --symlink --relative %PUBLIC_DIR%": "symfony-cmd"
},
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
],
"test": "php vendor/bin/simple-phpunit"
},
"conflict": {
"symfony/symfony": "*"
},
"extra": {
"symfony": {
"id": "01C5DCF9H6N99DR7PQ0SKDW8BT",
"allow-contrib": false
}
}
}

0 comments on commit e73eb0d

Please sign in to comment.
You can’t perform that action at this time.