{"id":19382102,"url":"https://github.com/roundedtoken/yacht_shop_admin","last_synced_at":"2025-10-05T00:07:39.865Z","repository":{"id":192673977,"uuid":"687171836","full_name":"RoundedToken/yacht_shop_admin","owner":"RoundedToken","description":"YachtShop Admin Panel –– a minimalist SPA for internal use by the YachtShop administration. Provides flexible functionality for analyzing the store's turnover","archived":false,"fork":false,"pushed_at":"2023-11-03T21:06:42.000Z","size":287,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T16:56:04.422Z","etag":null,"topics":["admin-panel"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RoundedToken.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-09-04T19:35:44.000Z","updated_at":"2023-09-25T18:56:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"6eac5c22-1106-42c8-b0cc-226c46e41d74","html_url":"https://github.com/RoundedToken/yacht_shop_admin","commit_stats":null,"previous_names":["roundedtoken/yacht_shop_admin"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RoundedToken/yacht_shop_admin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoundedToken%2Fyacht_shop_admin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoundedToken%2Fyacht_shop_admin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoundedToken%2Fyacht_shop_admin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoundedToken%2Fyacht_shop_admin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RoundedToken","download_url":"https://codeload.github.com/RoundedToken/yacht_shop_admin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoundedToken%2Fyacht_shop_admin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278391220,"owners_count":25978947,"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","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["admin-panel"],"created_at":"2024-11-10T09:19:45.691Z","updated_at":"2025-10-05T00:07:39.849Z","avatar_url":"https://github.com/RoundedToken.png","language":"TypeScript","readme":"# ***YachtShop Admin Panel***\n\n## Description\n\nYachtShop Admin Panel –– a minimalist SPA for internal use by the [YachtShop](https://github.com/RoundedToken/yacht_shop) administration. Provides flexible functionality for analyzing the store's turnover\n\n## Technologies\n\n### Front-end stack\n\n\u003cp\u003e\n\u003cimg background-color='#ECD53F' width='64' src='https://github.com/RoundedToken/yacht_shop_admin/assets/117864556/b3ae4356-16be-454d-97dd-1d5d30f49413'/\u003e\n\u0026emsp;\n\u003cimg background-color='#ECD53F' width='64' src='https://github.com/RoundedToken/yacht_shop_admin/assets/117864556/fd48382d-8694-473e-a4ed-5edc62f1da6b'/\u003e\n\u0026emsp;\n\u003cimg background-color='#ECD53F' width='64' src='https://github.com/RoundedToken/yacht_shop_admin/assets/117864556/fdcc9377-62cb-4c87-9349-6ef598ad74d2'/\u003e\n\u0026emsp;\n\u003cimg background-color='#ECD53F' width='64' src='https://github.com/RoundedToken/yacht_shop_admin/assets/117864556/e07ce933-b1b4-4fe6-a759-c50895addf6d'/\u003e\n\u0026emsp;\n\u003cimg background-color='#ECD53F' width='64' src='https://user-images.githubusercontent.com/117864556/231823330-a690159b-92b3-4127-a6f2-52ef8356371e.svg'/\u003e\n\n\n### Back-end stack\n\n\u003cp\u003e\n\u003cimg background-color='#ECD53F' width='64' src='https://github.com/RoundedToken/yacht_shop_admin/assets/117864556/b3ae4356-16be-454d-97dd-1d5d30f49413'/\u003e\n\u0026emsp;\n\u003cimg background-color='#ECD53F' width='64' src='https://user-images.githubusercontent.com/117864556/231824252-08d1c71a-1e9c-492a-9762-e72268ab52b8.svg'/\u003e\n\u0026emsp;\n\u003cimg background-color='#ECD53F' width='64' src='https://github.com/RoundedToken/yacht_shop_admin/assets/117864556/e2e010b3-4281-4e3c-a4a0-ea1d065861bb'/\u003e\n\u0026emsp;\n\u003cimg background-color='#ECD53F' width='64' src='https://github.com/RoundedToken/yacht_shop_admin/assets/117864556/b97fbc98-d9c9-4179-b416-e6eccc6c8de8'/\u003e\n\n### DevOps stack\n\u003cp\u003e\n\u003cimg background-color='#ECD53F' width='64' src='https://github.com/RoundedToken/yacht_shop/assets/117864556/9d33c06d-9eec-402f-b901-df0678630a27'/\u003e\n\u0026emsp;\n\u003cimg background-color='#ECD53F' width='64' src='https://github.com/RoundedToken/yacht_shop/assets/117864556/aeaebabf-088b-4abe-bf5f-e11881ca983c'/\u003e\n\u0026emsp;\n\u003cimg background-color='#ECD53F' width='64' src='https://github.com/RoundedToken/yacht_shop/assets/117864556/cfb831eb-8c68-49b2-bbb9-c880f74c3850'/\u003e\n\n## About the work done\n\n### General\n\n- Implemented interconnected order and product tables with `configurable pagination`, `sorting of all columns`, `column display settings` and `summaries for key columns`\n- Supports `6 types of filters`, including a complex `time slice filter`, which involves non-trivial `work with dates`\n- All table functionality is also implemented on the server side, which provides great `application performance`\n- An order page and links from tables to products and categories of the [YachtShop](https://github.com/RoundedToken/yacht_shop) are also implemented\n\n### Back-end\n\n- Designed a `multilayer architecture` with `routing`, `controllers` and application `services` on the `Express framework`\n- Wrote complex `SQL queries` in native `MS SQL` query language\n- Applied best practices like `code reuse`, `isolation` and `parallelization of asynchronous operations`\n- Covered all scenarios with `34 isolated integration tests` \n\n### Front-end\n\n- Designed a minimalist frontend using a minimum of libraries on a performant `Vite + Preact` stack\n- Implemented 6 `custom hooks`, including useFetch with generic type, loading and error states\n- Implemented a tables using the TanStack Table v8 library\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froundedtoken%2Fyacht_shop_admin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froundedtoken%2Fyacht_shop_admin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froundedtoken%2Fyacht_shop_admin/lists"}