Grupo de Telegram: pinkary.com/telegram» .
¡Bienvenidos a Pinkary! Pinkary es una página de destino para todos sus enlaces y un lugar para conectarse con personas de ideas afines sin ruido.
Inicialmente, se creó para ayudar a las personas a compartir sus enlaces de una forma más organizada. En solo 15 horas, pasamos del composer create-project
a la producción y, después de 24 horas, llegamos a más de 1000 usuarios.
El código fuente todavía muestra algunos signos de prisa; Por eso creemos que es importante compartirlo contigo, para que puedas ver cómo lo hemos construido , combinando un ritmo rápido dadas las circunstancias con la calidad que siempre buscamos.
Con el tiempo, logramos agregar más funciones, como feed, exploración, preguntas, me gusta y más. También mejoramos el diseño, agregamos pruebas y mejoramos la calidad general del código. Todavía queda mucho por hacer, pero lo más importante es que existe una gran oportunidad de hacer de este un proyecto impulsado por la comunidad .
Pinkary es una aplicación normal de Laravel; está construido sobre Laravel 11 y usa Livewire / Tailwind CSS para la interfaz. Si está familiarizado con Laravel, debería sentirse como en casa.
En términos de desarrollo local, puede utilizar los siguientes requisitos:
Si tienes estos requisitos, puedes comenzar clonando el repositorio e instalando las dependencias:
git clone https://github.com/pinkary-project/pinkary.com.git
cd pinkary.com
git checkout -b feat/your-feature # or fix/your-fix
No presione directamente a la rama
main
. En su lugar, cree una nueva rama y envíela a su rama.
A continuación, instale las dependencias usando Composer y NPM:
composer install
npm install
Después de eso, configura tu archivo .env
:
cp .env.example .env
php artisan key:generate
Prepare su base de datos y ejecute las migraciones:
touch database/database.sqlite
php artisan migrate
Vincula el almacenamiento a la carpeta pública:
php artisan storage:link
En una terminal separada , cree los activos en modo de vigilancia:
npm run dev
También en una terminal separada , ejecute el trabajador de cola:
php artisan queue:work
Finalmente, inicie el servidor de desarrollo:
php artisan serve
Nota: De forma predeterminada, los correos electrónicos se envían al controlador
log
. Puedes cambiar esto en el archivo.env
a algo comomailtrap
.
Una vez que haya terminado con los cambios de código, asegúrese de ejecutar el conjunto de pruebas para asegurarse de que todo siga funcionando:
composer test
Si todo está verde, empuja tu rama y crea una solicitud de extracción:
git commit -am " Your commit message "
git push
Visita github.com/pinkary-project/pinkary.com/pulls y crea una solicitud de extracción.
Pinkary utiliza algunas herramientas para garantizar la calidad y coherencia del código. Por supuesto, Pest es el marco de prueba elegido y también utilizamos PHPStan para el análisis estático. La cobertura de tipo de Pest es del 100% y el conjunto de pruebas también tiene una cobertura del 100%.
En términos de estilo de código, utilizamos Laravel Pint para garantizar que el código sea coherente y siga las convenciones de Laravel. También utilizamos Rector para garantizar que el código esté actualizado con la última versión de PHP.
Estas herramientas se ejecutan individualmente utilizando los siguientes comandos:
# 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
Las solicitudes de extracción que no pasen el conjunto de pruebas no se fusionarán. Entonces, como se sugiere en la sección Instalación, asegúrese de ejecutar el conjunto de pruebas antes de impulsar su rama.
Pinkary está alojado en DigitalOcean y utiliza Laravel Forge para administrar el servidor y las implementaciones. El servidor se ejecuta en Ubuntu 22.04 (LTS) x64 y es un droplet de disco de 2 vCPU de 2 GB/25 GB.
El único servicio que utilizamos es Mailcoach para gestionar el envío de correos electrónicos. Además de eso, SQLite se utiliza como controlador de base de datos, controlador de sesiones, controlador de cola, controlador de caché, etc.
Digital Ocean realiza copias de seguridad del servidor diariamente.
Pinkary es un software de código abierto con licencia pública general GNU Affero.