Группа в Telegram: Pinkary.com/telegram » .
Добро пожаловать в Пинкари! Pinkary — это целевая страница для всех ваших ссылок и место для общения с единомышленниками без лишнего шума.
Изначально он был создан, чтобы помочь людям более организованно делиться своими ссылками. Всего за 15 часов мы прошли путь от composer create-project
до производства, а через 24 часа у нас было более 1000 пользователей.
Исходный код все еще демонстрирует некоторые признаки спешки; Вот почему мы считаем важным поделиться этим с вами — чтобы вы могли увидеть, как мы его создали , сочетая быстрый темп с учетом обстоятельств с качеством, к которому мы всегда стремимся.
Со временем нам удалось добавить больше функций, таких как лента, исследование, вопросы, лайки и многое другое. Мы также улучшили дизайн, добавили тесты и улучшили общее качество кода. Предстоит еще многое сделать, но самое главное — существует огромная возможность сделать этот проект управляемым сообществом .
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 и создайте запрос на включение.
Пинкари использует несколько инструментов для обеспечения качества и согласованности кода. Конечно, мы предпочитаем использовать 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 виртуальными процессорами по 2 ГБ/25 ГБ.
Единственный сервис, который мы используем, — это Mailcoach для управления отправкой электронных писем. Кроме того, SQLite используется в качестве драйвера базы данных, драйвера сеансов, драйвера очереди, драйвера кэша и т. д.
Резервное копирование серверов осуществляется компанией Digital Ocean ежедневно.
Pinkary — это программное обеспечение с открытым исходным кодом, действующее под лицензией GNU Affero General Public License.