{"id":31779604,"url":"https://github.com/maggieappleton/home-hunter","last_synced_at":"2025-10-28T22:14:12.589Z","repository":{"id":316089023,"uuid":"1061921847","full_name":"MaggieAppleton/home-hunter","owner":"MaggieAppleton","description":"A vibe coded tool for house hunting in South London","archived":false,"fork":false,"pushed_at":"2025-09-22T15:29:56.000Z","size":31451,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-22T17:27:34.198Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/MaggieAppleton.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,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-22T15:06:03.000Z","updated_at":"2025-09-22T16:16:13.000Z","dependencies_parsed_at":"2025-09-22T17:39:14.217Z","dependency_job_id":null,"html_url":"https://github.com/MaggieAppleton/home-hunter","commit_stats":null,"previous_names":["maggieappleton/home-hunter"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/MaggieAppleton/home-hunter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaggieAppleton%2Fhome-hunter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaggieAppleton%2Fhome-hunter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaggieAppleton%2Fhome-hunter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaggieAppleton%2Fhome-hunter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaggieAppleton","download_url":"https://codeload.github.com/MaggieAppleton/home-hunter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaggieAppleton%2Fhome-hunter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279003173,"owners_count":26083533,"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-10T02:00:06.843Z","response_time":62,"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":[],"created_at":"2025-10-10T07:52:13.185Z","updated_at":"2025-10-10T07:52:19.892Z","avatar_url":"https://github.com/MaggieAppleton.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# South London Property Tracker\n\nA local web application for tracking properties during house hunting in South London. The app displays properties on an interactive map with table views and data management capabilities.\n\n## Features\n\n- **Interactive Map**: View properties on a map with custom markers showing status\n- **Property Management**: Add, edit, and track properties with detailed information\n- **Image Support**: Upload and manage property images\n- **Filtering \u0026 Search**: Filter properties by status, price, bedrooms, and more\n- **Data Export**: Export your property data as CSV or JSON\n- **Local Storage**: All data stored locally in SQLite database\n\n## Screenshots\n\n### Table View\n\n![Table View](images/ui1.png)\n_The table view shows all properties in a sortable, filterable table format with search functionality and status indicators._\n\n### Map View\n\n![Map View](images/ui2.png)\n_The map view displays properties as interactive markers on a map of South London, with detailed property cards and train station overlays._\n\n## Tech Stack\n\n- **Frontend**: React with TypeScript, Tailwind CSS, Leaflet.js\n- **Backend**: Node.js with Express and TypeScript\n- **Database**: SQLite with better-sqlite3\n- **Build Tools**: Vite (client), TypeScript (server)\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js (v18 or higher)\n- npm\n\n### Installation\n\n1. Clone the repository:\n\n   ```bash\n   git clone \u003crepository-url\u003e\n   cd hunter\n   ```\n\n2. Install dependencies for all packages:\n   ```bash\n   npm install\n   cd client \u0026\u0026 npm install\n   cd ../server \u0026\u0026 npm install\n   cd ..\n   ```\n\n### Development\n\nStart both the client and server in development mode:\n\n```bash\nnpm run dev\n```\n\nThis will start:\n\n- **Client**: http://localhost:5173 (Vite dev server)\n- **Server**: http://localhost:3001 (Express API server)\n\nYou can also run them separately:\n\n```bash\n# Client only\nnpm run dev:client\n\n# Server only\nnpm run dev:server\n```\n\n### Building for Production\n\n```bash\nnpm run build\n```\n\nThis builds both the client and server. The built files will be in:\n\n- `client/dist/` - Client build\n- `server/dist/` - Server build\n\n### Running Production Build\n\n```bash\nnpm start\n```\n\n## Project Structure\n\n```\nhunter/\n├── client/                 # React frontend\n│   ├── src/\n│   │   ├── components/     # React components\n│   │   ├── types/         # TypeScript type definitions\n│   │   ├── utils/         # Utility functions\n│   │   └── App.tsx        # Main app component\n│   └── package.json\n├── server/                # Express backend\n│   ├── src/\n│   │   ├── routes/        # API routes\n│   │   ├── database/      # Database connection and schema\n│   │   └── server.ts      # Main server file\n│   └── package.json\n├── data/                  # Local data storage\n│   ├── properties.db      # SQLite database\n│   └── images/           # Property images\n├── planning/             # Project planning documents\n└── package.json          # Root package.json with scripts\n```\n\n## API Endpoints\n\n- `GET /api/health` - Health check\n- `GET /api/properties` - List all properties\n- `POST /api/properties` - Create new property\n- `PUT /api/properties/:id` - Update property\n- `DELETE /api/properties/:id` - Delete property\n- `GET /api/properties/:id` - Get single property\n\n## Data Management\n\n### Database\n\nThe application uses SQLite for local data storage. The database file is created automatically at `data/properties.db` when you first run the server.\n\n### Images\n\nProperty images are stored in the `data/images/` directory and served by the API server.\n\n### Backup \u0026 Restore\n\nYou can export your data as JSON and import it later using the API endpoints:\n\n- `GET /api/export` - Export all data\n- `POST /api/import` - Import data\n\n## Development Notes\n\n- The client and server run on different ports to avoid conflicts\n- CORS is configured to allow the client to communicate with the server\n- TypeScript is used throughout for type safety\n- ESLint and Prettier are configured for consistent code formatting\n\n## License\n\nISC\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaggieappleton%2Fhome-hunter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaggieappleton%2Fhome-hunter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaggieappleton%2Fhome-hunter/lists"}