Groupe Telegram : pinkary.com/telegram » .
Bienvenue à Pinkary ! Pinkary est une page de destination pour tous vos liens et un endroit pour vous connecter avec des personnes partageant les mêmes idées sans le bruit.
Initialement, il a été créé pour aider les gens à partager leurs liens de manière plus organisée. En seulement 15 heures, nous sommes passés du composer create-project
à la production, et après 24 heures, nous avons atteint plus de 1 000 utilisateurs.
Le code source montre encore quelques signes de ruée ; c'est pourquoi nous pensons qu'il est important de le partager avec vous, afin que vous puissiez voir comment nous l'avons construit , en combinant un rythme rapide compte tenu des circonstances avec la qualité que nous visons toujours.
Au fil du temps, nous avons réussi à ajouter davantage de fonctionnalités, telles que le flux, l'exploration, les questions, les likes, etc. Nous avons également amélioré la conception, ajouté des tests et amélioré la qualité globale du code. Il reste encore beaucoup à faire, mais plus important encore, il existe une énorme opportunité de faire de ce projet un projet communautaire .
Pinkary est une application Laravel classique ; il est construit sur Laravel 11 et utilise Livewire / Tailwind CSS pour le frontend. Si vous connaissez Laravel, vous devriez vous sentir comme chez vous.
En termes de développement local, vous pouvez utiliser les exigences suivantes :
Si vous disposez de ces exigences, vous pouvez commencer par cloner le référentiel et installer les dépendances :
git clone https://github.com/pinkary-project/pinkary.com.git
cd pinkary.com
git checkout -b feat/your-feature # or fix/your-fix
Ne poussez pas directement vers la branche
main
. Au lieu de cela, créez une nouvelle branche et transférez-la vers votre branche.
Ensuite, installez les dépendances à l'aide de Composer et NPM :
composer install
npm install
Après cela, configurez votre fichier .env
:
cp .env.example .env
php artisan key:generate
Préparez votre base de données et exécutez les migrations :
touch database/database.sqlite
php artisan migrate
Liez le stockage au dossier public :
php artisan storage:link
Dans un terminal séparé , créez les actifs en mode surveillance :
npm run dev
Également dans un terminal séparé , exécutez le gestionnaire de file d'attente :
php artisan queue:work
Enfin, démarrez le serveur de développement :
php artisan serve
Remarque : Par défaut, les e-mails sont envoyés au pilote
log
. Vous pouvez modifier cela dans le fichier.env
en quelque chose commemailtrap
.
Une fois que vous avez terminé les modifications du code, assurez-vous d'exécuter la suite de tests pour vous assurer que tout fonctionne toujours :
composer test
Si tout est vert, poussez votre branche et créez une pull request :
git commit -am " Your commit message "
git push
Visitez github.com/pinkary-project/pinkary.com/pulls et créez une pull request.
Pinkary utilise quelques outils pour garantir la qualité et la cohérence du code. Bien entendu, Pest est le framework de test de choix et nous utilisons également PHPStan pour l'analyse statique. La couverture des types de parasites est de 100 %, et la suite de tests est également de 100 %.
En termes de style de code, nous utilisons Laravel Pint pour garantir que le code est cohérent et respecte les conventions Laravel. Nous utilisons également Rector pour garantir que le code est à jour avec la dernière version de PHP.
Vous exécutez ces outils individuellement à l'aide des commandes suivantes :
# 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
Les demandes d'extraction qui ne réussissent pas la suite de tests ne seront pas fusionnées. Ainsi, comme suggéré dans la section Installation, assurez-vous d'exécuter la suite de tests avant de pousser votre branche.
Pinkary est hébergé sur DigitalOcean et utilise Laravel Forge pour gérer le serveur et les déploiements. Le serveur fonctionne sur Ubuntu 22.04 (LTS) x64 et est un droplet de disque à 2 vCPU de 2 Go/25 Go.
Le seul service que nous utilisons est Mailcoach pour gérer l'envoi d'emails. En plus de cela, SQLite est utilisé comme pilote de base de données, pilote de sessions, pilote de file d'attente, pilote de cache, etc.
Les sauvegardes des serveurs sont effectuées quotidiennement par Digital Ocean.
Pinkary est un logiciel open source sous licence GNU Affero General Public License