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-fixPushen 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:generateBereiten Sie Ihre Datenbank vor und führen Sie die Migrationen aus:
touch database/database.sqlite
php artisan migrateVerknüpfen Sie den Speicher mit dem öffentlichen Ordner:
php artisan storage:linkErstellen Sie in einem separaten Terminal die Assets im Überwachungsmodus:
npm run devFühren Sie außerdem in einem separaten Terminal den Queue-Worker aus:
php artisan queue:workStarten Sie abschließend den Entwicklungsserver:
php artisan serveHinweis: Standardmäßig werden E-Mails an den
loggesendet. Sie können dies in der.envDatei 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 testWenn alles grün ist, pushen Sie Ihren Branch und erstellen Sie eine Pull-Anfrage:
git commit -am " Your commit message "
git pushBesuchen 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 testPull-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