Skip to content

Commit

Permalink
merge develop into main
Browse files Browse the repository at this point in the history
  • Loading branch information
mckenziearts committed Dec 26, 2024
2 parents 6917c97 + c51cdb5 commit 850066a
Show file tree
Hide file tree
Showing 866 changed files with 28,743 additions and 23,535 deletions.
19 changes: 13 additions & 6 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://laravel.cm.test
APP_LOCALE=fr
FILAMENT_PATH=cp

LOG_CHANNEL=stack
Expand Down Expand Up @@ -35,6 +36,7 @@ MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=[email protected]
MAIL_FROM_NAME="${APP_NAME}"
MAIL_SUPPORT=[email protected]

MAILGUN_DOMAIN=
MAILGUN_SECRET=
Expand All @@ -56,11 +58,6 @@ GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
GITHUB_REDIRECT=${APP_URL}/auth/github/callback

SLACK_WEBHOOK_URL=
SLACK_TEAM_NAME="Laravel Cameroun"
SLACK_API_TOKEN=
SLACK_TEAM_URL="https://laravelcm.slack.com"

MARKDOWNX_GIPHY_API_KEY=
TORCHLIGHT_TOKEN=
TORCHLIGHT_THEME=moonlight-ii
Expand All @@ -73,6 +70,16 @@ MEDIA_DISK=media
FILAMENT_FILESYSTEM_DISK=${MEDIA_DISK}

SENTRY_LARAVEL_DSN=
SENTRY_TRACES_SAMPLE_RATE=
SENTRY_TRACES_SAMPLE_RATE=1.0

NOTCHPAY_PUBLIC_KEY=

TWITTER_CONSUMER_KEY=your-consumer-key
TWITTER_CONSUMER_SECRET=your-consumer-secret
TWITTER_ACCESS_TOKEN=your-accesss_token
TWITTER_ACCESS_SECRET=your-access-token-secret

GOOGLE_RECAPTCHA_SITE_KEY=your-recaptcha-site-key
GOOGLE_RECAPTCHA_SECRET_KEY=your-secret-key

GITHUB_FINE_GRAINED_TOKEN=
1 change: 0 additions & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
custom: https://laravel.cm/sponsors
github: mckenziearts

26 changes: 26 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,29 @@ updates:
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: composer
directory: "/"
schedule:
interval: weekly
day: friday
groups:
php-dependencies:
update-types:
- "minor"
- "patch"
allow:
- dependency-type: direct
versioning-strategy: increase-if-necessary
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: thursday
groups:
js-dependencies:
update-types:
- "minor"
- "patch"
allow:
- dependency-type: direct
versioning-strategy: increase-if-necessary
10 changes: 4 additions & 6 deletions .github/workflows/dependabot-auto-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,15 @@ jobs:
uses: dependabot/[email protected]
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"

- name: Auto-merge Dependabot PRs for semver-minor updates
if: ${{steps.metadata.outputs.update-type == 'version-update:semver-minor'}}
run: gh pr merge --auto --merge "$PR_URL"
env:
PR_URL: ${{github.event.pull_request.html_url}}
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

