Skip to content

Commit 81cb6db

Browse files
committed
merge develop into main
2 parents bf2c3fd + b9df58e commit 81cb6db

File tree

864 files changed

+28703
-24078
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

864 files changed

+28703
-24078
lines changed

.env.example

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ APP_ENV=local
33
APP_KEY=
44
APP_DEBUG=true
55
APP_URL=http://laravel.cm.test
6+
APP_LOCALE=fr
67
FILAMENT_PATH=cp
78

89
LOG_CHANNEL=stack
@@ -35,6 +36,7 @@ MAIL_PASSWORD=null
3536
MAIL_ENCRYPTION=null
3637
MAIL_FROM_ADDRESS=[email protected]
3738
MAIL_FROM_NAME="${APP_NAME}"
39+
MAIL_SUPPORT=[email protected]
3840

3941
MAILGUN_DOMAIN=
4042
MAILGUN_SECRET=
@@ -56,11 +58,6 @@ GITHUB_CLIENT_ID=
5658
GITHUB_CLIENT_SECRET=
5759
GITHUB_REDIRECT=${APP_URL}/auth/github/callback
5860

59-
SLACK_WEBHOOK_URL=
60-
SLACK_TEAM_NAME="Laravel Cameroun"
61-
SLACK_API_TOKEN=
62-
SLACK_TEAM_URL="https://laravelcm.slack.com"
63-
6461
MARKDOWNX_GIPHY_API_KEY=
6562
TORCHLIGHT_TOKEN=
6663
TORCHLIGHT_THEME=moonlight-ii
@@ -73,6 +70,16 @@ MEDIA_DISK=media
7370
FILAMENT_FILESYSTEM_DISK=${MEDIA_DISK}
7471

7572
SENTRY_LARAVEL_DSN=
76-
SENTRY_TRACES_SAMPLE_RATE=
73+
SENTRY_TRACES_SAMPLE_RATE=1.0
7774

7875
NOTCHPAY_PUBLIC_KEY=
76+
77+
TWITTER_CONSUMER_KEY=your-consumer-key
78+
TWITTER_CONSUMER_SECRET=your-consumer-secret
79+
TWITTER_ACCESS_TOKEN=your-accesss_token
80+
TWITTER_ACCESS_SECRET=your-access-token-secret
81+
82+
GOOGLE_RECAPTCHA_SITE_KEY=your-recaptcha-site-key
83+
GOOGLE_RECAPTCHA_SECRET_KEY=your-secret-key
84+
85+
GITHUB_FINE_GRAINED_TOKEN=

.github/FUNDING.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
custom: https://laravel.cm/sponsors
22
github: mckenziearts
3-

.github/dependabot.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,29 @@ updates:
55
directory: "/"
66
schedule:
77
interval: "weekly"
8+
- package-ecosystem: composer
9+
directory: "/"
10+
schedule:
11+
interval: weekly
12+
day: friday
13+
groups:
14+
php-dependencies:
15+
update-types:
16+
- "minor"
17+
- "patch"
18+
allow:
19+
- dependency-type: direct
20+
versioning-strategy: increase-if-necessary
21+
- package-ecosystem: npm
22+
directory: "/"
23+
schedule:
24+
interval: weekly
25+
day: thursday
26+
groups:
27+
js-dependencies:
28+
update-types:
29+
- "minor"
30+
- "patch"
31+
allow:
32+
- dependency-type: direct
33+
versioning-strategy: increase-if-necessary

.github/workflows/dependabot-auto-merge.yml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,15 @@ jobs:
1616
uses: dependabot/[email protected]
1717
with:
1818
github-token: "${{ secrets.GITHUB_TOKEN }}"
19-
2019
- name: Auto-merge Dependabot PRs for semver-minor updates
2120
if: ${{steps.metadata.outputs.update-type == 'version-update:semver-minor'}}
2221
run: gh pr merge --auto --merge "$PR_URL"
2322
env:
24-
PR_URL: ${{github.event.pull_request.html_url}}
25-
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
26-
23+
PR_URL: ${{ github.event.pull_request.html_url }}
24+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2725
- name: Auto-merge Dependabot PRs for semver-patch updates
2826
if: ${{steps.metadata.outputs.update-type == 'version-update:semver-patch'}}
2927
run: gh pr merge --auto --merge "$PR_URL"
3028
env:
31-
PR_URL: ${{github.event.pull_request.html_url}}
32-
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
29+
PR_URL: ${{ github.event.pull_request.html_url }}
30+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: "Update Changelog"
2+
3+
on:
4+
release:
5+
types: [released]
6+
7+
jobs:
8+
update:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Checkout code
13+
uses: actions/checkout@v3
14+
with:
15+
ref: main
16+
17+
- name: Update Changelog
18+
uses: stefanzweifel/changelog-updater-action@v1
19+
with:
20+
latest-version: ${{ github.event.release.name }}
21+
release-notes: ${{ github.event.release.body }}
22+
23+
- name: Commit updated CHANGELOG
24+
uses: stefanzweifel/git-auto-commit-action@v4
25+
with:
26+
branch: main
27+
commit_message: Update CHANGELOG
28+
file_pattern: CHANGELOG.md

