jobapis / jobs-to-mail
您个人的职位搜索助手。
Requires
- php: >=7.1.0
- jobapis/jobs-multi: ^1.1.1
- laravel/framework: 5.5.*
- league/csv: ^9.0
- s-ichikawa/laravel-sendgrid-driver: ~2.0
Requires (Dev)
- filp/whoops: ~2.0
- fzaninotto/faker: ~1.7
- mockery/mockery: ~1.0
- phpunit/phpunit: ~6.0
- squizlabs/php_codesniffer: ~2.0
- symfony/css-selector: 3.1.*
- symfony/dom-crawler: 3.1.*
README
您个人的职位搜索助手
关于
JobsToMail 是一个开源的 Web 应用程序,允许用户通过 JobApis 项目支持的几个职位板之一注册接收职位电子邮件。用户可以免费在 jobs-to-mail.herokuapp.com 注册接收职位,或者使用下面的设置说明在自己的服务器上运行应用程序。
此应用程序基于 Laravel 5.5 构建,使用了 Jobs Multi 和 Jobs Common 包。前端使用 Bootstrap v4 和 Gulp。
使命
JobApis 通过开源软件使职位板和公司数据更加易于访问。要了解更多信息,请访问 JobApis.com,或通过 admin@jobapis.com 联系我们。
设置
需求
此应用程序仅设计用于与 PHP 7.0+ 和 Postgres 9.5+ 一起使用。可能存在一些向后兼容性,但目前在官方上不支持。
安装需要以下内容
本地安装
推荐安装方法是 Composer。
- 使用 composer 创建一个新项目: 创建项目
composer create-project jobapis/jobs-to-mail
-
将
.env.example
复制到.env
并使用环境变量进行自定义。 -
运行
npm install && gulp
以构建前端。 -
运行内置的 Web 服务器以提供应用程序:
php artisan serve
。 -
在
localhost:8000
访问本地应用程序。 -
一旦至少有一个用户注册,您就可以运行职位收集和电子邮件命令:
php artisan jobs:email
。
Docker 安装
在您安装并启动 Docker 之后
-
安装 composer 依赖项:
docker run --rm -v $(pwd):/app composer:latest install
-
将
.env.example
复制到.env
并使用环境变量进行自定义。 -
运行
docker-compose build
,然后运行docker-compose up -d
以启动服务。 -
运行
npm install && node node_modules/.bin/gulp
以构建前端。 -
运行迁移:
docker exec jobstomail_web_1 php artisan migrate
。 -
运行收集和电子邮件命令:
docker exec jobstomail_web_1 php artisan jobs:email
。
您可以使用 docker exec jobstomail_web_1 vendor/bin/phpunit
运行测试。
Heroku 安装
-
部署后,您应该能够访问应用程序并看到主页。
-
通过运行
heroku run "php artisan key:generate --show" --app=j2m
设置应用程序密钥,并将显示的密钥添加到应用程序的配置变量中。 -
在Heroku调度器中添加一个作业,每晚运行
php artisan jobs:email
。这将确保用户能够收到他们的电子邮件。
服务器安装
附加要求
- 使用 composer 创建一个新项目: 创建项目
composer create-project jobapis/jobs-to-mail
-
将
.env.example
复制到.env
并使用环境变量进行自定义。 -
运行
npm install && gulp
以构建前端。 -
将NGINX指向服务于
/public
目录。您的NGINX配置块应类似于以下内容
server {
listen 80;
server_name yourdomain.com;
root /home/user/jobs-to-mail/public;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
-
确保PHP-FPM正在运行,并确保您的网站正在运行在您的域名上。
-
创建一个cron作业,每晚运行作业收集和通知过程:
php artisan jobs:email
。
命令行
用户注册工作搜索后,收集工作和发送电子邮件所需的所有命令如下
php artisan jobs:email
此命令将遍历每个用户,根据他们的搜索条件收集工作,然后在列表编制完成后通过电子邮件发送给他们。
由于这项工作可能需要很长时间,最好使用工作器和通过cron作业在后台运行工作。有关在Heroku上设置此方法的说明见上文,但如果您遇到问题,可以在GitHub存储库的问题选项卡中提出问题。
您还可以在测试或调试时仅在系统中运行一个电子邮件地址的作业
php artisan jobs:email --email=karl@jobstomail.com
测试
测试使用PHPUnit运行。我们还使用Faker来生成伪造数据,并使用Mockery来模拟单元测试中的依赖项。
- 运行所有测试
vendor/bin/phpunit
代码覆盖率报告会自动生成,并在运行测试套件后在/build
目录中找到。
播种数据
如果您正在进行本地开发,您可能会发现使用一些测试数据对数据库进行播种很有用。使用Laravel的播种命令就可以做到这一点
- 截断并播种数据库表
php artisan db:seed
- 仅播种
php artisan db:seed --class=TestingDatabaseSeeder
- 仅截断
php artisan db:seed --class=DatabaseTruncater
注意:截断是永久的,所以在生产环境中运行时要小心。
贡献
欢迎和鼓励贡献!请参阅JobApis的贡献指南以获取详细信息,或如果您有任何问题,请在GitHub中创建一个问题。
法律
免责声明
此软件包与任何职位板无关,也不受其支持,我们不对此软件的任何使用或误用负责。
许可证
此软件包使用Apache 2.0许可证。有关更多信息,请参阅许可证文件。
版权
版权所有2016年,Karl L. Hughes。