{"id":30987682,"url":"https://github.com/nathaww/job-board","last_synced_at":"2026-05-09T05:34:01.478Z","repository":{"id":314086728,"uuid":"1054032031","full_name":"nathaww/job-board","owner":"nathaww","description":"Job Board","archived":false,"fork":false,"pushed_at":"2025-09-10T13:13:06.000Z","size":297,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-10T15:18:23.330Z","etag":null,"topics":["lucide-icons","react","react-hook-form","react-query","shadcn-ui","tailwindcss-v4","tyescript","zod"],"latest_commit_sha":null,"homepage":"https://job-board-two-bice.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/nathaww.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-10T09:15:06.000Z","updated_at":"2025-09-10T13:13:10.000Z","dependencies_parsed_at":"2025-09-10T15:20:27.262Z","dependency_job_id":"e1bb1122-f198-4f5c-8fc3-ca3dd09ef545","html_url":"https://github.com/nathaww/job-board","commit_stats":null,"previous_names":["nathaww/job-board"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/nathaww/job-board","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathaww%2Fjob-board","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathaww%2Fjob-board/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathaww%2Fjob-board/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathaww%2Fjob-board/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nathaww","download_url":"https://codeload.github.com/nathaww/job-board/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathaww%2Fjob-board/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32808515,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"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":["lucide-icons","react","react-hook-form","react-query","shadcn-ui","tailwindcss-v4","tyescript","zod"],"created_at":"2025-09-12T16:40:33.208Z","updated_at":"2026-05-09T05:34:01.468Z","avatar_url":"https://github.com/nathaww.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Job Application Dashboard\n\nA modern, responsive job application tracking dashboard built with React, TypeScript, TailwindCSS, and shadcn/ui.\n\n## Features\n\n### Core Features\n- ✅ **Dashboard Page**: View all job applications in a clean table format\n- ✅ **Add Applications**: Create new job applications with a comprehensive form\n- ✅ **Edit Applications**: Update existing applications with pre-filled data\n- ✅ **Status Management**: Update application status directly from the table\n- ✅ **Responsive Design**: Works perfectly on mobile and desktop devices\n\n### Advanced Features\n- ✅ **Data Persistence**: Applications are saved to localStorage\n- ✅ **Search \u0026 Filter**: Search by job title/company and filter by status\n- ✅ **Sortable Columns**: Click column headers to sort data\n- ✅ **Pagination**: Navigate large datasets efficiently\n- ✅ **Form Validation**: Comprehensive validation using Zod and React Hook Form\n- ✅ **External Links**: Direct links to job postings\n\n## Setup Instructions\n\n### Prerequisites\n- Node.js 18+ \n- npm or yarn\n\n### Installation\n\n1. **Clone the repository**\n   ```bash\n   git clone \u003crepository-url\u003e\n   cd job-board\n   ```\n\n2. **Install dependencies**\n   ```bash\n   npm install\n   ```\n\n3. **Start the development server**\n   ```bash\n   npm run dev\n   ```\n\n4. **Open your browser**\n   Navigate to `http://localhost:5173`\n\n5. **Access React Query DevTools** (Development only)\n   Click the React Query icon in the bottom-left corner to inspect queries, mutations, and cache state\n\n### Available Scripts\n\n- `npm run dev` - Start development server\n- `npm run build` - Build for production\n- `npm run preview` - Preview production build\n- `npm run lint` - Run ESLint\n\n## Project Structure\n\n```\nsrc/\n├── components/\n│   ├── ui/                          # shadcn/ui components\n│   ├── JobApplicationForm.tsx       # Add/Edit form dialog with React Query\n│   ├── JobApplicationsTable.tsx     # Main data table with mutations\n│   ├── JobApplicationFilters.tsx    # Search and filter controls\n│   └── Pagination.tsx               # Pagination component\n├── hooks/\n│   └── useJobApplicationQueries.ts  # React Query hooks for data management\n├── services/\n│   └── jobService.ts               # API service layer with CRUD operations\n├── data/\n│   └── mockData.ts                 # Mock data and utilities\n├── lib/\n│   ├── utils.ts                    # Utility functions\n│   └── validations.ts              # Zod validation schemas\n├── types/\n│   └── job.ts                      # TypeScript type definitions\n├── App.tsx                         # Main application component\n├── main.tsx                        # Application entry point with React Query setup\n└── index.css                       # TailwindCSS imports\n```\n\n## Usage\n\n### Adding Applications\n1. Click the \"Add Application\" button\n2. Fill out the form with job details\n3. Submit to add to your dashboard\n\n### Managing Applications\n- **Edit**: Click the edit icon in the Actions column\n- **Delete**: Click the delete icon (with confirmation)\n- **Update Status**: Use the status dropdown in each row\n- **View Job Posting**: Click the external link icon if URL provided\n\n### Filtering \u0026 Search\n- **Search**: Use the search bar to find by job title or company\n- **Filter by Status**: Use the status dropdown to filter applications\n- **Clear Filters**: Click \"Clear\" to reset all filters\n\n### Sorting \u0026 Pagination\n- **Sort**: Click column headers to sort by that field\n- **Pagination**: Navigate pages at the bottom of the table\n- **Page Size**: Adjust how many applications to show per page\n\n## Architecture \u0026 Data Management\n\n### Service Layer\nAll data operations are centralized in `jobService.ts` with methods for:\n- `getAll()` - Fetch all applications\n- `getById(id)` - Get single application\n- `create(data)` - Add new application\n- `update(id, updates)` - Update existing application\n- `delete(id)` - Remove application\n- `searchAndFilter(query, status)` - Advanced filtering\n- `getStatistics()` - Application analytics\n\n### Data Persistence\n- **Mock Data**: Rich sample dataset with 8+ realistic job applications\n- **localStorage**: Automatic persistence across browser sessions\n- **Real-time**: Instant updates across all components\n- **Optimistic UI**: Immediate visual feedback before server confirmation\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnathaww%2Fjob-board","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnathaww%2Fjob-board","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnathaww%2Fjob-board/lists"}