Grupo de telegramas: pinkary.com/telegram » .
Bem-vindo ao Pinkary! Pinkary é uma página de destino para todos os seus links e um lugar para se conectar com pessoas que pensam como você, sem barulho.
Inicialmente, ele foi criado para ajudar as pessoas a compartilharem seus links de forma mais organizada. Em apenas 15 horas, passamos da composer create-project
à produção e, após 24 horas, alcançamos mais de 1.000 usuários.
O código-fonte ainda mostra alguns sinais de pressa; por isso achamos importante compartilhá-lo com você – para que você possa ver como o construímos , combinando o ritmo acelerado dadas as circunstâncias com a qualidade que sempre almejamos.
Com o tempo, conseguimos adicionar mais recursos, como feed, explorar, perguntas, curtidas e muito mais. Também melhoramos o design, adicionamos testes e melhoramos a qualidade geral do código. Ainda há muito a fazer, mas o mais importante é que há uma enorme oportunidade de tornar este projecto conduzido pela comunidade .
Pinkary é uma aplicação regular do Laravel; ele é baseado no Laravel 11 e usa CSS Livewire/Tailwind para o frontend. Se você conhece o Laravel, deve se sentir em casa.
Em termos de desenvolvimento local, você pode usar os seguintes requisitos:
Se você tiver estes requisitos, pode começar clonando o repositório e instalando as dependências:
git clone https://github.com/pinkary-project/pinkary.com.git
cd pinkary.com
git checkout -b feat/your-feature # or fix/your-fix
Não envie diretamente para o branch
main
. Em vez disso, crie um novo branch e envie-o para seu branch.
A seguir, instale as dependências usando Composer e NPM:
composer install
npm install
Depois disso, configure seu arquivo .env
:
cp .env.example .env
php artisan key:generate
Prepare seu banco de dados e execute as migrações:
touch database/database.sqlite
php artisan migrate
Vincule o armazenamento à pasta pública:
php artisan storage:link
Em um terminal separado , crie os ativos no modo de observação:
npm run dev
Também em um terminal separado , execute o trabalhador da fila:
php artisan queue:work
Finalmente, inicie o servidor de desenvolvimento:
php artisan serve
Nota: Por padrão, os emails são enviados para o driver
log
. Você pode alterar isso no arquivo.env
para algo comomailtrap
.
Depois de concluir as alterações no código, execute o conjunto de testes para garantir que tudo ainda esteja funcionando:
composer test
Se tudo estiver verde, envie seu branch e crie uma solicitação pull:
git commit -am " Your commit message "
git push
Visite github.com/pinkary-project/pinkary.com/pulls e crie uma solicitação pull.
Pinkary usa algumas ferramentas para garantir a qualidade e consistência do código. Claro, Pest é a estrutura de teste preferida e também usamos PHPStan para análise estática. A cobertura do tipo Pest está em 100%, e o conjunto de testes também está em 100% de cobertura.
Em termos de estilo de código, usamos Laravel Pint para garantir que o código seja consistente e siga as convenções do Laravel. Também usamos o Rector para garantir que o código esteja atualizado com a versão mais recente do PHP.
Você executa essas ferramentas individualmente usando os seguintes 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
As solicitações pull que não passarem no conjunto de testes não serão mescladas. Portanto, conforme sugerido na seção Instalação, certifique-se de executar o conjunto de testes antes de enviar seu branch.
Pinkary está hospedado na DigitalOcean e usa Laravel Forge para gerenciar o servidor e as implantações. O servidor está rodando no Ubuntu 22.04 (LTS) x64 e é um droplet de disco de 2 vCPUs de 2 GB/25 GB.
O único serviço que utilizamos é o Mailcoach para gerenciar o envio de emails. Além disso, SQLite é utilizado como driver de banco de dados, driver de sessão, driver de fila, driver de cache, etc.
Os backups dos servidores são feitos diariamente pela Digital Ocean.
Pinkary é um software de código aberto licenciado sob a GNU Affero General Public License