Commit graph

11 commits

Author SHA1 Message Date
29ee714df7 Add responsive mobile navigation with hamburger menu
All checks were successful
CI - Test, Build, and Push / test (push) Successful in 2m45s
CI - Test, Build, and Push / build-and-push (push) Successful in 52s
- Desktop: horizontal navigation menu as before
- Mobile: hamburger dropdown menu with theme toggle visible
- Breakpoint at md (768px)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 17:18:36 -05:00
b99838d214 Fix map disappearing when selecting a business
All checks were successful
CI - Test, Build, and Push / test (push) Successful in 2m46s
CI - Test, Build, and Push / build-and-push (push) Successful in 48s
Add phx-update="ignore" to prevent LiveView from overwriting the
Leaflet map container when re-rendering after business selection.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 15:17:27 -05:00
2cf13e2cbb Add preview step to import with missing category detection
All checks were successful
CI - Test, Build, and Push / test (push) Successful in 2m46s
CI - Test, Build, and Push / build-and-push (push) Successful in 46s
The import process now shows a preview before importing, listing any
missing categories. Users can create missing categories with one click
before proceeding with the import.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 14:46:16 -05:00
8d9194b398 Add Forgejo CI workflow and Docker build
Some checks failed
CI - Test, Build, and Push / test (push) Failing after 1s
CI - Test, Build, and Push / build-and-push (push) Has been skipped
- Add Dockerfile for Phoenix release builds
- Add .dockerignore to optimize build context
- Add Forgejo workflow that runs tests then builds/pushes Docker image
- Update test config to support DATABASE_URL for CI
- Add release.ex and rel/ overlay scripts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 08:15:20 -05:00
94cb0870ff Add duplicate detection to business import
- Skip businesses that already exist (by slug)
- Track skipped count in import results
- Display skipped count in admin import UI

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 08:14:42 -05:00
f62ddffb80 Add admin screen for managing businesses
- Add AdminLive.Businesses at /admin/businesses for business management
- Support deactivate/reactivate (soft delete) and permanent deletion
- Filter tabs for All, Active, and Inactive businesses
- Delete confirmation modal to prevent accidental deletion
- Add admin functions to Businesses context (list_all, get_any, deactivate, activate, delete)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 00:58:58 -05:00
70bca86c23 Add business import feature with Mix task and admin UI
- Add Import module for parsing JSON and creating businesses with associations
- Add `mix localspot.import` task for CLI-based imports
- Add admin import page with drag-and-drop file upload at /admin/import
- Include sample import JSON and Buffalo NY business data (40 businesses)
- Support for importing hours and photos with each business

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 00:57:46 -05:00
821af5b24f Update site branding and navigation for LocalSpot
- Replace Phoenix default navigation with LocalSpot nav
- Add links to Businesses, Categories, Map, and Add Business
- Update home page with hero, feature cards, and CTA
- Update page title suffix to LocalSpot
- Change pre-commit hook to auto-format instead of check

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 00:15:09 -05:00
9ed897a60e Add LiveView pages for business directory
- CategoryLive.Index: browse categories with business counts
- CategoryLive.Show: view businesses filtered by category
- BusinessLive.Index: search/filter businesses with geolocation
- BusinessLive.Show: detailed business profile with hours
- BusinessLive.New: submission form for new businesses
- BusinessLive.Map: interactive Leaflet.js map view
- Seed data with sample Columbus, OH businesses

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 00:11:36 -05:00
e8fd635ddb Add Businesses context with A-Frame architecture
Phase 1 - Database foundation:
- Categories, businesses, hours, photos migrations
- Ecto schemas with changesets and validations

Phase 2 - Business logic:
- Logic module with pure functions (Haversine distance, slug generation, etc.)
- Queries module for database operations with filtering
- Businesses context coordinating Logic and Queries layers
- 43 tests covering logic and queries

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 23:55:29 -05:00
1e61383eb6 Initialize Phoenix LiveView project
Set up localspot as a Phoenix 1.8 LiveView application with:
- Erlang/Elixir via asdf
- PostgreSQL database (local user config)
- Tailwind CSS v4 with daisyUI
- Updated AGENTS.md with project setup and guidelines

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 21:45:50 -05:00