Telegram-Gruppe: pinkary.com/telegram » .
Willkommen bei Pinkary! Pinkary ist eine Zielseite für alle Ihre Links und ein Ort, an dem Sie ohne Lärm mit Gleichgesinnten in Kontakt treten können.
Ursprünglich wurde es entwickelt, um Menschen dabei zu helfen, ihre Links besser organisiert zu teilen. In nur 15 Stunden gelangten wir vom composer create-project
zur Produktion und nach 24 Stunden erreichten wir über 1.000 Benutzer.
Der Quellcode zeigt immer noch einige Anzeichen des Ansturms; Deshalb halten wir es für wichtig, es mit Ihnen zu teilen – damit Sie sehen können, wie wir es aufgebaut haben , indem wir unter Berücksichtigung der Umstände ein hohes Tempo mit der Qualität verbinden, die wir stets anstreben.
Im Laufe der Zeit ist es uns gelungen, weitere Funktionen wie Feed, Erkunden, Fragen, „Gefällt mir“-Angaben und mehr hinzuzufügen. Wir haben außerdem das Design verbessert, Tests hinzugefügt und die Gesamtqualität des Codes verbessert. Es gibt noch viel zu tun, aber vor allem gibt es eine große Chance, daraus ein von der Community getragenes Projekt zu machen.
Pinkary ist eine reguläre Laravel-Anwendung; Es basiert auf Laravel 11 und verwendet Livewire / Tailwind CSS für das Frontend. Wenn Sie Laravel kennen, sollten Sie sich wie zu Hause fühlen.
Im Hinblick auf die lokale Entwicklung können Sie die folgenden Anforderungen nutzen:
Wenn Sie diese Anforderungen haben, können Sie damit beginnen, das Repository zu klonen und die Abhängigkeiten zu installieren:
git clone https://github.com/pinkary-project/pinkary.com.git
cd pinkary.com
git checkout -b feat/your-feature # or fix/your-fix
Pushen Sie nicht direkt zum
main
. Erstellen Sie stattdessen einen neuen Zweig und übertragen Sie ihn in Ihren Zweig.
Als nächstes installieren Sie die Abhängigkeiten mit Composer und NPM:
composer install
npm install
Anschließend richten Sie Ihre .env
Datei ein:
cp .env.example .env
php artisan key:generate
Bereiten Sie Ihre Datenbank vor und führen Sie die Migrationen aus:
touch database/database.sqlite
php artisan migrate
Verknüpfen Sie den Speicher mit dem öffentlichen Ordner:
php artisan storage:link
Erstellen Sie in einem separaten Terminal die Assets im Überwachungsmodus:
npm run dev
Führen Sie außerdem in einem separaten Terminal den Queue-Worker aus:
php artisan queue:work
Starten Sie abschließend den Entwicklungsserver:
php artisan serve
Hinweis: Standardmäßig werden E-Mails an den
log
gesendet. Sie können dies in der.env
Datei in etwas wiemailtrap
ändern.
Wenn Sie mit den Codeänderungen fertig sind, führen Sie unbedingt die Testsuite aus, um sicherzustellen, dass noch alles funktioniert:
composer test
Wenn alles grün ist, pushen Sie Ihren Branch und erstellen Sie eine Pull-Anfrage:
git commit -am " Your commit message "
git push
Besuchen Sie github.com/pinkary-project/pinkary.com/pulls und erstellen Sie eine Pull-Anfrage.
Pinkary verwendet einige Tools, um die Qualität und Konsistenz des Codes sicherzustellen. Natürlich ist Pest das Test-Framework der Wahl, und wir verwenden PHPStan auch für statische Analysen. Die Typabdeckung von Pest liegt bei 100 %, und die Testsuite weist ebenfalls eine 100 %ige Abdeckung auf.
Was den Codestil betrifft, verwenden wir Laravel Pint, um sicherzustellen, dass der Code konsistent ist und den Laravel-Konventionen folgt. Wir verwenden auch Rector, um sicherzustellen, dass der Code auf dem neuesten Stand der PHP-Version ist.
Sie führen diese Tools einzeln mit den folgenden Befehlen aus:
# 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
Pull-Anfragen, die die Testsuite nicht bestehen, werden nicht zusammengeführt. Stellen Sie daher, wie im Abschnitt „Installation“ empfohlen, sicher, dass Sie die Testsuite ausführen, bevor Sie Ihren Zweig pushen.
Pinkary wird auf DigitalOcean gehostet und nutzt Laravel Forge zur Verwaltung des Servers und der Bereitstellungen. Der Server läuft unter Ubuntu 22.04 (LTS) x64 und ist ein Festplatten-Droplet mit 2 vCPUs und 2 GB/25 GB.
Der einzige Dienst, den wir nutzen, ist Mailcoach zur Verwaltung des E-Mail-Versands. Darüber hinaus wird SQLite als Datenbanktreiber, Sitzungstreiber, Warteschlangentreiber, Cache-Treiber usw. verwendet.
Server-Backups werden täglich von Digital Ocean durchgeführt.
Pinkary ist eine Open-Source-Software, die unter der GNU Affero General Public License lizenziert ist