Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated operation documentation #3475

Merged
merged 3 commits into from
Jan 28, 2025
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions docs/docs/docs/developer-resources/introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
id: introduction
title: Introduction
slug: /developer-resources/introduction
sidebar_position: 1
---

Welcome to the Talawa-Admin
12 changes: 12 additions & 0 deletions docs/docs/docs/developer-resources/operation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
id: operation
title: Operation
slug: /developer-resources/operation
sidebar_position: 3
---

## Introduction

This section covers how Talawa Admin operates

Coming soon.
65 changes: 65 additions & 0 deletions docs/docs/docs/developer-resources/testing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
id: testing
title: Testing
slug: /developer-resources/testing
sidebar_position: 4
---

## Introduction

It is important to test our code. If you are a contributor, please follow these steps.

### Running tests

You can run the tests for `talawa-admin` using this command:

```bash
npm run test

```

### Debugging tests

You can see the output of failing tests in broswer by running `jest-preview` package before running your tests

```bash
npm run jest-preview
npm run test

```

You don't need to re-run the `npm run jest-preview` command each time, simply run the `npm run test` command if the Jest Preview server is already running in the background, it'll automatically detect any failing tests and show the preview at `http://localhost:3336` as shown in this screenshot -

![Debugging Test Demo](../../../static/img/markdown/installation/jest-preview.webp)

### Linting code files

You can lint your code files using this command:

```bash
npm run lint:fix
```

### Husky for Git Hooks

We are using the package `Husky` to run git hooks that run according to different git workflows.

##### pre-commit hook

We run a pre-commit hook which automatically runs code quality checks each time you make a commit and also fixes some of the issues. This way you don't have to run them manually each time.

If you don't want these pre-commit checks running on each commit, you can manually opt out of it using the `--no-verify` flag with your commit message as shown:-

```bash
git commit -m "commit message" --no-verify
```

##### post-merge hook

We are also running a post-merge(post-pull) hook which will automatically run "npm install" only if there is any change made to pakage.json file so that the developer has all the required dependencies when pulling files from remote.

If you don't want this hook to run, you can manually opt out of this using the `--no-verify` flag while using the merge command `git pull`:

```bash
git pull --no-verify
```
10 changes: 10 additions & 0 deletions docs/docs/docs/developer-resources/troubleshooting.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
id: troubleshooting
title: Operation
slug: /developer-resources/troubleshooting
sidebar_position: 5
---

## Introduction

Coming soon.
100 changes: 0 additions & 100 deletions docs/docs/docs/getting-started/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -267,103 +267,3 @@ REACT_APP_RECAPTCHA_SITE_KEY="this_is_the_recaptcha_key"
#### Setting up Compiletime and Runtime logs

Set the `ALLOW_LOGS` to "YES" if you want warnings , info and error messages in your console or leave it blank if you dont need them or want to keep the console clean

## Post Configuration Steps

It's now time to start Talawa-Admin and get it running

### Running Talawa-Admin

Run the following command to start `talawa-admin` development server:

```bash
npm run serve

```

### Accessing Talawa-Admin

By default `talawa-admin` runs on port `4321` on your system's localhost. It is available on the following endpoint:

```

http://localhost:4321/

```

If you have specified a custom port number in your `.env` file, Talawa-Admin will run on the following endpoint:

```

http://localhost:\$\{\{customPort\}\}/

```

Replace `${{customPort}}` with the actual custom port number you have configured in your `.env` file.

### Talawa-Admin Registration

The first time you navigate to the running talawa-admin's website you'll land at talawa-admin registration page. Sign up using whatever credentials you want and create the account. Make sure to remember the email and password you entered because they'll be used to sign you in later on.

### Talawa-Admin Login

Now sign in to talawa-admin using the `email` and `password` you used to sign up.

## Testing

It is important to test our code. If you are a contributor, please follow these steps.

### Running tests

You can run the tests for `talawa-admin` using this command:

```bash
npm run test

```

### Debugging tests

You can see the output of failing tests in broswer by running `jest-preview` package before running your tests

```bash
npm run jest-preview
npm run test

```

You don't need to re-run the `npm run jest-preview` command each time, simply run the `npm run test` command if the Jest Preview server is already running in the background, it'll automatically detect any failing tests and show the preview at `http://localhost:3336` as shown in this screenshot -

![Debugging Test Demo](../../../static/img/markdown/installation/jest-preview.webp)

