{"id":31070866,"url":"https://github.com/moelsayed089/task-front-end","last_synced_at":"2026-04-07T21:31:05.088Z","repository":{"id":313875987,"uuid":"1053272207","full_name":"moelsayed089/Task-Front-end","owner":"moelsayed089","description":"A frontend project built with React + TypeScript + Vite, using Redux Toolkit for state management, React Hook Form + Zod for form validation, and Shadcn UI for UI components.","archived":false,"fork":false,"pushed_at":"2025-09-09T08:39:02.000Z","size":73,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-09T10:19:55.911Z","etag":null,"topics":["api","react-router","reactjs","redux","tailwindcss","typescript","vite","zod"],"latest_commit_sha":null,"homepage":"https://task-front-end-oos.vercel.app/","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/moelsayed089.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-09T08:13:53.000Z","updated_at":"2025-09-09T08:39:05.000Z","dependencies_parsed_at":"2025-09-09T10:23:50.778Z","dependency_job_id":"a64dfff8-0bb8-4303-a176-31ad5c5dc9ef","html_url":"https://github.com/moelsayed089/Task-Front-end","commit_stats":null,"previous_names":["moelsayed089/task-front-end"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/moelsayed089/Task-Front-end","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moelsayed089%2FTask-Front-end","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moelsayed089%2FTask-Front-end/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moelsayed089%2FTask-Front-end/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moelsayed089%2FTask-Front-end/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moelsayed089","download_url":"https://codeload.github.com/moelsayed089/Task-Front-end/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moelsayed089%2FTask-Front-end/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275333311,"owners_count":25446100,"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-09-15T02:00:09.272Z","response_time":75,"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":["api","react-router","reactjs","redux","tailwindcss","typescript","vite","zod"],"created_at":"2025-09-15T23:03:17.965Z","updated_at":"2025-09-15T23:04:15.265Z","avatar_url":"https://github.com/moelsayed089.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📝 Task Frontend\n\nA frontend project built with **React + TypeScript + Vite**, using **Redux Toolkit** for state management, **React Hook Form + Zod** for form validation, and **Shadcn UI** for UI components.\n\n---\n\n## 🚀 Tech Stack\n\n- **React 18 + TypeScript**\n- **Vite** (bundler)\n- **Redux Toolkit** (state management)\n- **React Hook Form + Zod** (form handling \u0026 validation)\n- **TanStack Query** (data fetching)\n- **Axios** (API requests)\n- **Shadcn UI + TailwindCSS** (UI \u0026 styling)\n\n## 📂 Project Structure\n\n    ```bash\n    src/\n    │── app/ # Global app setup\n    │ ├── api/ # Axios \u0026 Query client configs\n    │ │ ├── axiosConfig.ts\n    │ │ ├── queryClient.ts\n    │ │\n    │ ├── hooks/ # Custom reusable hooks\n    │ │ ├── useGetQuery.ts\n    │ │ ├── usePostMutation.ts\n    │ │\n    │ ├── providers/ # Context/Providers\n    │ │ ├── theme-provider.tsx\n    │ │\n    │ ├── routes/ # Routing setup\n    │ │ ├── routes.tsx\n    │ │\n    │ ├── store/ # Redux store (root store)\n    │ │ ├── index.ts\n    │ │\n    │ └── index.ts # App-level exports (optional barrel file)\n    │\n    │── components/ # Shared/global UI components\n    │ ├── mode-toggle.tsx\n    │\n    │── features/ # Feature-based modules\n    │ ├── dashboard/ # Dashboard feature\n    │ │ ├── components/\n    │ │ │ ├── ErrorElement.tsx\n    │ │ │ ├── MainSection.tsx\n    │ │ │ ├── NotFound.tsx\n    │ │ │ ├── Sidebar.tsx\n    │ │ │ ├── WorkSummary.tsx\n    │ │ ├── pages/\n    │ │ │ ├── LayoutDashboardPage.tsx\n    │ │ │ ├── MainPage.tsx\n    │ │ └── index.ts # Barrel exports for dashboard\n    │ │\n    │ ├── entriesdashboards/ # Posts/Entries feature\n    │ │ ├── components/\n    │ │ │ ├── loadingSkeleton.tsx\n    │ │ │ ├── AddPostDialog.tsx\n    │ │ │ ├── DisplayPostsForm.tsx\n    │ │ │ ├── DisplayPostsTable.tsx\n    │ │ │ ├── EditPostDialog.tsx\n    │ │ │ ├── PostsPagination.tsx\n    │ │ │ ├── SearchBar.tsx\n    │ │ ├── pages/\n    │ │ │ ├── DisplayPostsPage.tsx\n    │ │ ├── services/\n    │ │ │ ├── GetAllPosts.ts\n    │ │ │ ├── PostNewPost.ts\n    │ │ ├── store/\n    │ │ │ ├── postsSlice.ts\n    │ │ ├── types/\n    │ │ │ ├── posts.type.ts\n    │ │ ├── validation/\n    │ │ │ ├── addPosts.ts\n    │ │ └── index.ts # Barrel exports for entriesdashboards\n    │\n    │── lib/ # Global styles \u0026 utilities\n    │ ├── utils/ # Helper functions\n    │ ├── App.css\n    │ ├── App.tsx\n    │ ├── index.css\n    │ ├── main.tsx\n    │ └── vite-env.d.ts\n    ```\n\n---\n\n## ⚡ Features\n\n- 📊 **Dashboard layout** with sidebar \u0026 summary\n- 📝 **Posts management**:\n  - Add new posts\n  - Edit existing posts\n  - Paginated \u0026 searchable posts table\n- 🎨 **Dark/Light mode** toggle\n- 🧩 **Reusable UI components** (Dialog, Pagination, Search, etc.)\n- ⚡ **Error boundaries** \u0026 `NotFound` page\n\n---\n\n## 🛠️ Installation \u0026 Setup\n\n1. Clone the repo:\n\n   ```bash\n   git clone https://github.com/moelsayed089/Task-Front-end.git\n   cd task-frontend\n   ```\n\n2. Install dependencies:\n\n   ```bash\n   npm install\n   ```\n\n3. Run the development server:\n   ```bash\n   npm run dev\n   ```\n\n---\n\n## 👨‍💻 Author\n\nMohamed Elsayed – Frontend Developer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoelsayed089%2Ftask-front-end","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoelsayed089%2Ftask-front-end","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoelsayed089%2Ftask-front-end/lists"}