Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
290 commits
Select commit Hold shift + click to select a range
0077ddb
feat: replace tags with mantine components
blk-thorn May 11, 2025
89d2edb
refactor: move theme to layouts
blk-thorn May 11, 2025
47ce9e7
feat: add test util for testing Mantine components
maiano May 11, 2025
2a3cd51
chore: merge branch 'origin/feature/test-utils' into feature/main-pag…
blk-thorn May 12, 2025
f787cb2
refactor: remove css module, change header height
blk-thorn May 12, 2025
cf3eab4
feat: add validation for registration form
ann-sm May 12, 2025
d724321
fix: prevent content layout shift on mobile menu open
blk-thorn May 12, 2025
a99b726
fix: resolve date value handling issue and date parsing errors
ann-sm May 13, 2025
24e8830
fix: resolve select value handling issues
ann-sm May 13, 2025
bbd6256
feat: add default address checkbox and implement same as delivery fea…
ann-sm May 13, 2025
b70b1a3
refactor: split registration into separate page and form modules
ann-sm May 13, 2025
017e0a3
fix: remove react form input validation
ann-sm May 13, 2025
cead642
refactor: move slider and card to separate components, change slides …
blk-thorn May 13, 2025
38b3461
refactor: add address fields rendering function
ann-sm May 13, 2025
ba9f1a5
feat: replace tags with Mantine components
ann-sm May 14, 2025
f3222a1
refactor: add country field rendering function
ann-sm May 14, 2025
362014e
refactor: move styles import to app.tsx
blk-thorn May 14, 2025
782ddf3
fix: resolve error checking issue for billing and shipping inputs
ann-sm May 14, 2025
48890b0
chore: merge branch 'feature/main-page-implementation' into feature/r…
blk-thorn May 14, 2025
20417f1
style: add registration page css and mantine dates import
blk-thorn May 15, 2025
1a348c9
feat: add not found page with styles
blk-thorn May 15, 2025
3d523db
style: update error, checkbox and fieldset styles
ann-sm May 15, 2025
3c7b9e4
feat: merge pull request #7 from maiano/feature/providers-implementation
maiano May 15, 2025
883c7e1
chore: merge pull request #8 from maiano/feature/validation-implement…
maiano May 15, 2025
a458f3f
refactor: remove header
blk-thorn May 15, 2025
6a50f59
feat: add animation
blk-thorn May 15, 2025
fa2522b
fix: remove unused code
maiano May 15, 2025
74e1d0b
refactor: change the file structure
maiano May 15, 2025
dbf7082
feat: implement basic commercetools client manager
maiano May 16, 2025
3efc31b
feat: integrate commercetools client with App and add basic test
maiano May 16, 2025
d5b5013
feat: add connection error output for user
maiano May 16, 2025
93f7e6a
chore: adjust vitest config
maiano May 16, 2025
946bdd6
chore: merge commercetools-api-client-extend into registration-page-i…
ann-sm May 16, 2025
25e15cb
feat: add header
blk-thorn May 16, 2025
9270d61
chore: merge pull request #9 from maiano/feature/test-utils
maiano May 16, 2025
c7f92b8
chore: add api tests
maiano May 16, 2025
e054aa7
refactor: remove mantine components, add useRef
blk-thorn May 16, 2025
65b030e
chore: merge pull request #10 from maiano/feature/main-page-implement…
blk-thorn May 16, 2025
39a7392
feat: integrate registration form with commercetools
ann-sm May 16, 2025
8c5c8dd
refactor: replace 'a' with Link component
blk-thorn May 16, 2025
9e49f5a
chore: merge pull request #11 from maiano/feature/not-found-page-impl…
blk-thorn May 16, 2025
af6d6ff
chore: merge branch origin/feature/commercetools-api-client-extend in…
blk-thorn May 16, 2025
0e54444
refactor: add notification from mantine
maiano May 17, 2025
ce984be
refactor: create closure for client root
maiano May 17, 2025
ce7801e
chore: merge commercetools-api-client-extend into registration-page-i…
ann-sm May 17, 2025
02e6e95
feat: change request body type from MyCustomerDraft to CustomerDraft
ann-sm May 17, 2025
9e12018
feat: add notifications for registration attempts
ann-sm May 17, 2025
b057867
fix: handle error notifications for failed registration attempts
ann-sm May 17, 2025
95c6f1b
refactor: move registration logic to separate module
ann-sm May 17, 2025
232b65f
feat: add Zustand auth state management and logout option
blk-thorn May 17, 2025
527b189
feat: add homepage redirect on logout
blk-thorn May 17, 2025
9e5a9ac
feat: add validation for users under 18
ann-sm May 17, 2025
b42771c
feat: add persistent auth state with Zustand
blk-thorn May 17, 2025
7601f8f
feat: add custom notification function
maiano May 18, 2025
a78e1f7
chore: merge commercetools-api-client-extend into registration-page-i…
ann-sm May 18, 2025
d71c66c
refactor: replace notification function
ann-sm May 18, 2025
7805a47
refactor: move countries and getCountryCode function to separate modules
ann-sm May 18, 2025
450fe69
fix: change logout logic and error message
maiano May 18, 2025
cd26cba
chore: merge 'origin/release/login-registration-main' into feature/co…
maiano May 18, 2025
8d42fae
fix: update input focus styles
ann-sm May 18, 2025
79e0ed3
chore: merge pull request #12 from maiano/feature/commercetools-api-c…
maiano May 18, 2025
9742ef4
chore: merge branch feature/logout into feature/router
blk-thorn May 18, 2025
78ab388
feat: add pending state, loader and guards with logout redirection
blk-thorn May 18, 2025
c1a3b2d
fix: update error input styles and fix dateInput and combobox validation
ann-sm May 18, 2025
ffba27e
chore: merge release/login-registration-main into feature/router
blk-thorn May 18, 2025
758a2be
style: change border color for invalid inputs
ann-sm May 18, 2025
29dbfd4
feat: add logout option
blk-thorn May 17, 2025
32d0dbc
chore: merge branch release/login-registration-main into feature/logout
blk-thorn May 18, 2025
4bfe2ef
refactor: replace flags with AuthStatus
blk-thorn May 18, 2025
d5e4e2a
chore: merge pull request #13 from maiano/feature/router
maiano May 19, 2025
bf34136
feat: add login page without logic
maiano May 18, 2025
1527f6a
feat: add zod validation to form
maiano May 18, 2025
93c7fdc
feat: add useLogin hook and fix import order warnings
maiano May 19, 2025
124e1bd
feat: add function set unauthenticated to auth state and fix login pa…
maiano May 19, 2025
a6060fb
feat: add custom loader and change the login test
maiano May 19, 2025
b2eeb9f
feat: add error handling utility
maiano May 19, 2025
41e3325
fix: change error type to HttpErrorType and update message text
ann-sm May 19, 2025
3655c9e
chore: merge release/login-registration-main into feature/registratio…
ann-sm May 19, 2025
c25f3bb
chore: merge feature/login-page-implementation into feature/registrat…
ann-sm May 19, 2025
dc632a9
chore: megre branch release/login-registration-main into feature/logout
blk-thorn May 19, 2025
e4ec758
chore: merge branch feature/login-page-implementation into feature/lo…
blk-thorn May 19, 2025
64fa33e
feat: add links to titles on Header and notFoundPage
blk-thorn May 19, 2025
3ef2f57
feat: implement user registration with useLogin hook
ann-sm May 19, 2025
efdcddf
chore: merge pull request #14 from maiano/feature/logout
blk-thorn May 19, 2025
440c4c1
style: update padding for combobox input
ann-sm May 19, 2025
24f1140
fix: update paths for links to login and main page
ann-sm May 19, 2025
6ebbc2a
feat: add refresh api client
maiano May 19, 2025
9a582e9
chore: change test for registration customers
maiano May 19, 2025
7001b60
style: update logo markup and styles
ann-sm May 19, 2025
fa17323
chore: merge branch 'feature/api-client-enhancements' into feature/re…
maiano May 19, 2025
6378e0e
refactor: add logo with title component
maiano May 19, 2025
e36ab77
fix: login page acsess after logout
blk-thorn May 19, 2025
700ad80
chore: merge pull request #16 from maiano/release/login-registration-…
maiano May 19, 2025
c91eb8c
chore: merge pull request #17 from maiano/feature/registration-page-i…
maiano May 19, 2025
054a2f7
refactor: create customer draft util
maiano May 20, 2025
1f7b0ab
refactor: create registration hook
maiano May 20, 2025
54d6828
feat: add token cache
maiano May 21, 2025
ffef681
test: add tests for token cache
maiano May 21, 2025
f766d97
feat: implement token cache for clients
maiano May 21, 2025
a64b45e
feat: add logic for restore refresh client session
maiano May 22, 2025
a8578cc
feat: add debug util for log
maiano May 22, 2025
2897c7b
refactor: delete unused code from create anonymous client
maiano May 22, 2025
90f8319
fix: change api client init in the providers.tsx
maiano May 22, 2025
ed20f83
fix: fix token validation
maiano May 22, 2025
1f29770
refactor: merge pull request #19 from maiano/hotfix/registration-form…
maiano May 22, 2025
fc04f9d
feat: pull request #20 from maiano/feature/api-client-enhancements
maiano May 22, 2025
dddcc7a
chore: merge pull request #18 from maiano/release/login-registration-…
maiano May 22, 2025
adb46d0
feat: add product card and basic catalog page layout
blk-thorn May 23, 2025
1897fda
fix: authentication error
maiano May 23, 2025
44a62a3
chore: merge pull request #21 from maiano/hotfix/init-app-error
maiano May 23, 2025
b5d1a5d
feat: replace tags with mantine components, add sorting logic and cat…
blk-thorn May 23, 2025
39af8cf
chore: merge branch release/catalog-product-profile into feature/cata…
blk-thorn May 23, 2025
fcaefcf
fix: footer icon properties
blk-thorn May 23, 2025
507913a
feat: add basic profile page layout
ann-sm May 24, 2025
4363670
refactor: make reusable product card component
blk-thorn May 24, 2025
2442aac
style: fix slides alignment, add cards animation
blk-thorn May 24, 2025
b9e636d
feat: add custom useSWR hook
maiano May 25, 2025
ef2bbb7
fix: call a function
maiano May 25, 2025
3019e98
feat: add sorting by year
blk-thorn May 25, 2025
9eab705
chore: merge branch feature/use-swr-custom-hook into feature/catalog-…
blk-thorn May 25, 2025
71866a9
feat: add getUserInfo function to display current user info in profile
ann-sm May 25, 2025
c1ae406
chore: merge pull request #22 from maiano/feature/use-swr-custom-hook
maiano May 25, 2025
f6650ba
style: add grid for filters, fix product card adaptivity
blk-thorn May 25, 2025
ee86bf8
feat: add link to profile page to header
ann-sm May 26, 2025
08f106e
chore: merge release/catalog-product-profile into feature/profile-pag…
ann-sm May 26, 2025
6c96fb0
style: add additional styles to login and registration page, add headers
blk-thorn May 26, 2025
278b921
chore: merge pull request #23 from maiano/feature/catalog-page-implem…
blk-thorn May 26, 2025
df5730b
fix: resolve user info rendering issue with useEffect
ann-sm May 26, 2025
be15641
feat: add visual selection for categories with close icon and reset b…
blk-thorn May 26, 2025
eaab7cb
style: change paddings for active buttons
blk-thorn May 26, 2025
c407153
feat: implement delete address feature
ann-sm May 27, 2025
df3db70
fix: resolve incorrect badge text display issue for addresses
ann-sm May 27, 2025
ce13b44
feat: add modal for updating address details
ann-sm May 27, 2025
a1a5a8e
refactor: move sorting logic to useWineSorting hook
blk-thorn May 27, 2025
1d7f7ce
refactor: move personal info validation into separate module
ann-sm May 28, 2025
fc5a72a
feat: add modal for updating personal info
ann-sm May 28, 2025
f58247b
feat: add discounted prices display to product card
blk-thorn May 28, 2025
66d467f
chore: merge pull request #24 from maiano/feature/product-sorting
blk-thorn May 28, 2025
380858b
style: update modals styles
ann-sm May 28, 2025
4800dd2
fix: resolve modal closing issue and add shouldValidate option to for…
ann-sm May 28, 2025
86a59cb
chore: merge pull request #24 from maiano/feature/product-sorting
blk-thorn May 28, 2025
c0d1500
feat: add password change form to profile page
ann-sm May 29, 2025
78cfc80
feat: add re-authentication and notifications on password change
ann-sm May 29, 2025
8bab111
feat: add basic layout and styles
blk-thorn May 28, 2025
0190ddd
feat: add confirm new password field and extra validation
ann-sm May 29, 2025
a57e980
feat: add image slider
blk-thorn May 29, 2025
8b8f047
feat: add modal with slider
blk-thorn May 29, 2025
7ed2a76
style: remove modal scroll
blk-thorn May 29, 2025
c20a2db
refactor: put address form into separate module
ann-sm May 29, 2025
832e370
feat: implement add new address feature
ann-sm May 29, 2025
d341bbc
fix: remove badge for neither shipping nor billing addresses in addre…
ann-sm May 29, 2025
ddfd37b
feat: add useCategories hook
maiano May 30, 2025
fe2bdcc
fix: update badge display for addresses that are both shipping and bi…
ann-sm May 30, 2025
0e860b9
feat: add notifications for personal info updates and trigger for bir…
ann-sm May 30, 2025
1679abc
feat: add notifications for address actions and trigger for country i…
ann-sm May 30, 2025
810678a
fix: modal slider transition
blk-thorn May 30, 2025
745d679
feat: add address type selection and default addresses management to …
ann-sm May 30, 2025
91c0970
refactor: move setAddressActions function into separate utils module
ann-sm May 30, 2025
52cbbe4
feat: add confirmation and notifications for address deleting
ann-sm May 30, 2025
527991a
style: update styles for addresses and modals
ann-sm May 30, 2025
08f38b6
feat: add fallback and refactor category button
maiano May 30, 2025
3756465
feat: add mobile adaptation
blk-thorn May 30, 2025
ae74de5
fix: resolve issue when address is set as default but it does not hav…
ann-sm May 31, 2025
fd245fe
refactor: move get-user-info.ts to utils folder
ann-sm May 31, 2025
920abdb
chore: merge branch release/catalog-product-profile into feature/prod…
blk-thorn May 31, 2025
906767e
refactor: add createAddressAction function into setAddressActions
ann-sm May 31, 2025
b06d8ab
style: apply contain object-fit and background for vertical images
blk-thorn May 31, 2025
512956f
fix: unify image styling in main carousel
blk-thorn May 31, 2025
58d54eb
refactor: abstract image load logic into separate function
blk-thorn May 31, 2025
55a4bf1
feat: add useProductCards hook
maiano Jun 1, 2025
f3440e5
feat: implement sort and filter by category logic
maiano Jun 1, 2025
130e408
refactor: remove global styles for slider
blk-thorn Jun 1, 2025
424bfdf
fix: remove nesting of buttons
maiano Jun 1, 2025
0e94e40
refactor: useProductCards hook
maiano Jun 1, 2025
d7c25c4
chore: rename delivery to shipping for constants and UI
ann-sm Jun 1, 2025
717ff41
feat: implement pagination
maiano Jun 1, 2025
b944d03
refactor: move image handling to useImageHandler custom hook
blk-thorn Jun 1, 2025
055e553
chore: merge pull request #25 from maiano/feature/product-page-implem…
blk-thorn Jun 1, 2025
ad75015
style: change text size for address in remove address confirmation modal
ann-sm Jun 1, 2025
9af26a7
chore: merge release/catalog-product-profile into feature/profile-pag…
ann-sm Jun 1, 2025
015d239
refactor: product card to catalog product card
maiano Jun 1, 2025
8114712
refactor: add sort options to constants
maiano Jun 1, 2025
7317c77
chore: merge with release
maiano Jun 1, 2025
6825783
fix: styles and closing of burger menu
maiano Jun 1, 2025
53f9618
chore: merge pull request #26 from maiano/feature/fetch-catalog
maiano Jun 1, 2025
d39272a
feat: add logic for getting product by id
maiano Jun 1, 2025
b99440a
Merge pull request #27 from maiano/feature/profile-page-implementation
ann-sm Jun 2, 2025
62fa960
chore: merge pull request #28 from maiano/feature/product-fetch-by-id
maiano Jun 2, 2025
f7ed178
fix: raiting doubling
blk-thorn Jun 2, 2025
fea7646
fix: main slider image display
blk-thorn Jun 2, 2025
efa3298
fix: more info button size and position
blk-thorn Jun 2, 2025
2a7bca8
fix: card title size
blk-thorn Jun 2, 2025
77827a0
chore: merge pull request #29 from maiano/hotfix/product-page
blk-thorn Jun 2, 2025
1f64331
fix: resolve style issues for profile page and notifications
ann-sm Jun 2, 2025
b06d47c
Merge pull request #31 from maiano/hotfix/profile-page
ann-sm Jun 2, 2025
521f667
feat: add product fetch on home page
maiano Jun 2, 2025
0767c7c
feat: add buttons for filters to the catalog page
maiano Jun 3, 2025
e114d37
feat: add filters to the catalog page
maiano Jun 3, 2025
da78dee
feat: add keyword search
maiano Jun 3, 2025
20379e9
feat: add debounce function
maiano Jun 3, 2025
34fd7d4
fix: delete anonymous id
maiano Jun 6, 2025
80caed8
chore: merge pull request #32 from maiano/feature/catalog-preview-home
maiano Jun 6, 2025
73e1a0f
chore: merge pull request #30 from maiano/release/catalog-product-pro…
maiano Jun 6, 2025
7a41e57
fix: resolve incorrect default address removal issue
ann-sm Jun 8, 2025
164ee62
chore: merge pull request #33 from maiano/hotfix/profile-default-address
ann-sm Jun 8, 2025
efe64e2
feat: add cart state and useCartStore hook
blk-thorn Jun 9, 2025
d2c5fa4
feat: add about us page layout and styles
ann-sm Jun 10, 2025
55ece04
feat: create addLineItem function
blk-thorn Jun 10, 2025
3544459
refactor: move createCart to useCartStore hook
blk-thorn Jun 11, 2025
3346f55
feat: add changeQuantity function
blk-thorn Jun 11, 2025
256bfa6
feat: add removeFromCart function
blk-thorn Jun 11, 2025
e4baa34
feat: add clearCart function
blk-thorn Jun 12, 2025
417f26c
feat: add remove buttons to product cards
blk-thorn Jun 12, 2025
c1ef15c
feat: add removeDiscount and addDiscount functions
blk-thorn Jun 12, 2025
95ce1fd
chore: merge branch release/basket-about_us of into feature/use-cart-…
blk-thorn Jun 12, 2025
318a734
refactor: move cart creation to AppProvider
blk-thorn Jun 12, 2025
484334d
chore: merge pull request #34 from maiano/feature/use-cart-store-hook
blk-thorn Jun 12, 2025
8d8d57c
feat: add lazy imports
maiano Jun 13, 2025
bb1b11e
feat: add animations of transitions between pages
maiano Jun 13, 2025
0d53d4a
fix: guard cartItem access
maiano Jun 13, 2025
08b9729
feat: add contribution list for each teammate
ann-sm Jun 13, 2025
6006787
feat: add framer animation to about us page
ann-sm Jun 13, 2025
7798352
chore: Merge pull request #35 from maiano/feature/performance-optimiz…
maiano Jun 13, 2025
24f95e4
feat: add main layout and empty cart message
blk-thorn Jun 14, 2025
3023998
chore: merge branch release/basket-about_us into feature/basket-page-…
blk-thorn Jun 14, 2025
d7ea677
chore: update team member descriptions
ann-sm Jun 14, 2025
6b49a38
feat: add shipping info
blk-thorn Jun 14, 2025
3fd9b23
chore: merge release/basket-about_us into feature/about_us-page-imple…
ann-sm Jun 15, 2025
32d463f
style: add GitHub icon and change link styles
ann-sm Jun 15, 2025
53a5100
feat: add cart discount
blk-thorn Jun 15, 2025
d7f42b0
fix: clear cart function
blk-thorn Jun 15, 2025
eb7876f
feat: add currency formatter
blk-thorn Jun 15, 2025
7559970
feat: add info about team collaboration
ann-sm Jun 15, 2025
a154d3d
style: add adaptivity
blk-thorn Jun 15, 2025
27c67b1
refactor: move fetchShippingMethod to useCartStore hook
blk-thorn Jun 15, 2025
6cebc2a
chore: merge pull request #36 from maiano/feature/basket-page-impleme…
blk-thorn Jun 15, 2025
189ae20
chore: merge release/basket-about_us into feature/about_us-page-imple…
ann-sm Jun 15, 2025
e7f72bb
Merge pull request #38 from maiano/feature/about_us-page-implementation
ann-sm Jun 15, 2025
d605f13
fix: fix assets
maiano Jun 16, 2025
a2a9e4f
refactor: separate auth and error layouts
maiano Jun 16, 2025
d334da9
refactor: add favicon
maiano Jun 16, 2025
b5819cd
feat: add cart item count badge
maiano Jun 16, 2025
39ab04d
fix: add links to footer
maiano Jun 16, 2025
7c4c062
fix: delete logo from login and registration page
maiano Jun 17, 2025
36ea73e
fix: add relevant photos
maiano Jun 17, 2025
61d11d6
fix: disabling cart buttons during async actions
maiano Jun 18, 2025
ae593bc
fix: getting basket on login
maiano Jun 18, 2025
cfa04da
fix: recreate cart on 404
maiano Jun 18, 2025
3ca868f
chore: merge pull request #39 from maiano/fix/misc-fixes-ui
maiano Jun 19, 2025
1deed8c
Merge pull request #37 from maiano/release/basket-about_us
maiano Jun 19, 2025
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
13 changes: 13 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Editor configuration, see http://editorconfig.org
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
max_line_length = off
trim_trailing_whitespace = false
33 changes: 33 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Pull Request Template