### Linting code files

You can lint your code files using this command:

```bash
npm run lint:fix
```

### Husky for Git Hooks

We are using the package `Husky` to run git hooks that run according to different git workflows.

##### pre-commit hook

We run a pre-commit hook which automatically runs code quality checks each time you make a commit and also fixes some of the issues. This way you don't have to run them manually each time.

If you don't want these pre-commit checks running on each commit, you can manually opt out of it using the `--no-verify` flag with your commit message as shown:-

```bash
git commit -m "commit message" --no-verify
```

##### post-merge hook

We are also running a post-merge(post-pull) hook which will automatically run "npm install" only if there is any change made to pakage.json file so that the developer has all the required dependencies when pulling files from remote.

If you don't want this hook to run, you can manually opt out of this using the `--no-verify` flag while using the merge command `git pull`:

```bash
git pull --no-verify
```
67 changes: 67 additions & 0 deletions docs/docs/docs/getting-started/operation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
id: operation
title: Operation, Registration & Login
slug: /operation
sidebar_position: 2
---

This page outlines how to successfully operate the application

## Operation

Operation of the application requires these steps.

### Running Talawa-Admin

Run the following command to start `talawa-admin` development server:

```bash
npm run serve

```

### Accessing Talawa-Admin

By default `talawa-admin` runs on port `4321` on your system's localhost. It is available on the following endpoint:

```

http://localhost:4321/

```

If you have specified a custom port number in your `.env` file, Talawa-Admin will run on the following endpoint:

```

http://localhost:{{customPort}}/

```

Replace `{{customPort}}` with the actual custom port number you have configured in your `.env` file.

## Registration

The first time you navigate to the running talawa-admin's website you'll land at talawa-admin registration page. Sign up using whatever credentials you want and create the account. Make sure to remember the email and password you entered because they'll be used to sign you in later on.

## Login

The login process is different depending on the scenario

### Normal Login

Now sign in to talawa-admin using the `email` and `password` you used to sign up.

### First Time API Administrator Login

The email address and password are defined these API environment variables:

1. `API_ADMINISTRATOR_USER_EMAIL_ADDRESS`
1. `API_ADMINISTRATOR_USER_NAME`
1. `API_ADMINISTRATOR_USER_PASSWORD`

In a development environment, the defaults are:

1. `API_ADMINISTRATOR_USER_EMAIL_ADDRESS`[email protected]
1. `API_ADMINISTRATOR_USER_NAME`=administrator
1. `API_ADMINISTRATOR_USER_PASSWORD`=password
Comment on lines +63 to +67
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Add security warning for default credentials.

The documentation should emphasize that these are development-only credentials and should never be used in production.

 In a development environment, the defaults are:

 1. `API_ADMINISTRATOR_USER_EMAIL_ADDRESS`[email protected]
 1. `API_ADMINISTRATOR_USER_NAME`=administrator
 1. `API_ADMINISTRATOR_USER_PASSWORD`=password
+
+> **⚠️ Security Warning**: These are default credentials for development purposes only. 
+> Never use these credentials in a production environment. Always change these values
+> to secure credentials before deploying to production.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
In a development environment, the defaults are:
1. `API_ADMINISTRATOR_USER_EMAIL_ADDRESS`=[email protected]
1. `API_ADMINISTRATOR_USER_NAME`=administrator
1. `API_ADMINISTRATOR_USER_PASSWORD`=password
In a development environment, the defaults are:
1. `API_ADMINISTRATOR_USER_EMAIL_ADDRESS`=[email protected]
1. `API_ADMINISTRATOR_USER_NAME`=administrator
1. `API_ADMINISTRATOR_USER_PASSWORD`=password
> **⚠️ Security Warning**: These are default credentials for development purposes only.
> Never use these credentials in a production environment. Always change these values
> to secure credentials before deploying to production.

11 changes: 9 additions & 2 deletions docs/sidebars.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,15 @@ const sidebars: SidebarsConfig = {

{
type: 'category',
label: 'Plugins',
items: [{ type: 'autogenerated', dirName: 'docs/plugins' }],
label: 'Developer Resources',
items: [
{ type: 'autogenerated', dirName: 'docs/developer-resources' },
{
type: 'category',
label: 'Plugins',
items: [{ type: 'autogenerated', dirName: 'docs/plugins' }],
},
],
},

{
Expand Down
Loading