{"id":25168883,"url":"https://github.com/vladimirdegt/template-frontend","last_synced_at":"2026-04-28T20:03:34.577Z","repository":{"id":219961464,"uuid":"723706475","full_name":"VladimirDegt/Template-Frontend","owner":"VladimirDegt","description":null,"archived":false,"fork":false,"pushed_at":"2024-01-30T14:55:58.000Z","size":1104,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T07:19:57.730Z","etag":null,"topics":["headless","react","redux-toolkit","typescript","webpack"],"latest_commit_sha":null,"homepage":"https://luxury-crisp-edd165.netlify.app/profile","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VladimirDegt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-11-26T14:22:03.000Z","updated_at":"2024-01-30T14:57:52.000Z","dependencies_parsed_at":"2024-01-30T16:13:36.231Z","dependency_job_id":"f3314564-d8d9-4e83-8c5d-5c039c4b7da4","html_url":"https://github.com/VladimirDegt/Template-Frontend","commit_stats":null,"previous_names":["vladimirdegt/template-frontend"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VladimirDegt%2FTemplate-Frontend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VladimirDegt%2FTemplate-Frontend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VladimirDegt%2FTemplate-Frontend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VladimirDegt%2FTemplate-Frontend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VladimirDegt","download_url":"https://codeload.github.com/VladimirDegt/Template-Frontend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247061886,"owners_count":20877176,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["headless","react","redux-toolkit","typescript","webpack"],"created_at":"2025-02-09T07:19:53.572Z","updated_at":"2026-04-28T20:03:34.526Z","avatar_url":"https://github.com/VladimirDegt.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Запуск проєкту\n\n```\nnpm install - встановлюємо залежності\nnpm run start або npm run star:webpack - запуск frontend проєкту\n```\n\n----\n\n## Скрипти\n\n- `npm run start` - Запуск frontend прєкта на vite\n- `npm run star:webpack` - Запуск frontend проєкта на webpack dev server\n- `npm run build:prod` - Сбірка у prod режимі\n- `npm run build:dev` - Сбірка і dev режимі (не мінімизировано)\n- `npm run lint:ts` - Перевірка ts файлів линтером\n- `npm run lint:ts:fix` - Виправлення ts файлів линтером\n- `npm run lint:scss` - Перевірка scss файлів style линтером\n- `npm run lint:scss:fix` - Виправлення scss файлів style линтером\n- `npm run unit` - Запуск unit тестів з jest\n- `npm run pret` - Формотування файлів prettier\n\n----\n\n## Архітектура проєкту\n\nПроєкт написано у відповідності до методології Feature sliced design\n\nПосилання на документацію - [feature sliced design](https://feature-sliced.design/docs/get-started/tutorial)\n\n----\n\n## Тести\n\nУ проєкте неведено приклад використання тестів:\n1) Звичайні unit тесты на jest - `npm run test:unit`\n\n----\n\n## Линтинг\n\nУ проєкті використовується eslint для перевірки typescript коду та stylelint для перевірки файлів зі стилями.\n\nДля більш гнучкого контролю додані додаткові правила. Eslint має підключення з prettier.\n\n##### Запуск линтеров\n\n- `npm run lint:ts` - Перевірка ts файлів линтером\n- `npm run lint:ts:fix` - Виправлення ts файлів линтером\n- `npm run lint:scss` - Перевірка scss файлів style линтером\n- `npm run lint:scss:fix` - Виправлення scss файлів style линтером\n\n----\n\n## Конфигурація проєкту\n\nДля девелопингу проєкт містить 2 конфіга:\n1. Webpack - ./config/build\n2. vite - vite.config.ts\n\nОбидва збірщика адаптовано під основні фічи проєкту.\n\nУся конфігурація зберігається у /config\n- /config/babel - babel\n- /config/build - webpack\n- /config/jest - конфігурация тестовой середи\n\n----\n\n## CI pipeline и pre commit хуки\n\nКонфігурация github actions знаходиться у /.github/workflows.\nВ ci прогоняються усі типу линтингу, тести, сбірка проєкту.\n\nУ прекоммит хуках перевіряємо проєкт линтерами, конфіг в /.husky\n\n----\n\n### Робота с даними\n\nВзаємодія з даними відбувається за допомогою [Redux toolkit](https://redux-toolkit.js.org/)\n\nЗапити на сервер відправляються за допомогою [RTK query](https://redux-toolkit.js.org/rtk-query/overview)\n\n----\n\n## Сутності (entities)\n\n- [Country](/src/entities/Country)\n- [Currency](/src/entities/Currency)\n- [Profile](/src/entities/Profile)\n- [User](/src/entities/User)\n\n## Фічи (features)\n\n- [AuthByUsername](/src/features/AuthByUsername)\n- [DragAndDrop](/src/features/DragAndDrop)\n- [EditableProfileCard](/src/features/EditableProfileCard)\n- [TextEditor](/src/features/TextEditor)\n\n----\n\n### Оптимізація\n\nДля прикладу виконане леніве завантаження модалки\n\nВикористано леніве завантаження бібліотеки, наприкладі 'react-toastify'\n\n----\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvladimirdegt%2Ftemplate-frontend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvladimirdegt%2Ftemplate-frontend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvladimirdegt%2Ftemplate-frontend/lists"}