Tiago Yamamoto
9d19751acb
Resolve merge conflicts in backend, backoffice, and frontend
2025-12-27 21:45:48 -03:00
Tiago Yamamoto
b23393bf35
feat: implement stripe subscriptions, google analytics, and user crud
...
- Backend:
- Add Stripe subscription fields to companies (migration 019)
- Implement Stripe Checkout and Webhook handlers
- Add Metrics API (view count, recording)
- Update Company and Job models
- Frontend:
- Add Google Analytics component
- Implement User CRUD in Backoffice (Dashboard)
- Add 'Featured' badge to JobCard
- Docs: Update Roadmap and artifacts
2025-12-27 12:06:54 -03:00
Tiago Yamamoto
63023b922f
feat(notifications): implementar sistema de notificações e FCM
...
- Migration 017: tabelas notifications e fcm_tokens
- Models: Notification, FCMToken
- NotificationService: CRUD, push notifications helper
- FCMService: Firebase Cloud Messaging integration
- NotificationHandler: endpoints REST
- Rotas autenticadas: /api/v1/notifications/*
Endpoints:
- GET /api/v1/notifications
- GET /api/v1/notifications/unread-count
- PUT /api/v1/notifications/read-all
- PUT /api/v1/notifications/{id}/read
- DELETE /api/v1/notifications/{id}
- POST /api/v1/notifications/fcm-token
- DELETE /api/v1/notifications/fcm-token
2025-12-27 11:24:27 -03:00
Tiago Yamamoto
9ee9f6855c
feat: implementar múltiplas features
...
Backend:
- Password reset flow (forgot/reset endpoints, tokens table)
- Profile management (PUT /users/me, skills, experience, education)
- Tickets system (CRUD, messages, stats)
- Activity logs (list, stats)
- Document validator (CNPJ, CPF, EIN support)
- Input sanitizer (XSS prevention)
- Full-text search em vagas (plainto_tsquery)
- Filtros avançados (location, salary, workMode)
- Ordenação (date, salary, relevance)
Frontend:
- Forgot/Reset password pages
- Candidate profile edit page
- Sanitize utilities (sanitize.ts)
Backoffice:
- TicketsModule proxy
- ActivityLogsModule proxy
- Dockerfile otimizado (multi-stage, non-root, healthcheck)
Migrations:
- 013: Profile fields to users
- 014: Password reset tokens
- 015: Tickets table
- 016: Activity logs table
2025-12-27 11:19:47 -03:00
Tiago Yamamoto
b1639dbcd8
Implement secure Stripe credential management using RSA encryption
2025-12-26 11:03:52 -03:00
Tiago Yamamoto
3fa875ed98
feat: implemented delete application endpoint and dashboard action
2025-12-26 01:29:31 -03:00
Tiago Yamamoto
930c57a9c7
debug(backend): add console logging to job creation endpoint
...
- Added debug logging to job_handler.go CreateJob
- Added debug logging to job_service.go CreateJob
- Tracks request data, userID extraction, SQL execution, and errors
2025-12-25 22:34:24 -03:00
Tiago Yamamoto
bb970f4a74
fix(backend): resolve 500 errors on jobs, notifications and secure routes
...
- Fix CreateJob 500 error by extracting user ID correctly
- Secure Create/Update/Delete Job routes with AuthGuard
- Fix Notifications/Tickets/Profile 500 error (UUID vs Int mismatch)
- Add E2E test for CreateJob
2025-12-24 17:48:06 -03:00
Tiago Yamamoto
38a94bcbce
feat: implement high priority features
...
1. Advanced Search (backend)
- Add salaryMin, salaryMax, currency, sortBy to JobFilterQuery
- Add 5+ filters: visa, salary range, currency, language level
- Add 4 sort options: recent, salary_asc, salary_desc, relevance
2. Email Service (backend)
- Create Resend API integration (email_service.go)
- 3 HTML email templates: welcome, password_reset, application_received
- Add RESEND_API_KEY, EMAIL_FROM, APP_URL env vars
3. i18n (frontend)
- Create 4 language files: pt-BR, en-US, es-ES, ja-JP
- 100+ translation keys per language
- Covers: common, nav, auth, jobs, profile, company, footer
4. Stripe Integration (backend)
- Create payment_handler.go with checkout session creation
- Webhook handler with signature verification
- Support for checkout.session.completed, payment_intent events
2025-12-24 11:40:53 -03:00
Tiago Yamamoto
568b4ebb88
refactor: clean up legacy UUID v4, use UUID v7 everywhere
...
Migrations:
- 016, 017, 019: Replace gen_random_uuid() with uuid_generate_v7()
- All UUID tables now use custom uuid_generate_v7() function
Backend:
- Create internal/utils/uuid/uuid.go with V7() function (RFC 9562)
- Update storage_handler.go to use internal uuid.V7()
- Remove dependency on google/uuid for file naming
All new UUIDs in the system are now UUID v7 (time-ordered)
2025-12-24 11:29:55 -03:00
Tiago Yamamoto
02f35b46b6
feat: implement dynamic dashboard, auth hardening (pepper/httponly) and backend tests
2025-12-24 01:30:33 -03:00
Tiago Yamamoto
0e265e64b8
Refactor backend to use string IDs for Job, Company, and Application
2025-12-23 14:46:17 -03:00
Tiago Yamamoto
b09bd023ed
feat: security refactor, server-side pagination, and docs update
...
- impl(frontend): server-side pagination for jobs listing
- impl(frontend): standardized api error handling and sonner integration
- test(frontend): added unit tests for JobCard
- impl(backend): added SanitizeMiddleware for XSS protection
- test(backend): added table-driven tests for JobService
- docs: updated READMES, created ROADMAP.md and DATABASE.md
- fix(routing): redirected landing page buttons to /jobs
2025-12-23 00:50:51 -03:00
Tiago Yamamoto
d369835999
fix(docs): update swagger annotations with /api/v1 prefix
2025-12-15 13:46:51 -03:00
Tiago Yamamoto
28733fff95
feat(tests): �� added unit tests and E2E tests for handlers
2025-12-15 09:08:32 -03:00
Tiago Yamamoto
7d5c6cc1d4
Remove unused models import
2025-12-14 17:16:29 -03:00
Tiago Yamamoto
bff8012291
Add swagger docs for applications and storage
2025-12-14 17:10:42 -03:00
Tiago Yamamoto
65eca07c8f
Expose job endpoints in Swagger docs
2025-12-14 16:40:29 -03:00
Tiago Yamamoto
9b4601f1d8
feat: implement dynamic featured jobs
...
- Add is_featured column to jobs table (migration)
- Update Job model and Service to support featured jobs
- Update JobHandler to expose featured jobs API
- Support filtering by featured status in GET /jobs
- Frontend: Fetch and display featured jobs from API
- Frontend: Update Job type definition
2025-12-14 15:43:43 -03:00
Tiago Yamamoto
a4abcf8e05
feat: SEO optimization and dynamic jobs API integration
...
Backend:
- Add Swagger annotations to all job handlers (GET, POST, PUT, DELETE)
- Clean up job handler code
Frontend:
- Expand api.ts with ApiJob types, pagination, and transform function
- Update footer with 'Vagas por Tecnologia' SEO links
- Add robots.txt with crawler directives
- Add sitemap.xml with main pages and job URLs
- Change branding to GoHorse Jobs
2025-12-14 09:16:44 -03:00
Tiago Yamamoto
ce6e35aefd
feat(backend): implement S3 object storage with pre-signed URLs
...
- Add s3_storage.go service using AWS SDK v2
- Support custom S3-compatible endpoints (Civo)
- Implement pre-signed URL generation for uploads/downloads
- Add storage_handler.go with REST endpoints
- Register protected storage routes in router
- Graceful degradation when S3 not configured
2025-12-11 14:41:25 -03:00
Tiago Yamamoto
1c7ef95c1a
first commit
2025-12-09 19:04:48 -03:00