PR_URL: ${{ github.event.pull_request.html_url }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Auto-merge Dependabot PRs for semver-patch updates
if: ${{steps.metadata.outputs.update-type == 'version-update:semver-patch'}}
run: gh pr merge --auto --merge "$PR_URL"
env:
PR_URL: ${{github.event.pull_request.html_url}}
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
PR_URL: ${{ github.event.pull_request.html_url }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6 changes: 3 additions & 3 deletions .github/workflows/quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: 👀 Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: 🪄 Setup
uses: ./.github/actions/setup
- name: 🔮 Install Composer Dependencies
Expand All @@ -28,7 +28,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: 👀 Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: 🪄 Setup
uses: ./.github/actions/setup
- name: 🔮 Install Composer Dependencies
Expand All @@ -40,7 +40,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: 👀 Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: 🪄 Setup
uses: ./.github/actions/setup
- name: 🕵️‍♂️ Run Composer Validate
Expand Down
28 changes: 28 additions & 0 deletions .github/workflows/update-changelog.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: "Update Changelog"

on:
release:
types: [released]

jobs:
update:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3
with:
ref: main

- name: Update Changelog
uses: stefanzweifel/changelog-updater-action@v1
with:
latest-version: ${{ github.event.release.name }}
release-notes: ${{ github.event.release.body }}

- name: Commit updated CHANGELOG
uses: stefanzweifel/git-auto-commit-action@v4
with:
branch: main
commit_message: Update CHANGELOG
file_pattern: CHANGELOG.md
9 changes: 2 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
npm-debug.log
yarn-error.log
yarn.lock
package-lock.json

pnpm-lock.yml
/vendor
composer.phar

Expand All @@ -18,18 +17,14 @@ composer.phar
.phpunit.cache
.phpunit.result.cache
/public/build
/public/**/filament
/public/hot
/public/storage
/public/media
/public/sitemap.xml
/public/**/*.xml
/storage/*.key
/storage/framework/cache
.env
.env.backup
.phpstorm.meta.php
_ide_helper.php
_ide_helper_models.php

# OSX
#
Expand Down
7 changes: 7 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
node_modules
/vendor
/public
.git
package-lock.json
yarn.lock
composer.lock
9 changes: 9 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"printWidth": 120,
"semi": false,
"singleQuote": true,
"tabWidth": 4,
"tailwindConfig": "./tailwind.config.js",
"trailingComma": "all",
"plugins": ["prettier-plugin-tailwindcss"]
}
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Changelog

All notable changes to `laravel.cm` will be documented in this file.

Updates should follow the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
75 changes: 48 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,67 +1,80 @@
<p align="center">
<img src="./art/logo.svg" height="250" />
<img src="./art/logo.svg" height="250" alt="Community logo" />
</p>

<p align="center">
<a href="https://laravel.com">
<img alt="Laravel v9.x" src="https://img.shields.io/badge/Laravel-v9.x-FF2D20">
<img alt="Laravel v11.x" src="https://img.shields.io/badge/Laravel-v11.x-FF2D20">
</a>
<a href="https://github.com/laravelcm/laravel.cm/actions">
<img src="https://github.com/laravelcm/laravel.cm/workflows/Tests/badge.svg" alt="Build Status" />
</a>
<a href="https://github.com/laravelcm/laravel.cm/actions/workflows/coding-standards.yml">
<img src="https://github.com/laravelcm/laravel.cm/actions/workflows/coding-standards.yml/badge.svg" alt="Coding Standards" />
<a href="https://github.com/laravelcm/laravel.cm/actions/workflows/quality.yml">
<img src="https://github.com/laravelcm/laravel.cm/actions/workflows/quality.yml/badge.svg" alt="Coding Standards" />
</a>
<a href="https://forge.laravel.com">
<img src="https://img.shields.io/endpoint?url=https%3A%2F%2Fforge.laravel.com%2Fsite-badges%2Fb0b9e269-e85c-40eb-9b8d-cfa8197a1bb2&style=plastic" alt="Laravel Forge Site Deployment Status" />
</a>
</p>

## Laravel.cm

Ce dépôt contient le code source du site de [Laravel.cm](https://laravel.cm). Laravel Cameroun est la plus grande communauté de
développeurs PHP & Laravel résidant au Cameroun.

## Rejoindre la communauté

Vous pouvez rejoindre la communauté ou nous suivre via nos différentes plateformes

[Site Officiel](https://laravel.cm) - [Facebook](https://www.facebook.com/laravelcm) - [Twitter](https://twitter.com/laravelcm) - [Rejoindre Slack](https://laravel.cm/slack) - [Rejoindre Discord](https://laravel.cm/discord)
- [Discord](https://discord.gg/KNp6brbyVD)
- [Telegram](https://t.me/laravelcameroun)
- [Twitter](https://twitter.com/laravelcm)
- [Facebook](https://www.facebook.com/laravelcm)

## Sponsors

Nous tenons à remercier ces **entreprises extraordinaires** pour leur parrainage. Si vous souhaitez devenir sponsor, veuillez visiter <a href="https://laravel.cm/sponsors">la page Laravel.cm de Sponsoring</a>.

- **[Laravel Shopper](https://laravelshopper.io)**
- **[Laravel Shopper](https://laravelshopper.dev)**
- [GDG Douala](https://gdg.community.dev/gdg-douala)
- [NotchPay](https://notchpay.co)
- [Dark Code](https://dark-code.cm)
- [Sharuco](https://sharuco.lndev.me)
- [NotchPay](https://notchpay.co?utm_source=laravel.cm)
- [LN UI](https://ui.lndev.me?utm_source=laravel.cm)

## Caractéristiques Serveur
The following tools are required in order to start the installation.

- PHP >=8.0
Les dépendances suivantes sont nécessaires pour démarrer l'installation.

- PHP >= 8.2
- [Composer](https://getcomposer.org/download/)
- [Yarn](https://yarnpkg.com/getting-started/install)
- [Valet](https://laravel.com/docs/valet#installation)
- [Valet](https://laravel.com/docs/valet#installation) or [Herd](https://herd.laravel.com)

## Installation
> Notez que vous êtes libre d'ajuster l'emplacement `~/Sites/laravel.cm` à n'importe quel répertoire de votre choix sur votre machine. Ce faisant, assurez-vous d'exécuter la commande `valet link` dans le répertoire souhaité.

> Notez que vous êtes libre d'ajuster l'emplacement `~/Sites/laravel.cm` à n'importe quel répertoire de votre choix sur votre machine. Ce faisant, assurez-vous d'exécuter la commande `valet link` (si vous utilisez Laravel Valet) dans le répertoire souhaité.
1. Clonez ce repo avec la commande `git clone [email protected]:laravelcm/laravel.cm.git ~/Sites/laravel.cm`
2. Exécuter `composer install` pour installer les dépendances PHP
3. Configurez une base de données locale appelée `laravelcm`
3. Configurez une base de données locale (vous pouvez l'appeler `laravelcm`)
4. Exécutez `composer setup` pour configurer l'application
5. Configurer un pilote de messagerie fonctionnel comme [Mailtrap](https://mailtrap.io/) ou [Maildev](https://maildev.github.io/maildev/)
6. Configurez les fonctionnalités (facultatives) ci-dessous

Vous pouvez maintenant visiter l'application dans votre navigateur en visitant [http://laravel.cm.test](http://laravel.cm.test). Si vous avez amorcé la base de données, vous pouvez vous connecter à un compte de test avec ** `johndoe` ** & **` password` **.
Vous pouvez maintenant visiter l'application dans votre navigateur en visitant [http://laravel.cm.test](http://laravel.cm.test).
Si vous avez amorcé la base de données, vous pouvez vous connecter à un compte de test avec ** `johndoe` ** & **` password` **.

Une fois que vous avez installé et configuré, pour avoir des dummy data, vous devez exécuter la commande :

Une fois que vous avez installé et configuré, pour avoir des dummy data vous devez exécuter la commande
```shell
php artisan db:seed --class=DummyDatabaseSeeder
```

### Github Authentication (optionnel)
Pour que l'authentification Github fonctionne localement, vous devez [enregistrer une nouvelle application OAuth sur Github](https://github.com/settings/applications/new). Utilisez `http://laravel.cm.test` pour l'URL de la page d'accueil et `http://laravel.cm.test/auth/github` pour l'URL de rappel. Lorsque vous avez créé l'application, remplissez l'ID et le secret dans votre fichier `.env` dans les variables d'environnement ci-dessous. Vous devriez maintenant pouvoir vous authentifier avec Github.
### GitHub Authentication (optionnel)

Pour que l'authentification Github fonctionne localement, vous devez [enregistrer une nouvelle application OAuth sur Github](https://github.com/settings/applications/new).
Utilisez `http://laravel.cm.test` pour l'URL de la page d'accueil et `http://laravel.cm.test/auth/github` pour l'URL de rappel.
Lorsque vous avez créé l'application, remplissez l'ID et le secret dans votre fichier `.env` dans les variables d'environnement ci-dessous.
Vous devriez maintenant pouvoir vous authentifier avec Github.

```shell
GITHUB_ID=
Expand All @@ -70,7 +83,10 @@ GITHUB_URL=http://laravel.cm.test/auth/github
```

### Twitter Sharing (optionnel)
Pour permettre le partage automatique des articles publiés sur Twitter, vous devez [créer une application Twitter](https://developer.twitter.com/apps/). Une fois l'application créée, mettez à jour les variables ci-dessous dans votre fichier `.env`. La clé et le secret du consommateur ainsi que le jeton et le secret d'accès se trouvent dans la section «Clés et jetons» de l'interface utilisateur des développeurs Twitter.

Pour permettre le partage automatique des articles publiés sur Twitter, vous devez [créer une application Twitter](https://developer.twitter.com/apps/).
Une fois l'application créée, mettez à jour les variables ci-dessous dans votre fichier `.env`.
La clé et le secret du consommateur ainsi que le jeton et le secret d'accès se trouvent dans la section « Clés et jetons » de l'interface utilisateur des développeurs Twitter.

```shell
TWITTER_CONSUMER_KEY=
Expand All @@ -79,22 +95,27 @@ TWITTER_ACCESS_TOKEN=
TWITTER_ACCESS_SECRET=
```

Les articles approuvés sont partagés dans l'ordre dans lequel ils ont été soumis pour approbation. Les articles sont partagés deux fois par jour à 14h00 et 18h00 UTC. Une fois qu'un article a été partagé, il ne sera plus partagé.
Les articles approuvés sont partagés dans l'ordre dans lequel ils ont été soumis pour approbation. Les articles sont partagés deux fois par jour à 14h00 et 18h00 UTC.
Une fois qu'un article a été partagé, il ne sera plus partagé.

### Notifications Telegram (optionnel)
Laravel Cameroun peut notifier les administrateurs des nouveaux articles soumis via Telegram. Pour que cela fonctionne, vous devez configurer un [bot Telegram](https://core.telegram.org/bots) et obtenir un token. Ensuite, configurez le canal sur lequel vous souhaitez envoyer les messages relatifs aux nouveaux articles.

Laravel Cameroun peut notifier les administrateurs des nouveaux articles soumis via Telegram. Pour que cela fonctionne, vous devez configurer un [bot Telegram](https://core.telegram.org/bots) et obtenir un token.
Ensuite, configurez le canal sur lequel vous souhaitez envoyer les messages relatifs aux nouveaux articles.

```shell
TELEGRAM_BOT_TOKEN=
TELEGRAM_CHANNEL=
```

## Commands
Command | Description
--- | ---
**`composer pest`** | Exécuter les tests
`php artisan migrate:fresh --seed` | Reset la base de données
`yarn run watch` | Surveillez les changements dans les fichiers CSS et JS
| Command | Description |
|------------------------------------|--------------------------------------------------------|
| **`composer lint`** | Appliquer le formatage de code avec `laravel/pint` |
| **`composer test:phpstan`** | Appliquer l'analyse statique avec phpstan |
| **`composer test:pest`** | Exécuter les tests |
| `php artisan migrate:fresh --seed` | Reset la base de données |
| `yarn && yarn dev` | Surveillez les changements dans les fichiers CSS et JS |

## Maintainers

Expand All @@ -110,7 +131,7 @@ Veuillez lire notre [Code de conduite](CODE_OF_CONDUCT.md) avant de contribuer o

## Vulnérabilités de sécurité

Si vous découvrez une faille de sécurité dans Laravel.cm, veuillez envoyer un e-mail immédiatement à [[email protected]](mailto:[email protected]). **Ne créez pas de problème pour la vulnérabilité.**
Si vous découvrez une faille de sécurité dans Laravel.cm, veuillez envoyer un e-mail immédiatement à [[email protected]](mailto:[email protected]). **Ne créez pas de problème pour la vulnérabilité.**

## License

Expand Down
21 changes: 21 additions & 0 deletions app/Actions/Article/ApprovedArticleAction.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?php

declare(strict_types=1);

namespace App\Actions\Article;

use App\Gamify\Points\ArticlePublished;
use App\Models\Article;

final class ApprovedArticleAction
{
public function execute(Article $article): Article
{
$article->approved_at = now();
$article->save();

givePoint(new ArticlePublished($article));

return $article;
}
}
Loading

0 comments on commit 850066a

Please sign in to comment.