.gitignore

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
npm-debug.log
55
yarn-error.log
66
yarn.lock
7-
package-lock.json
8-
7+
pnpm-lock.yml
98
/vendor
109
composer.phar
1110

@@ -18,18 +17,14 @@ composer.phar
1817
.phpunit.cache
1918
.phpunit.result.cache
2019
/public/build
21-
/public/**/filament
2220
/public/hot
2321
/public/storage
2422
/public/media
25-
/public/sitemap.xml
23+
/public/**/*.xml
2624
/storage/*.key
2725
/storage/framework/cache
2826
.env
2927
.env.backup
30-
.phpstorm.meta.php
31-
_ide_helper.php
32-
_ide_helper_models.php
3328

3429
# OSX
3530
#

.prettierignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
node_modules
2+
/vendor
3+
/public
4+
.git
5+
package-lock.json
6+
yarn.lock
7+
composer.lock

.prettierrc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"printWidth": 120,
3+
"semi": false,
4+
"singleQuote": true,
5+
"tabWidth": 4,
6+
"tailwindConfig": "./tailwind.config.js",
7+
"trailingComma": "all",
8+
"plugins": ["prettier-plugin-tailwindcss"]
9+
}

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Changelog
2+
3+
All notable changes to `laravel.cm` will be documented in this file.
4+
5+
Updates should follow the [Keep a CHANGELOG](http://keepachangelog.com/) principles.

README.md

Lines changed: 48 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,80 @@
11
<p align="center">
2-
<img src="./art/logo.svg" height="250" />
2+
<img src="./art/logo.svg" height="250" alt="Community logo" />
33
</p>
44

55
<p align="center">
66
<a href="https://laravel.com">
7-
<img alt="Laravel v9.x" src="https://img.shields.io/badge/Laravel-v9.x-FF2D20">
7+
<img alt="Laravel v11.x" src="https://img.shields.io/badge/Laravel-v11.x-FF2D20">
88
</a>
99
<a href="https://github.com/laravelcm/laravel.cm/actions">
1010
<img src="https://github.com/laravelcm/laravel.cm/workflows/Tests/badge.svg" alt="Build Status" />
1111
</a>
12-
<a href="https://github.com/laravelcm/laravel.cm/actions/workflows/coding-standards.yml">
13-
<img src="https://github.com/laravelcm/laravel.cm/actions/workflows/coding-standards.yml/badge.svg" alt="Coding Standards" />
12+
<a href="https://github.com/laravelcm/laravel.cm/actions/workflows/quality.yml">
13+
<img src="https://github.com/laravelcm/laravel.cm/actions/workflows/quality.yml/badge.svg" alt="Coding Standards" />
1414
</a>
1515
<a href="https://forge.laravel.com">
1616
<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" />
1717
</a>
1818
</p>
1919

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

2425
## Rejoindre la communauté
26+
2527
Vous pouvez rejoindre la communauté ou nous suivre via nos différentes plateformes
2628

27-
[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)
29+
- [Discord](https://discord.gg/KNp6brbyVD)
30+
- [Telegram](https://t.me/laravelcameroun)
31+
- [Twitter](https://twitter.com/laravelcm)
32+
- [Facebook](https://www.facebook.com/laravelcm)
2833

2934
## Sponsors
35+
3036
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>.
3137

32-
- **[Laravel Shopper](https://laravelshopper.io)**
38+
- **[Laravel Shopper](https://laravelshopper.dev)**
3339
- [GDG Douala](https://gdg.community.dev/gdg-douala)
34-
- [NotchPay](https://notchpay.co)
35-
- [Dark Code](https://dark-code.cm)
36-
- [Sharuco](https://sharuco.lndev.me)
40+
- [NotchPay](https://notchpay.co?utm_source=laravel.cm)
41+
- [LN UI](https://ui.lndev.me?utm_source=laravel.cm)
3742

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

41-
- PHP >=8.0
45+
Les dépendances suivantes sont nécessaires pour démarrer l'installation.
46+
47+
- PHP >= 8.2
4248
- [Composer](https://getcomposer.org/download/)
4349
- [Yarn](https://yarnpkg.com/getting-started/install)
44-
- [Valet](https://laravel.com/docs/valet#installation)
50+
- [Valet](https://laravel.com/docs/valet#installation) or [Herd](https://herd.laravel.com)
4551

4652
## Installation
47-
> 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é.
53+
54+
> 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é.
4855
4956
1. Clonez ce repo avec la commande `git clone [email protected]:laravelcm/laravel.cm.git ~/Sites/laravel.cm`
5057
2. Exécuter `composer install` pour installer les dépendances PHP
51-
3. Configurez une base de données locale appelée `laravelcm`
58+
3. Configurez une base de données locale (vous pouvez l'appeler `laravelcm`)
5259
4. Exécutez `composer setup` pour configurer l'application
5360
5. Configurer un pilote de messagerie fonctionnel comme [Mailtrap](https://mailtrap.io/) ou [Maildev](https://maildev.github.io/maildev/)
5461
6. Configurez les fonctionnalités (facultatives) ci-dessous
5562

56-
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` **.
63+
Vous pouvez maintenant visiter l'application dans votre navigateur en visitant [http://laravel.cm.test](http://laravel.cm.test).
64+
Si vous avez amorcé la base de données, vous pouvez vous connecter à un compte de test avec ** `johndoe` ** & **` password` **.
65+
66+
Une fois que vous avez installé et configuré, pour avoir des dummy data, vous devez exécuter la commande :
5767

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

63-
### Github Authentication (optionnel)
64-
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.
72+
### GitHub Authentication (optionnel)
73+
74+
Pour que l'authentification Github fonctionne localement, vous devez [enregistrer une nouvelle application OAuth sur Github](https://github.com/settings/applications/new).
75+
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.
76+
Lorsque vous avez créé l'application, remplissez l'ID et le secret dans votre fichier `.env` dans les variables d'environnement ci-dessous.
77+
Vous devriez maintenant pouvoir vous authentifier avec Github.
6578

6679
```shell
6780
GITHUB_ID=
@@ -70,7 +83,10 @@ GITHUB_URL=http://laravel.cm.test/auth/github
7083
```
7184

7285
### Twitter Sharing (optionnel)
73-
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.
86+
87+
Pour permettre le partage automatique des articles publiés sur Twitter, vous devez [créer une application Twitter](https://developer.twitter.com/apps/).
88+
Une fois l'application créée, mettez à jour les variables ci-dessous dans votre fichier `.env`.
89+
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.
7490

7591
```shell
7692
TWITTER_CONSUMER_KEY=
@@ -79,22 +95,27 @@ TWITTER_ACCESS_TOKEN=
7995
TWITTER_ACCESS_SECRET=
8096
```
8197

82-
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é.
98+
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.
99+
Une fois qu'un article a été partagé, il ne sera plus partagé.
83100

84101
### Notifications Telegram (optionnel)
85-
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.
102+
103+
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.
104+
Ensuite, configurez le canal sur lequel vous souhaitez envoyer les messages relatifs aux nouveaux articles.
86105

87106
```shell
88107
TELEGRAM_BOT_TOKEN=
89108
TELEGRAM_CHANNEL=
90109
```
91110

92111
## Commands
93-
Command | Description
94-
--- | ---
95-
**`composer pest`** | Exécuter les tests
96-
`php artisan migrate:fresh --seed` | Reset la base de données
97-
`yarn run watch` | Surveillez les changements dans les fichiers CSS et JS
112+
| Command | Description |
113+
|------------------------------------|--------------------------------------------------------|
114+
| **`composer lint`** | Appliquer le formatage de code avec `laravel/pint` |
115+
| **`composer test:phpstan`** | Appliquer l'analyse statique avec phpstan |
116+
| **`composer test:pest`** | Exécuter les tests |
117+
| `php artisan migrate:fresh --seed` | Reset la base de données |
118+
| `yarn && yarn dev` | Surveillez les changements dans les fichiers CSS et JS |
98119

99120
## Maintainers
100121

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

111132
## Vulnérabilités de sécurité
112133

113-
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é.**
134+
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é.**
114135

115136
## License
116137

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace App\Actions\Article;
6+
7+
use App\Gamify\Points\ArticlePublished;
8+
use App\Models\Article;
9+
10+
final class ApprovedArticleAction
11+
{
12+
public function execute(Article $article): Article
13+
{
14+
$article->approved_at = now();
15+
$article->save();
16+
17+
givePoint(new ArticlePublished($article));
18+
19+
return $article;
20+
}
21+
}

0 commit comments

Comments
 (0)