diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md
index 66f196dcc..8676b8c25 100644
--- a/.github/ISSUE_TEMPLATE/question.md
+++ b/.github/ISSUE_TEMPLATE/question.md
@@ -1,6 +1,6 @@
---
name: Question
-about: The issue tracker is not for questions. Please use email contact@dzcode.io or other social links for help/questions.
+about: The issue tracker is not for questions. Please use Discord or other social channels for help or questions.
labels: question
---
@@ -10,12 +10,12 @@ THE ISSUE TRACKER IS NOT FOR QUESTIONS.
DO NOT CREATE A NEW ISSUE TO ASK A QUESTION.
-Please use one of the following resources for help:
+Please use one of the following resources for help or questions:
**Questions**
+- https://discord.gg/TGbPsSMJC2
- https://github.com/dzcode-io/dzcode.io/discussions/new?category=q-a
-- https://dzcode.slack.com/
- https://twitter.com/dzcode_io
- https://www.facebook.com/dzcode.io
- https://www.facebook.com/groups/dzcode.io
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 77f4cc420..9ff63f82d 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,7 +1,6 @@
-
-#### Type of change
+
-
-
-- [ ] Bug fix (non-breaking change which fixes an issue)
-- [ ] New feature (non-breaking change which adds functionality)
-- [ ] Breaking change (changes that require a fresh clone of the repo)
-- [ ] I'm not sure
+- [ ] Bug fix
+- [ ] New feature
+- [ ] Other
diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml
index fb9fabfb7..903c35c70 100644
--- a/.github/release-drafter.yml
+++ b/.github/release-drafter.yml
@@ -1,8 +1,9 @@
-name-template: "stg-v$RESOLVED_VERSION"
-tag-template: "stg-v$RESOLVED_VERSION"
-tag-prefix: "stg-v"
-include-pre-releases: true
-prerelease: true
+# This file drafts a release (e.g.: v6.1.2) each time a PR is merged
+# Used by: .github/workflows/draft-new-release.yml
+
+name-template: "v$RESOLVED_VERSION"
+tag-template: "v$RESOLVED_VERSION"
+tag-prefix: "v"
change-template: "- $TITLE (#$NUMBER)"
version-resolver:
major:
@@ -11,15 +12,14 @@ version-resolver:
minor:
labels:
- "feature"
+ - "enhancement"
default: patch
template: |
- deploying `main` branch to stage:
-
- $CHANGES
+ [www.dzcode.io](https://www.dzcode.io)
- To test on `stage` environment go to:
+ Join us on [Discord](https://discord.gg/TGbPsSMJC2)
- - [stage.dzcode.io](https://stage.dzcode.io)
+ $CHANGES
autolabeler:
- label: "breaking-change"
diff --git a/.github/release.yml b/.github/release.yml
index 6168b8ca4..605300db2 100644
--- a/.github/release.yml
+++ b/.github/release.yml
@@ -1,36 +1,29 @@
+# This file is used by GitHub when clicking on "Generate Release Notes" in the "Releases" tab.
+# We try to align its content with .github/release-drafter.yml.
+# Used in case of manual release creation.
+
changelog:
categories:
- - title: Features 🎉
- labels:
- - feature
-
- - title: Breaking Changes 🚨
+ - title: Breaking Changes
labels:
- breaking-change
- - title: Enhancements 💅
+ - title: Features
labels:
+ - feature
- enhancement
- - title: Bug fixes 🐞
+ - title: Bug fixes
labels:
- bug
- bug-fix
- bugfix
- fix
- - title: Projects 🚀
+ - title: Projects
labels:
- project
- - title: Articles 📰
- labels:
- - article
-
- - title: Documentation 📜
- labels:
- - documentation
-
- title: Other Changes
labels:
- "*"
diff --git a/.github/workflows/ci.hourly.yml b/.github/workflows/ci.hourly.yml.skip
similarity index 100%
rename from .github/workflows/ci.hourly.yml
rename to .github/workflows/ci.hourly.yml.skip
diff --git a/.github/workflows/stage-release.yml b/.github/workflows/draft-new-release.yml
similarity index 94%
rename from .github/workflows/stage-release.yml
rename to .github/workflows/draft-new-release.yml
index 53fa79c14..20c625d2b 100644
--- a/.github/workflows/stage-release.yml
+++ b/.github/workflows/draft-new-release.yml
@@ -26,6 +26,7 @@ jobs:
runs-on: ubuntu-latest
steps:
# Drafts your next Release notes as Pull Requests are merged into "master"
+ # TODO-ZM: update the latest version of the action
- uses: release-drafter/release-drafter@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/README.md b/README.md
index d49b845c4..1c345cfd1 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,15 @@
# dzcode.io
-[
](https://join.slack.com/t/dzcode/shared_invite/zt-ek9kscb7-m8z_~cBjX79l~uchuABPFQ)
+[](https://discord.gg/TGbPsSMJC2)
-The code for [dzcode.io](https://dzcode.io), a website for Algerian open-source community.
+The code for [dzcode.io](https://dzcode.io), a website for the Algerian open-source community.
**Apps:**
-- [`./web`](./web) ( [dzcode.io](https://dzcode.io) or [stage.dzcode.io](https://stage.dzcode.io) )
- - lighthouse results are in: [lh.dzcode.io](https://lh.dzcode.io) and [lh-stage.dzcode.io](https://lh-stage.dzcode.io)
-- [`./api`](./api) ( [api.dzcode.io](https://api.dzcode.io) or [api-stage.dzcode.io](https://api-stage.dzcode.io) )
+- [`./web`](./web) ([dzcode.io](https://dzcode.io) or [stage.dzcode.io](https://stage.dzcode.io))
+- [`./api`](./api) ([api.dzcode.io](https://api.dzcode.io) or [api-stage.dzcode.io](https://api-stage.dzcode.io))
-**Packages**
+**Packages:**
- [`./data`](./data)
- [`./packages/models`](./packages/models)
@@ -19,26 +18,26 @@ The code for [dzcode.io](https://dzcode.io), a website for Algerian open-source
## Get Started
-### Perquisites
+### Prerequisites
Make sure you have:
- [Git](https://git-scm.com/)
-- [Nodejs](https://nodejs.org/) version 20 or higher (we recommend using [volta](https://docs.volta.sh/guide/getting-started) over plain install or [nvm](https://github.com/nvm-sh/nvm))
+- [Node.js](https://nodejs.org/) version 20 or higher (we recommend using [volta](https://docs.volta.sh/guide/getting-started) over a plain install or [nvm](https://github.com/nvm-sh/nvm))
- [Docker](https://www.docker.com/) installed and running.
### Run it locally
-- Open terminal and clone the repo:
+- Open a terminal and clone the repo:
```sh
- git clone https://github.com/dzcode-io/dzcode.io.git
+git clone https://github.com/dzcode-io/dzcode.io.git
```
- Make **sure** you are in the project **root**:
```sh
- cd dzcode.io
+cd dzcode.io
```
- Install dependencies:
@@ -47,46 +46,21 @@ Make sure you have:
npm install
```
-- Run it locally by either:
-
-```sh
-npm run dev:web
-```
-
-```sh
-npm run dev:api
-```
+- Run it locally:
```sh
npm run dev:all
```
-- For api server go to
-- For web server go to
-- For search server go to
-
-**Note**
-
-In [`./api`](./api), keep in mind that you have limited calls to Github Api (60 calls per hour), the [FetchService](./api/src/fetch/service.ts) is doing a great job at caching theses calls so it doesn't unnecessarily consume Github API quota. If you wish to extend the limit from 60 to 5000, simply create a [Github Personal Access Token](https://github.com/settings/tokens) (make sure it has `Access public repositories` checked), and set it in `./api/.env` like this:
+- For the API server, go to
+- For the web server, go to
+- For the search server, go to
-```.env
-GITHUB_TOKEN=Paste_You_Token_Here
-NODE_ENV=development
-```
-
-### Run e2e locally
-
-Make **sure** you are in the project **root**, then:
-
-- run web e2e tests by:
-
-```sh
-cd web && npm run e2e:dev
-```
+Please check the README.md files inside `./api` and `./web` for more info.
## Contributing
-To get started see [the contributing guidelines](https://github.com/dzcode-io/dzcode.io/blob/main/.github/CONTRIBUTING.md).
+To get started, see [the contributing guidelines](https://github.com/dzcode-io/dzcode.io/blob/main/.github/CONTRIBUTING.md).
If you use VSCode, please make sure to have a `.vscode/settings.json` file with the content:
@@ -107,8 +81,8 @@ If you use VSCode, please make sure to have a `.vscode/settings.json` file with
### Before You Create a Pull Request
-- If you already forked the repository, please make sure your fork is up-to-date, following [this simple steps](https://www.dzcode.io/Learn/Git_Basics/Syncing_An_Old_Forked_Repository_With_Upstream).
-- Please make sure your code follows the style guideline defined in this repo, for that simply run `npm run lint:fix` to ensure the conformity. This process should happen automatically whenever you commit your changes, but you can always do it manually when your Pull Request checks are failing due to linting errors.
+- If you already forked the repository, please make sure your fork is up-to-date by following [these simple steps](./data/models/documentation/Git_Basics/Syncing_An_Old_Forked_Repository_With_Upstream/content.md).
+- Please make sure your code follows the style guidelines defined in this repo. Simply run `npm run lint:fix` to ensure conformity. This process should happen automatically whenever you commit your changes, but you can always do it manually if your Pull Request checks are failing due to linting errors.
### List Your Project
@@ -116,4 +90,4 @@ Follow [these steps](https://github.com/dzcode-io/dzcode.io/blob/main/data/model
## License
-Licensed under the MIT license (twitter: [@dzcode_io](https://twitter.com/dzcode_io)).
+Licensed under the MIT license (Twitter: [@dzcode_io](https://twitter.com/dzcode_io)).
diff --git a/api/README.md b/api/README.md
index f0f58fcb4..1608b93dc 100644
--- a/api/README.md
+++ b/api/README.md
@@ -2,22 +2,30 @@
## Folder structure
-The app is split into modules, each module (any folder directly under `api/src`) can have service(s) and/or controller(s)
+The app is split into modules. Each module (any folder directly under `api/src`) can have service(s) and/or controller(s).
-- example of a service is [./src/github/service.ts](./src/github/service.ts)
-- example of a controller is [./contributor/controller.ts](./contributor/controller.ts)
-
-There is still temporary old code inside:
-
-- [./src/app/controllers](./src/app/controllers)
-- [./src/app/loaders](./src/app/loaders)
-- [./src/app/routes](./src/app/routes)
-- [./src/app/services](./src/app/services)
+- An example of a service is [./src/github/service.ts](./src/github/service.ts).
+- An example of a controller is [./contributor/controller.ts](./contributor/controller.ts).
## Dependency injection
-We use typedi for dependency injection, please check their docs.
+We use typedi for dependency injection. Please check their documentation.
We use it in both services and controllers.
-**Note:** if the readme is still unclear, please create a PR with your suggested changes/additions
+## The `.env` file
+
+At a minimum, you need a `.env` file with this content:
+
+```.env
+NODE_ENV=development
+```
+
+Keep in mind that you have limited calls to the GitHub API (60 calls per hour). The [FetchService](./api/src/fetch/service.ts) does a great job of caching these calls so it doesn't unnecessarily consume the GitHub API quota. If you wish to extend the limit from 60 to 5000, simply create a [GitHub Personal Access Token](https://github.com/settings/tokens) (make sure it has `Access public repositories` checked), and set it in `./api/.env` like this:
+
+```.env
+GITHUB_TOKEN=Paste_Your_Token_Here
+NODE_ENV=development
+```
+
+**Note:** If the README is still unclear, please create a PR with your suggested changes/additions.
diff --git a/data/models/documentation/Getting_Started/content.md b/data/models/documentation/Getting_Started/content.md
index e19bc809d..b08f1c2e5 100644
--- a/data/models/documentation/Getting_Started/content.md
+++ b/data/models/documentation/Getting_Started/content.md
@@ -24,6 +24,6 @@ So, you already master or have enough knowledge about a specific topic in IT? yo
## Have Other general suggestions?
-Feel free to reach out to [contact@dzcode.io](mailto:contact@dzcode.io) or create an issue in [dzcode.io repository](https://github.com/dzcode-io/dzcode.io), or chat with the community members on [Slack workspace](https://join.slack.com/t/dzcode/shared_invite/zt-ek9kscb7-m8z_~cBjX79l~uchuABPFQ).
+Feel free to reach out to [contact@dzcode.io](mailto:contact@dzcode.io) or create an issue in [dzcode.io repository](https://github.com/dzcode-io/dzcode.io), or chat with the community members on [Discord](https://discord.gg/TGbPsSMJC2).
Have fun!
diff --git a/web/README.md b/web/README.md
new file mode 100644
index 000000000..ab1450ab5
--- /dev/null
+++ b/web/README.md
@@ -0,0 +1,29 @@
+# Web code
+
+## Folder structure
+
+The app is split into main folders inside `./src`:
+
+- `./components`: reusable React components
+- `./pages`
+- `./redux`: contains slices (reducers and actions), and async actions
+
+Then there are additional folders:
+
+- `./utils`: miscellaneous code
+- `./assets`: non-code files
+- `_*` folders: boilerplate code
+
+## State management
+
+We use Redux Toolkit, but only the "Redux" part. Please check their documentation.
+
+## Run e2e locally
+
+Make **sure** you have already run `npm run dev:all` at the root of the repo, then in a separate terminal run:
+
+```sh
+npm run e2e:dev
+```
+
+**Note:** If the README is still unclear, please create a PR with your suggested changes/additions.
diff --git a/web/src/_entry/app.tsx b/web/src/_entry/app.tsx
index 0f9412a78..faf09521e 100644
--- a/web/src/_entry/app.tsx
+++ b/web/src/_entry/app.tsx
@@ -81,8 +81,8 @@ const footerSections: FooterProps["sections"] = [
href: "https://www.github.com/dzcode-io",
},
{
- localeKey: "footer-category-link-text-slack",
- href: "https://join.slack.com/t/dzcode/shared_invite/zt-ek9kscb7-m8z_~cBjX79l~uchuABPFQ",
+ localeKey: "footer-category-link-text-discord",
+ href: "https://discord.gg/TGbPsSMJC2",
},
{
localeKey: "footer-category-link-text-facebook",
diff --git a/web/src/components/locale/dictionary.ts b/web/src/components/locale/dictionary.ts
index 7432c0640..a8e392729 100644
--- a/web/src/components/locale/dictionary.ts
+++ b/web/src/components/locale/dictionary.ts
@@ -10,12 +10,12 @@ export type DictionaryKeys = AllDictionaryKeys &
// @TODO-ZM: use a de-deduplication tool for repeated text
export const dictionary = {
- "navbar-section-contribute": { en: "Contribute", ar: "اساهم" },
- "navbar-section-connect": { en: "Connect", ar: "اتواصل" },
- "navbar-section-learn": { en: "Learn", ar: "اتعلم" },
+ "navbar-section-contribute": { en: "Contribute", ar: "أساهم" },
+ "navbar-section-connect": { en: "Connect", ar: "أتواصل" },
+ "navbar-section-learn": { en: "Learn", ar: "أتعلّم" },
"navbar-section-projects": { en: "Projects", ar: "مشاريع" },
"navbar-section-articles": { en: "Articles", ar: "مقالات" },
- "navbar-section-faq": { en: "FAQ", ar: "اسئلة / اجوبة" },
+ "navbar-section-faq": { en: "FAQ", ar: "أسئلة / أجوبة" },
"footer-category-title-helpful-links": {
en: "Helpful Links",
@@ -25,13 +25,13 @@ export const dictionary = {
"footer-category-link-text-learn": { en: "Learn", ar: "اتعلم" },
"footer-category-link-text-projects": { en: "Projects", ar: "مشاريع" },
"footer-category-link-text-articles": { en: "Articles", ar: "مقالات" },
- "footer-category-link-text-faq": { en: "FAQ", ar: "اسئلة / اجوبة" },
+ "footer-category-link-text-faq": { en: "FAQ", ar: "أسئلة / أجوبة" },
"footer-category-title-social-media": {
en: "Social Media",
ar: "وسائل التواصل الاجتماعي",
},
"footer-category-link-text-github": { en: "Github", ar: "جيتهاب" },
- "footer-category-link-text-slack": { en: "Slack", ar: "سلاك" },
+ "footer-category-link-text-discord": { en: "Discord", ar: "ديسكورد" },
"footer-category-link-text-facebook": { en: "Facebook", ar: "فيسبوك" },
"footer-category-link-text-instagram": { en: "Instagram", ar: "انستغرام" },
"footer-category-link-text-youTube": { en: "YouTube", ar: "يوتيوب" },
@@ -39,7 +39,7 @@ export const dictionary = {
"footer-category-link-text-linkedIn": { en: "LinkedIn", ar: "لينكد إن" },
"faq-title": {
en: "Frequently Asked Questions | DzCode i/o",
- ar: "اللاسئلة الاكثر طرحا | DzCode i / o",
+ ar: "الأسئلة الأكثر طرحًا | DzCode i / o",
},
"faq-description": {
en: "Frequently asked questions about DzCode i/o",
@@ -47,7 +47,7 @@ export const dictionary = {
},
"faq-header-title": {
en: "Frequently Asked Questions",
- ar: "اللاسئلة الاكثر طرحا",
+ ar: "الأسئلة الأكثر طرحًا",
},
"faq-need-help": {
en: "Still need help? send us an email at ",
@@ -55,7 +55,7 @@ export const dictionary = {
},
"faq-topic-1": {
en: "General",
- ar: "اسئلة عامة",
+ ar: "أسئلة عامة",
},
"faq-topic-1-question-1": {
en: "What exactly is DzCode i/o ?",
@@ -98,8 +98,8 @@ export const dictionary = {
ar: "كيف أنضم إلى DzCode i / o؟",
},
"faq-topic-2-answer-1": {
- en: `We're most active in slack, we recommend you [join us there](https://join.slack.com/t/dzcode/shared_invite/zt-ek9kscb7-m8z_~cBjX79l~uchuABPFQ).`,
- ar: `نحن أكثر نشاطًا في Slack ، نوصيك [بالانضمام إلينا هناك](https://join.slack.com/t/dzcode/shared_invite/zt-ek9kscb7-m8z_~cBjX79l~uchuABPFQ)`,
+ en: `We're most active in Discord, we recommend you [join us there](https://discord.gg/TGbPsSMJC2).`,
+ ar: `نحن أكثر نشاطًا في Discord ، نوصيك بـ [الانضمام إلينا هناك](https://discord.gg/TGbPsSMJC2).`,
},
"faq-topic-2-question-2": {
en: "I want to code, where should I start?",