Commit graph

20 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
48f9322f61 Run migrations automatically on server startup
All checks were successful
CI - Test, Build, and Push / test (push) Successful in 2m43s
CI - Test, Build, and Push / build-and-push (push) Successful in 15s
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 14:22:38 -05:00
8079dab3a4 Fix execute permissions on release scripts
All checks were successful
CI - Test, Build, and Push / test (push) Successful in 2m44s
CI - Test, Build, and Push / build-and-push (push) Successful in 16s
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 14:13:38 -05:00
2025c87a8c Add docker-compose for production deployment
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 11s
- Add docker-compose.yml with app and postgres services
- Add .env.example with required environment variables
- Add .env to .gitignore to prevent committing secrets

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 14:03:20 -05:00
ad138ddb40 Fix Dockerfile: compile before assets.deploy
All checks were successful
CI - Test, Build, and Push / test (push) Successful in 2m40s
CI - Test, Build, and Push / build-and-push (push) Successful in 46s
- Run mix compile before mix assets.deploy so colocated hooks are generated
- Fix Docker warnings: use AS instead of as, ENV key=value format

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 10:19:28 -05:00
08e2dfa325 Fix Docker image tag for hexpm/elixir
Some checks failed
CI - Test, Build, and Push / test (push) Successful in 2m48s
CI - Test, Build, and Push / build-and-push (push) Failing after 2m46s
Use correct tag: 1.17.3-erlang-27.1.3-debian-bookworm-20250610-slim

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 09:39:07 -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
48856e991b Add Cleveland east suburbs business data
31 locally owned businesses from Mentor, Chardon, Chagrin Falls,
Willoughby, Geneva, and surrounding areas including restaurants,
coffee shops, breweries, wineries, retail, and farm markets.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 08:15:06 -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
9cbbb045b9 Add A-Frame architecture and Testing Without Mocks guidelines
Document James Shore's patterns for clean architecture:
- A-Frame: Logic and Infrastructure as independent peers
- Testing Without Mocks: state-based tests, Nullables, no mocking
- Testing approach by layer (Logic, Infrastructure, Application)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 22:51:32 -05:00
67657bf717 Add pre-commit hook for formatting and tests
- Add scripts/pre-commit hook that runs format check and tests
- Add mix hooks.install alias to install the hook
- Document git hooks in AGENTS.md
- Fix test database config to use local user

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 21:58:08 -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
c7bb56ad15 first commit 2025-11-30 21:10:16 -05:00