## What's Changed

- **In 1 sentence**: What this PR does (e.g., "Adds login state management with Zustand")
- **Fixed issues**: `Fixes #123` or `Related to #321`

### Type of Change

- [ ] New feature
- [ ] Bug fix
- [ ] Refactoring
- [ ] Other (describe)

### Testing

**How to check**:

1. Step 1 (e.g., "Try logging in with invalid credentials")
2. Step 2 (e.g., "Verify cart updates when adding items")

**Tested on**:

- [ ] Desktop (Chrome)
- [ ] Mobile (Safari)

### Screenshots (if UI changed)

### Need to Know

- Any breaking changes?
- Dependencies added (`zod`, `zustand`, etc.)
- Questions
14 changes: 14 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -134,3 +134,17 @@ dist
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

# Vitest
.vitest-cache/
.vitest/
test-results.xml

# IDE
.idea/
.vscode/
*.swp
*.swo

# macOS
.DS_Store
1 change: 1 addition & 0 deletions .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
npx --no -- commitlint --edit $1
1 change: 1 addition & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
npx --no -- lint-staged
4 changes: 4 additions & 0 deletions .husky/pre-push
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
echo 'Running test...'
echo 'If there are no tests, you need to write them'

npm test
7 changes: 7 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"semi": true,
"singleQuote": true,
"trailingComma": "all",
"printWidth": 80,
"tabWidth": 2
}
21 changes: 0 additions & 21 deletions LICENSE

