This is a core of website with content management system.

### Getting Started

1. Clone this repo.

```bash
git clone https://github.com/freshgalangmandiri/web-cms-fullstack
```

2. Install dependencies

```
cd web-cms-fullstack
npm install
```

3. Run Project

```
npm run dev
```

### Project Structure

In general, this is the folder structure of the project.

```
src
└── app
│   ├── (Admin)
│   │   ├── dashboard
│   │   │   ├── [...slug]
│   │   │   ├── categories/ ...
│   │   │   ├── gallery / ...
│   │   │   ├── posts / ...
│   │   │   ├── tags / ...
│   │   │   ├── users / ...
│   │   │   ├── users-login / ...
│   │   │   ├── dashboard.module.css
│   │   │   ├── layout.js
│   │   │   ├── not-found.js
│   │   │   └── page.js
│   │   ├── login / ...
│   │   ├── unauthorize / ...
│   ├── (Web)
│   │   └── post / ...
│   ├── api / ...
│   ├── forbidden / ...
│   ├── library / ....
│   ├── favicon.ico
│   ├── global-error.js
│   ├── globals.css
│   ├── layout.js
│   ├── manifest.js
│   ├── page.js
│   ├── page.module.css
│   ├── robots.js
│   ├── sitemap.js
├── components
│   ├── administrator / ...
│   ├── editor / ...
│   ├── google / ...
│   ├── ui / ...
│   └── web / ...
├── config / ...
├── data / ...
├── hooks / ...
├── middlewares / ...
├── models / ...
├── providers / ...
├── utils
│   ├── clients.js
│   ├── db.config.js
│   └── middlewarewrap.js
├── server.js
├── .env
├── .gitignore
└── ...
```

### Collaboration workflow rules

#### Standard Types (prefixes):

- `feature/` → for new features
- `fix/` → for bug fixes
- `hotfix/` → for urgent production fixes
- `chore/` → for maintenance (deps, configs, CI/CD, etc.)
- `docs/` → for documentation

#### Follow the Conventional Commits style Types:

- `feat` → new feature
- `fix` → bug fix
- `docs` → documentation only
- `style` → code style (formatting, no logic change)
- `refactor` → code restructuring without behavior change
- `test` → adding or fixing tests
- `chore` → build process, tooling, configs

> Examples:
>
> 1. `feat(auth): add JWT-based login`
> 2. `fix(api): handle null values in user response`
> 3. `docs(readme): update setup instructions`
> 4. `refactor(db): optimize query for invoices`
> 5. `chore(ci): add lint step to GitHub Actions`
