Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
d8aadb8
feat: add pull request template
Abviol May 15, 2026
fd96a48
docs: add CONTRIBUTING.md
Abviol May 15, 2026
919ed7a
docs: update pull_request_template.md
Abviol May 16, 2026
a99c097
docs: udpate CONTRIBUTING.md
Abviol May 16, 2026
a0f378c
docs: add screenshots
Abviol May 16, 2026
fb0ae0e
docs: rewrite README.md
Abviol May 16, 2026
4f7000b
docs: update screenshots urls
Abviol May 16, 2026
2748cdb
docs: update COTNRIBUTING.md
Abviol May 16, 2026
2d28cef
docs: update README
Abviol May 16, 2026
dfd4854
refactor(filterDropdown): remove unused import
Abviol May 17, 2026
8710d15
docs(pull_request_template): update
Abviol May 17, 2026
65cc430
docs: update CONTRIBUTING
Abviol May 17, 2026
930fc41
docs: update CONTRIBUTING
Abviol May 17, 2026
dcadb2a
docs: add code_conventions.md
Abviol May 18, 2026
198405d
docs: update code_conventions
Abviol May 18, 2026
251ac32
docs: expand React section in code_conventions
Abviol May 19, 2026
2db826f
docs: expand TypeScript section in code_conventions
Abviol May 19, 2026
c97bc78
docs: add Imports section to code_comventions
Abviol May 19, 2026
ef95852
docs: add General section to code_conventions
Abviol May 19, 2026
d0deb5a
docs: update README
Abviol May 19, 2026
241551e
docs: update CONTRIBUTING
Abviol May 19, 2026
592726e
docs: update links in CONTRIBUTING
Abviol May 19, 2026
932a47f
docs: update links in README
Abviol May 19, 2026
9dbc986
docs: update Screenshots in README
Abviol May 19, 2026
4d19159
docs: update Navigation in CONTRIBUTING
Abviol May 20, 2026
e223533
docs: update CONTRIBUTING
Abviol May 20, 2026
6fb60f4
docs: update README
Abviol May 20, 2026
0396950
docs: update link in pull_request_template
Abviol May 20, 2026
b2138e3
docs: update link in pull_request_template
Abviol May 20, 2026
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
25 changes: 25 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
## Description
Describe the purpose of this PR and the problem it solves.

## Changes
- Added ...
- Implemented ...
- Refactored ...
- Fixed ...

## Screenshots
(if applicable)

## Testing
Describe how this was tested.

## Checklist
- [ ] Tested locally
- [ ] No ESLint errors
- [ ] No console errors
- [ ] Responsive (obligatory after the Phase 5 is reached, see [README.md](https://github.com/Abviol/scent/blob/dev/README.md))
- [ ] No new accessibility violations
- [ ] Types are correct
- [ ] Documentation/comments updated
- [ ] UI matches design
- [ ] Animations work correctly
245 changes: 245 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,245 @@
# Contributing to Scent

This document outlines the development workflow and rules to keep the codebase consistent and maintainable.

---

## Navigation

1. [Project Setup](#project-setup)
2. [Development Flow](#development-flow)
3. [Branch Naming](#branch-naming)
4. [Branch Strategy](#branch-strategy)
5. [Commit Convention](#commit-convention)
6. [Pull Requests](#pull-requests)
7. [What Should Not Be Committed](#what-should-not-be-committed)
8. [Code Style](#code-style)
9. [Definition of Done](#definition-of-done)
10. [Notes](#notes)
---

## Project Setup

### Clone the repository

```bash
git clone https://github.com/Abviol/scent.git
```

### Copy variables from .env.example to .env

```bash
cp .env.example .env
```

### Install dependencies

```bash
pnpm install
```

### Start development server

```bash
pnpm dev
```

### Build project
```bash
pnpm build
```

### Lint code
```bash
pnpm lint
```

---

## Development Flow

1. Create branch from `dev`
2. Implement changes
3. Run `pnpm lint` + `pnpm build`
4. Open PR targeting `dev`
5. Merge after review/checks

---

## Branch Naming

Use the following convention:

```
type/short-description
```

### Branch types:
- `feat`: new feature
- `fix`: bug fix
- `refactor`: code change without behavior change
- `docs`: documentation only
- `style`: formatting (no logic changes)
- `test`: adding/updating tests
- `chore`: maintenance (build tools, deps, etc.)

### Examples:
- feat/cart-drawer
- fix/hydration-issue
- refactor/navbar-state
- docs/readme-update

---

## Branch Strategy

- main → production
- dev → active development

PRs target dev; dev is merged into main only for releases.

---

## Commit Convention

We use Conventional Commits:

```
type(scope): subject

Body: explanation of what changed and why (optional)

Footer: links / breaking changes (optional)
```

### 1. Type (required)
- `feat`: new feature
- `fix`: bug fix
- `refactor`: code change without behavior change
- `docs`: documentation only
- `style`: formatting (no logic changes)
- `test`: adding/updating tests
- `chore`: maintenance (build tools, deps, etc.)

### 2. Scope (optional)
What part of the app is affected.

Examples:
- `cart`
- `navbar`
- `auth`
- `checkout`
- `api`

### 3. Subject (required)
Short description of the change

**Rules**:

- imperative mood (“add”, not “added”)
- lowercase
- no period at the end
- ideally ≤ 50–72 characters


Example:
```
feat(cart): add drawer animation
```

### 4. Body (optional)
Why and what in detail.

```markdown
Implemented smooth slide-in animation using Framer Motion.
Improves UX consistency with design system.
```

### 5. Footer (optional)
Used for metadata like:
- breaking changes
- issue references

```markdown
fix(auth): prevent login crash on empty input

Closes #42
```
or
```markdown
feat(api): change response format

BREAKING CHANGE: response now returns `userData` instead of `user`
```

### Full commit example

```markdown
feat(cart): add drawer animation

Implemented slide-in cart drawer with focus trap and escape handling.
Improves accessibility and aligns with design specs.

Closes #18
```

## Pull Requests

Before opening a PR:

- Ensure the branch is up to date with `dev`
- Run `pnpm build`
- Run `pnpm lint`
- Test changes locally

### PR Naming Convention

PR titles use the same format as commit messages:
```markdown
type(scope): short description
```

### PR requirements:
- Clear description
- Screenshots (if UI changes)
- All (applicable) checklist items completed

See [/.github/pull_request_template.md](./.github/pull_request_template.md)

---

## What should NOT be committed

- console.log left in code
- commented-out code
- unused imports
- debug flags

---

## Code Style

See [Code Conventions](./docs/code_conventions.md) for the full coding
standards applied across the codebase.

---

## Definition of Done

A task is considered complete when:

- [ ] Feature works as expected
- [ ] No ESLint errors
- [ ] No console errors
- [ ] Fully responsive (obligatory after the Phase 5 is reached, see [README.md](./README.md))
- [ ] Accessible (keyboard + ARIA where needed)
- [ ] Types are correct
- [ ] UI matches design
- [ ] Code is reviewed and clean

---

## Notes

This project is designed as a portfolio-level production simulation.
Quality, consistency, and clarity matter more than speed.
Loading
Loading