This file was deleted.

73 changes: 72 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,72 @@
# eCommerce-Application
# Wine not? - Modern Wine E-Commerce

## About Us

**Wine not?** brings you premium wines from around the world with:

- Handpicked wines from top vineyards
- Easy browsing and cart management
- Fast nationwide delivery
- Secure registration and checkout
- Exclusive deals for regular customers

Discover your next favorite bottle in just a few clicks!

## Technology Stack

### Core

- **Frontend**: <a href="https://reactjs.org/"><img src="https://user-images.githubusercontent.com/25181517/183897015-94a058a6-b86e-4e42-a37f-bf92061753e5.png" width="16" alt="React"> React </a> + TypeScript
- **Routing**: <a href="https://reactrouter.com/"><img src="https://reactrouter.com/favicon-light.png" width="16" alt="React Router"> React Router</a>
- **State**: <a href="https://zustand-demo.pmnd.rs/"><img src="https://github.com/pmndrs/zustand/blob/main/examples/demo/public/favicon.ico?raw=true" width="16" alt="Zustand"> Zustand</a> + <a href="https://zod.dev/"><img src="https://zod.dev/logo.svg" width="16" alt="Zod"> Zod</a>
- **Data**: <a href="https://swr.vercel.app/"><img src="https://swr.vercel.app/favicon/apple-touch-icon.png" width="16" alt="SWR"> SWR</a> (Data fetching)
- **UI**: <a href="https://mantine.dev/"><img src="https://raw.githubusercontent.com/mantinedev/mantine/master/.demo/logo.svg" width="16" alt="Mantine"> Mantine</a> + Framer Motion

