Tiago Yamamoto
8eeecf76d7
feat: admin tickets, dashboard i18n, user edit fix and location picker bugfix
2025-12-26 16:42:19 -03:00
Tiago Yamamoto
87aa558a61
fix: add null guards to messages page
...
- Guard against null response from chatApi.listConversations()
- Use fallback empty array for conversations state
- Prevents 'Cannot read properties of null' errors
2025-12-26 16:17:34 -03:00
Tiago Yamamoto
818edf2575
fix: Resolve type mismatch in settings page credentials fetch
2025-12-26 14:57:32 -03:00
Tiago Yamamoto
e5d0cd483a
feat: Implement Dynamic Credentials Management
...
Backend:
- Added GET /api/v1/system/credentials to list configured services
- Added DELETE /api/v1/system/credentials/{service}
- Updated CredentialsService to support listing without revealing secrets
Frontend:
- Updated Settings page with Tabs
- Added 'Integrations' tab to manage credentials
- Allows Configuring (Update) and Deleting credentials
- Lists status of Appwrite, Stripe, Firebase, etc.
2025-12-26 14:43:35 -03:00
Tiago Yamamoto
7d797aac2b
fix: Add graceful handling for unconfigured Appwrite in messages page
...
When Appwrite is not configured:
- Shows friendly 'Service not configured' message
- Displays icon and helpful description
- Links to dashboard and settings
- Shows technical details in collapsible section
- Prevents client-side crash
2025-12-26 13:15:29 -03:00
Tiago Yamamoto
841b1d780c
feat: Email System, Avatar Upload, Email Templates UI, and Public Job Posting
...
- Backend: Email producer (LavinMQ), EmailService interface
- Backend: CRUD API for email_templates and email_settings
- Backend: avatar_url field in users table + UpdateMyProfile support
- Backend: StorageService for pre-signed URLs
- NestJS: Email consumer with Nodemailer and Handlebars
- Frontend: Email Templates admin pages (list/edit)
- Frontend: Updated profileApi.uploadAvatar with pre-signed URL flow
- Frontend: New /post-job public page (company registration + job creation wizard)
- Migrations: 027_create_email_system.sql, 028_add_avatar_url_to_users.sql
2025-12-26 12:21:34 -03:00
Tiago Yamamoto
f1fc45b5ce
Add company edit section to profile page for Admin users
2025-12-26 10:12:56 -03:00
Tiago Yamamoto
e0b16e5b29
Fix profile 404/500 and user deletion 403
2025-12-26 09:55:19 -03:00
Tiago Yamamoto
3fa875ed98
feat: implemented delete application endpoint and dashboard action
2025-12-26 01:29:31 -03:00
Tiago Yamamoto
7b76b62490
feat(backoffice): implemented edit and delete company functionality
2025-12-26 01:23:01 -03:00
Tiago Yamamoto
43c0719664
feat(users): add company selection and status to create user modal
2025-12-26 01:18:14 -03:00
Tiago Yamamoto
6ab7e357fb
fix(users): resolve 403 on update and enable role/status editing
2025-12-26 01:14:18 -03:00
Tiago Yamamoto
e47c25fac8
fix(companies): format JSON description in modal
...
- Added formatDescription helper to parse JSON and display as formatted list
- Shows tagline, stores, employees, motto etc as labeled fields
- Falls back to plain text if not JSON
2025-12-26 01:02:16 -03:00
Tiago Yamamoto
16012b701a
fix(companies): remove Slug column from table
2025-12-26 01:01:10 -03:00
Tiago Yamamoto
546e253a5f
feat(companies): add view modal and fix createdAt field
...
- Added modal dialog to view company details when clicking eye icon
- Fixed createdAt field name (was created_at, Go returns camelCase)
- Expanded AdminCompany type to include all company fields
- Modal shows: status badges, contact info, description, timestamps
2025-12-26 00:47:04 -03:00
Tiago Yamamoto
cb6afe9583
fix(frontend): enable job delete/update API calls and add logging
...
- Added update() and delete() methods to jobsApi in api.ts
- Fixed handleDeleteJob to call jobsApi.delete() instead of just local state
- Fixed handleSaveEdit to call jobsApi.update() instead of being commented out
- Added console logging to all CRUD operations for debugging
2025-12-25 22:41:38 -03:00
Tiago Yamamoto
362b569c8d
refactor(frontend): consolidate job creation into single page form
...
- Replaced 6-step wizard (673 lines) with single-page form (290 lines)
- Removed billing/payment steps for now
- All fields visible with clear section headers
- Save as Draft and Publish buttons
2025-12-25 22:11:16 -03:00
Tiago Yamamoto
39d1eff80f
fix(frontend): fix string/number ID comparison in jobs page
...
- handleDeleteJob: compare string IDs directly instead of parseInt
- handleSaveEdit: use string ID for future update logic
- IDs are now UUIDs (strings) after migration
2025-12-25 21:49:09 -03:00
Tiago Yamamoto
39fde338b4
fix(frontend): pass string ID to adminCompaniesApi.updateStatus
2025-12-25 21:00:01 -03:00
Tiago Yamamoto
48dad702d6
fix(frontend): adjust admin jobs pagination property access
2025-12-24 19:53:54 -03:00
Tiago Yamamoto
4eae018a25
fix(backoffice): use string IDs for companies/jobs/users, fix audit log, ensure real tags support
2025-12-24 19:43:49 -03:00
Tiago Yamamoto
cc5ac7c73c
feat: add profile page, dynamic dashboard, and fix candidate 500 error
2025-12-24 19:22:14 -03:00
Tiago Yamamoto
b72c63f947
chore(frontend): update jobs page
2025-12-24 16:23:16 -03:00
Tiago Yamamoto
3f89edd327
debug: add detailed logging for company options mapping
2025-12-24 15:09:25 -03:00
Tiago Yamamoto
c1078563df
refactor(roles): rename companyAdmin->admin and jobSeeker->candidate
2025-12-24 13:30:50 -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
9f7d8e9ca5
feat: add 6-step job wizard with Preview, Billing, Payment steps and Stripe integration preparation
2025-12-23 23:00:17 -03:00
Tiago Yamamoto
42e9f81f48
feat: enhance job form with currency, salary periods, contract types, and add ER diagram docs
2025-12-23 22:49:33 -03:00
Tiago Yamamoto
80d38ee615
feat(frontend): add multi-step job posting wizard with API integration
2025-12-23 22:40:19 -03:00
Tiago Yamamoto
9bc924ab54
fix(frontend): add console.log debugging to job create form, load companies from API
2025-12-23 22:28:16 -03:00
Tiago Yamamoto
fdece70a8a
fix(frontend): renaming ApiCompany to AdminCompany to fix build error
2025-12-23 22:13:19 -03:00
Tiago Yamamoto
908ec41ca9
fix(frontend): Correctly handle paginated companies response in backoffice
2025-12-23 21:40:16 -03:00
Tiago Yamamoto
78ce341370
feat: Implement Ticket System, Profile Page integration, and fix migrations
2025-12-23 19:22:55 -03:00
Tiago Yamamoto
fd59bfacb2
feat(frontend): implement view, edit and delete actions for admin jobs
2025-12-23 18:53:09 -03:00
Tiago Yamamoto
743b2842c0
feat: Enhance platform with funny jobs, FAQ, Skeleton UI, and Tests
2025-12-22 23:48:56 -03:00
Tiago Yamamoto
e71fc361ac
Add dynamic candidate management data
2025-12-22 19:18:15 -03:00
Tiago Yamamoto
b6ad6e77e2
Fetch admin jobs for dashboard list
2025-12-22 19:02:05 -03:00
Tiago Yamamoto
5e99115df6
Add CRUD logging and stabilize dashboard dates
2025-12-22 18:55:43 -03:00
Tiago Yamamoto
c14dd3a890
Fix users refresh click handler
2025-12-22 18:29:49 -03:00
Tiago Yamamoto
db8cadda98
Fix candidate dashboard role check
2025-12-22 17:24:34 -03:00
Tiago Yamamoto
30b634b770
Add admin job modal and company select
2025-12-22 17:17:13 -03:00
Tiago Yamamoto
9c17a7a15a
Add paginated users listing
2025-12-22 16:43:54 -03:00
Tiago Yamamoto
58cfd76675
Add admin backoffice routes and dashboard
2025-12-22 16:37:05 -03:00
Tiago Yamamoto
18a1eb704d
Translate UI and rename routes to English
2025-12-22 15:30:06 -03:00
Tiago Yamamoto
14c4bc8370
fix(frontend): remove invalid AdminSidebar import from messages page
2025-12-13 18:46:00 -03:00
Tiago Yamamoto
0684ebfdf6
fix(frontend): remove invalid AdminSidebar import from candidates page
...
The AdminSidebar component doesn't exist - the dashboard layout already provides the sidebar.
2025-12-13 18:39:04 -03:00
Tiago Yamamoto
a505726786
fix: refactor dashboard urls, fix layout duplication and resolve backend api errors
2025-12-09 20:29:49 -03:00
Tiago Yamamoto
1c7ef95c1a
first commit
2025-12-09 19:04:48 -03:00