电报群: pinkary.com/telegram » .
欢迎来到平卡里! Pinkary 是您所有链接的登陆页面,也是与志趣相投的人进行无噪音联系的地方。
最初,它的创建是为了帮助人们以更有组织的方式分享他们的链接。在短短 15 小时内,我们从composer create-project
到制作,24 小时后,我们就达到了 1,000 多个用户。
源代码仍然显示出一些仓促的迹象;这就是为什么我们认为与您分享它很重要,这样您就可以看到我们是如何构建它的,将特定情况下的快节奏与我们始终追求的质量相结合。
随着时间的推移,我们成功添加了更多功能,例如提要、探索、问题、点赞等等。我们还改进了设计,添加了测试,并提高了代码的整体质量。还有很多工作要做,但最重要的是,有一个巨大的机会让这个项目成为一个社区驱动的项目。
Pinkary 是一个常规的 Laravel 应用程序;它构建在 Laravel 11 之上,并使用 Livewire / Tailwind CSS 作为前端。如果您熟悉 Laravel,您应该会感到宾至如归。
在本地开发方面,可以使用以下需求:
如果您有这些要求,您可以从克隆存储库并安装依赖项开始:
git clone https://github.com/pinkary-project/pinkary.com.git
cd pinkary.com
git checkout -b feat/your-feature # or fix/your-fix
不要直接推送到
main
分支。相反,创建一个新分支并将其推送到您的分支。
接下来,使用 Composer 和 NPM 安装依赖项:
composer install
npm install
之后,设置您的.env
文件:
cp .env.example .env
php artisan key:generate
准备数据库并运行迁移:
touch database/database.sqlite
php artisan migrate
将存储链接到公用文件夹:
php artisan storage:link
在单独的终端中,以监视模式构建资产:
npm run dev
同样在单独的终端中,运行队列工作程序:
php artisan queue:work
最后,启动开发服务器:
php artisan serve
注意:默认情况下,电子邮件会发送到
log
驱动程序。您可以在.env
文件中将其更改为类似mailtrap
内容。
完成代码更改后,请务必运行测试套件以确保一切仍然正常工作:
composer test
如果一切都是绿色的,则推送您的分支并创建拉取请求:
git commit -am " Your commit message "
git push
访问 github.com/pinkary-project/pinkary.com/pulls 并创建拉取请求。
Pinkary 使用一些工具来确保代码质量和一致性。当然,测试框架选择Pest,我们也使用PHPStan进行静态分析。 Pest 的类型覆盖率为 100%,测试套件的覆盖率也为 100%。
在代码风格方面,我们使用 Laravel Pint 来保证代码的一致性并遵循 Laravel 约定。我们还使用 Rector 来确保代码与最新的 PHP 版本保持同步。
您可以使用以下命令单独运行这些工具:
# Lint the code using Pint
composer lint
composer test:lint
# Refactor the code using Rector
composer refactor
composer test:refactor
# Run PHPStan
composer test:types
# Run the test suite
composer test:unit
# Run all the tools
composer test
未通过测试套件的拉取请求将不会被合并。因此,正如安装部分所建议的那样,请务必在推送分支之前运行测试套件。
Pinkary 托管在 DigitalOcean 上,并使用 Laravel Forge 来管理服务器和部署。该服务器在 Ubuntu 22.04 (LTS) x64 上运行,是 2 个 vCPU 2GB / 25GB 磁盘液滴。
我们使用的唯一服务是 Mailcoach 来管理发送电子邮件。除此之外,SQLite还用作数据库驱动程序、会话驱动程序、队列驱动程序、缓存驱动程序等。
服务器备份由 Digital Ocean 每天完成。
Pinkary 是一款根据GNU Affero 通用公共许可证授权的开源软件