### Tooling

- **Bundler**: <a href="https://vitejs.dev/"><img src="https://vitejs.dev/logo.svg" width="16" alt="Vite"> Vite</a>
- **Testing**: <a href="https://vitest.dev/"><img src="https://vitest.dev/logo.svg" width="16" alt="Vitest"> Vitest</a> + Testing Library
- **Linting**: ESLint + Prettier + Husky

## Quick Start

> [!NOTE]
> To get started with the development:
>
> 1. Clone the repository using `git clone https://github.com/maiano/eCommerce-Application.git`.
> 2. Install dependencies using `npm install`.
> 3. Run the development server using `npm run dev`.
> 4. Build the project using `npm run build`.

<details>
<summary>Scripts</summary>

- `build`: Create production build.

- `ci:format`: Check code formatting.

- `dev`: Start development server.

- `format`: Format code with Prettier.

- `lint`: Check for linting errors.

- `lint:fix`: Fix linting errors.

- `prepare`: Sets up Husky.

- `preview`: Preview production build.

- `test`: Run all tests.

- `coverage`: Generate test coverage report.

</details>

## Project Team

The following contributors have worked on this project:

- **Victoria** - Developer | Designer - [GitHub](https://github.com/blk-thorn)
- **Anna** - Developer | Project manager - [GitHub](https://github.com/ann-sm)
- **Aleksei** - Developer | Team Lead- [GitHub](https://github.com/maiano)
27 changes: 27 additions & 0 deletions commitlint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
export default {
extends: ['@commitlint/config-conventional'],
rules: {
'scope-case': [2, 'always', 'lower-case'],
'subject-empty': [2, 'never'],
'subject-full-stop': [2, 'never', '.'],
'type-case': [2, 'always', 'lower-case'],
'type-empty': [2, 'never'],
'type-enum': [
2,
'always',
[
'build',
'ci',
'chore',
'docs',
'feat',
'fix',
'refactor',
'revert',
'style',
'test',
'init',
],
],
},
};
89 changes: 89 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
import js from '@eslint/js';
import globals from 'globals';
import reactHooks from 'eslint-plugin-react-hooks';
import reactRefresh from 'eslint-plugin-react-refresh';
import tsPlugin from '@typescript-eslint/eslint-plugin';
import tsParser from '@typescript-eslint/parser';
import importPlugin from 'eslint-plugin-import';
import jsxA11y from 'eslint-plugin-jsx-a11y';

export default [
// Base
{
ignores: ['dist/**', '**/*.d.ts', 'node_modules', 'vite.http-config.ts'],
},

// JS
{
files: ['**/*.js'],
languageOptions: {
ecmaVersion: 2022,
sourceType: 'module',
globals: {
...globals.browser,
},
},
rules: {
...js.configs.recommended.rules,
},
},

// TS
{
files: ['src/**/*.{ts,tsx}'],
languageOptions: {
parser: tsParser,
parserOptions: {
project: './tsconfig.app.json',
tsconfigRootDir: import.meta.dirname,
ecmaFeatures: {
jsx: true,
},
ecmaVersion: 2022,
sourceType: 'module',
},
globals: {
...globals.browser,
},
},
plugins: {
'@typescript-eslint': tsPlugin,
import: importPlugin,
'react-hooks': reactHooks,
'react-refresh': reactRefresh,
'jsx-a11y': jsxA11y,
},
rules: {
...tsPlugin.configs.recommended.rules,
...reactHooks.configs.recommended.rules,
'react-refresh/only-export-components': 'warn',
'import/order': [
'warn',
{
groups: [
'builtin',
'external',
'internal',
'parent',
'sibling',
'index',
],
alphabetize: { order: 'asc', caseInsensitive: true },
},
],
'@typescript-eslint/no-unused-vars': 'warn',
'@typescript-eslint/no-explicit-any': 'error',
'@typescript-eslint/no-non-null-assertion': 'error',
'@typescript-eslint/no-unsafe-argument': 'error',
'@typescript-eslint/no-unsafe-assignment': 'error',
'@typescript-eslint/no-unsafe-call': 'error',
'@typescript-eslint/no-unsafe-member-access': 'error',
'@typescript-eslint/no-unsafe-return': 'error',

'jsx-a11y/alt-text': 'warn',
'jsx-a11y/anchor-is-valid': 'warn',
'jsx-a11y/aria-props': 'warn',
'jsx-a11y/click-events-have-key-events': 'warn',
},
},
];
13 changes: 13 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wine not?</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
Loading