Commit Graph
54 Commits
Author SHA1 Message Date
asepharyana 7901fc3f82 feat(dimentorin): feedback mentor 2-step modal (Figma Modals-Feedback 1 & 2)
Halaman yang belum ada di FE: feedback mentor setelah sesi selesai. Figma punya 'Modals - Feedback 1' (rating 1-5 + 2 pertanyaan pilihan) dan 'Modals - Feedback 2' (3 textarea: suka/tingkatkan/testimoni). BE sudah punya POST /dimentorin/sessions/{id}/feedback/create.

- BARU mentoring/_components/feedback-modal.tsx: modal 2 step (rating bintang + kebermanfaatan + rekomendasi → textarea suka/tingkatkan/testimoni), validasi step (Lanjut disabled sampai rating+opsi dipilih), submit gabung jadi feedback text + rating, reset state tiap buka
- my-sessions: tombol ' Beri Feedback' muncul untuk sesi status completed; modal ter-integrasi; invalidate my-sessions + mentor-stats setelah submit
- Verifikasi end-to-end via browser: tombol muncul, modal step 1 → rating 5 + opsi → step 2 → isi textarea → Kirim → POST 200 feedback+rating tersimpan di DB (sesi Status Test di-set completed utk test lalu di-reset)
2026-08-05 23:18:51 +07:00
asepharyana e2d5e37bd1 feat(dimentorin): dashboard layout Figma untuk user & mentor + halaman Dashboard baru
Node 216:740 = canvas penuh (bukan cuma design system). Dashboard User & Mentor di Figma punya sidebar + topbar + overview stats yang BELUM ada di FE. Implementasi:

- BARU apps/.../mentoring/_components/dashboard-layout.tsx: DashboardLayout/DashboardSidebar/DashboardHeader shared (sidebar sticky, decode JWT untuk inisial/email, logout via SessionToken.remove)
- BARU /mentoring/dashboard (Dashboard User sesuai Figma 1290:4808): welcome banner 'Selamat Datang di Dimentorin.dev' + CTA Temukan Roadmapnya, Overview stats (Mentoring Session dari sessions API, Article Submitted dari articles, Article Published dari completed sessions), Roadmaps progress card 'Front End Basic' dari materials API
- my-sessions dipindah ke layout dashboard (sidebar user, nav aktif)
- mentor-dashboard full rewrite (Figma 1340:4285): sidebar mentor (Dashboard/Mentoring Setup/List Mentee/Feedback), overview stats (Your Rating dari mentor stats avg_rating, Session Complete, Mentee Impacted unique, Total Feedback), tabs Sesi Masuk/Setup/Mentee/Feedback dengan data sessions API
- Header: tambah menu Dashboard
2026-08-05 22:40:56 +07:00
asepharyana 3a8496203e feat(dimentorin): implementasi halaman 'Jadi Sensei' (Mentor Page) dari Figma + fix tombol modal
Dengan Figma PAT sekarang bisa akses node 216:740 = canvas 'Dimentorin By IMPHNEN' (berisi SEMUA halaman, bukan cuma design system). Hasil audit konten:

- Halaman baru /jadi-sensei: landing rekrutmen mentor persis Figma (Mentor Page 1686:12228)
  * Hero 'Jadi Sensei di Dunia IT?' + stats 1000+ Kohai Menunggu / 500+ Sensei Aktif + tombol 'Mulai Jadi Sensei'
  * 'Kenapa Harus Join Guild Sensei Kami? 🔥' - 3 kartu: Power-Up Para Kohai, Skill Jadi Gold Mine, Legendary Sensei Status
  * Testimonial 'What the Legendary Sensei Says' (Riko 4.8/5.0)
  * FAQ 'Kata Para Sensei Legendaris' - income 100rb/sesi/45 menit, sistem pembayaran, flexible sesi
  * CTA 'Ready to become the Legendary Sensei?' + 'Daftar Sekarang'
- Fix typo 'Bagaiamana' -> 'Bagaimana', 'Frequently Ask Question' -> 'Frequently Asked Questions'
- Booking modal: tombol step CV (profile) jadi 'Pembayaran' sesuai Figma (Modals Appointment Mentor 3)
- Verifikasi teks persis via Figma REST API: Home/CTA/WhatWeOffer/Modal sudah MATCH (koreksi temuan vision yang keliru)
2026-08-05 21:43:50 +07:00
asepharyana 22bb4b63ce feat(dimentorin): implementasi avatar inisial mentor + resume dinamis + fix dummy data
- Komponen baru MentorAvatar: gradient unik per nama (hash), inisial nama, reusable (sm/md/lg + textClassName)
- Kartu mentor: ganti img testimonial.webp statis -> avatar inisial gradient (MU, dll)
- Detail mentor profile: avatar besar + fix hardcoded tanggal 'Jum, 4 April 2025' -> tanggal dinamis id-ID
- Senpai Resume: fallback dinamis dari data mentor (role/experience/expertise/industries/languages) saat bio kosong, bukan 'Belum ada deskripsi'
- Booking modal topic step: ganti nama mentor hardcoded 'Muhammad Firdaus Oi Oi Oi' -> dari prop mentor + avatar
- Booking modal payment step: avatar mentor di summary
2026-08-05 20:59:56 +07:00
asepharyana 8b77f27f58 feat(dimentorin): audit isi halaman & layout + fix halaman kosong
- Homepage testimonial: hardcode Array.from({length:2}) duplikat Riko x2 -> 4 testimonial berbeda (Riko 4.8, Salsa 5.0, Dimas 4.9, Nadia 4.7)
- Fix typo 'dellow devs' -> 'fellow devs', 'Frequently Ask Question' -> 'Frequently Asked Questions'
- FAQ diperluas dari 3 -> 5 pertanyaan (payment, materi gratis)
- Buat halaman 404 brand IMPHNEN (Quest Tidak Ditemukan!) dgn Header+Footer di (public)/404.tsx
- Fix middleware: 404/route tak dikenal tidak redirect ke login (hanya prefix admin /dashboard,/users,/roles,/permissions yg protected)
- my-sessions & mentor-dashboard: guard SessionToken -> CTA 'Login dulu, Senpai!' (sebelumnya loading forever karena API 401 tanpa token)
2026-08-05 20:13:15 +07:00
asepharyana 5b50680f14 feat(dimentorin): audit FE samakan dgn Figma design system
- FIX KRITIS: apps/dimentorin/src/index.css @theme nyimpang dari Figma (67 token beda: primary-500 #1a8ce6 vs #23a1eb, semua warna success/info/warning/danger + skala typography). Disamakan dgn libs/ui (source of truth Figma).
- Hapus hardcoded warna non-token di apps: blue-400, gray-5/6/700, amber/emerald/red-100, green-200/500 -> token primary/neutral/warning/success/danger
- libs/ui: gray-* -> neutral-*, blue-* -> primary-*, #1a8ce6 -> #23a1eb, bg-[#F0F8FF] -> primary-50, SVG fill hex -> fill-* token classes
- Typography: text-[27/26/22/11px] menyimpang dari skala Figma -> text-[29/23/19/12px]
- Radius: rounded-4xl (32px, tidak ada di Figma) -> rounded-3xl (24px)
2026-08-05 19:28:02 +07:00
asepharyana 94f80e4eda fix(dimentorin): homepage kosong akibat duplikat page route
- hapus apps/dimentorin/src/app/page.tsx (hanya Navbar+div kosong) yg menang conflict /
- aktifkan (public)/(home) yg berisi 5 section (Hero, WhatWeOffer, Testimonial, FAQ, CTA)
- tambah navigasi onClick tombol CTA: hero & CTA -> /mentoring/ai-agent, /mentoring
2026-08-05 18:36:35 +07:00
asepharyana 7294040fd1 feat(dimentorin): halaman Materi + AI Agent RAG
- /mentoring/materi: list materi (kategori chips, cards) + detail konten per slug
- /mentoring/ai-agent: chatbox RAG — tanya materi, jawaban dari Qdrant context + sumber relevansi %
- service: getMaterialsList/getMaterialBySlug/getMaterialById/getMaterialCategories + postChat + hooks
- header: menu Materi & AI Agent
- e2e verified: list 3 materi, detail tampil, chat 'ownership' jawab dari materi Rust + 3 sources (84/64/61%)
2026-08-05 17:26:27 +07:00
asepharyana 49a448fee1 feat(dimentorin): my sessions + mentor dashboard with live payment status
- /mentoring/my-sessions: mentee session list w/ payment status (Lunas/Menunggu), Cek Status button (Midtrans auto-paid refresh), Detail Mentor link
- /mentoring/mentor-dashboard: mentor session requests w/ payment panel (Refresh + Konfirmasi)
- header menu: Sesi Saya
- TPayment type fixed to camelCase (sessionId/mentorId/externalRef) matching backend DTO
- QRIS step renders real Midtrans QR from qr_string via qrserver API
- e2e verified: sessions render, refresh + confirm payment buttons work end-to-end
2026-08-05 15:58:29 +07:00
asepharyana bb980a7add fix(dimentorin): hide raw QR string for midtrans provider in QRIS step
- QRIS step no longer shows the long EMVCo QR string verbatim (real VA number still shown in VA step)
- build verified
2026-08-05 13:37:41 +07:00
asepharyana 893f7ba03c feat(dimentorin): wire appointment payment flow to payments API
- PaymentStep: selectable VA/QRIS method, rate from mentor.mentoring_rate (fallback 50000), onMethodChange
- AppointmentModal: book session -> create payment -> route to VA/QRIS step with real payment data; then success
- QrisPaymentStep/VAPaymentStep: show real total + external_ref (VA number/QR ref) + expiry
- service lib: TPayment/TCreatePaymentRequest types + postCreatePayment/getMyPayments/getPaymentById/postConfirmPayment + hooks
- build verified, payments flow bundled
2026-08-05 09:28:56 +07:00
asepharyana a74fabe5f5 feat(dimentorin): senpai statistics from API (total sessions, mentee impact, avg rating) 2026-08-04 23:09:15 +07:00
asepharyana 6c5c5db47b feat(dimentorin): mentor register flow wired to API (4-step form, validation, submit, redirect pending) 2026-08-04 20:04:41 +07:00
asepharyana 583b6b224e feat(dimentorin): articles page integrated with API (list, filter, detail) 2026-08-04 19:31:29 +07:00
asepharyana 7df4592a47 feat(dimentorin): integrate mentors API - service layer + public list/detail pages 2026-08-04 17:55:59 +07:00
asepharyana 77eb755783 merge: integrate dimentorin landing pages (mentoring/articles/resources) with auth branch 2026-08-04 17:09:37 +07:00
euxzy 8c6a85090d feat(dimentorin): slicing landing - detail articles page 2025-07-28 21:33:58 +07:00
euxzy a6134cb32a feat(dimentorin): slicing landing - articles page 2025-07-28 20:45:29 +07:00
euxzy d9c5ff0b18 feat(dimentorin): slicing landing - resources page 2025-07-27 20:21:41 +07:00
euxzy 924354366c feat(dimentorin): slicing modal booking mentor 2025-07-26 22:12:47 +07:00
euxzy dce74c5c7c Merge remote-tracking branch 'origin/develop' into feat/dimentorin-landing-page 2025-07-23 18:49:55 +07:00
euxzy d4c263cad3 feat(dimentorin): slicing landing page detail mentor 2025-07-22 08:20:59 +07:00
Naufal AzmiandGitHub 228f92e9ed Mentor Register Page (#48)
* feat: responsive

* fix: success register

* feat: auth login responsive && auth login implementation

* fix: login page button disabled & register page

* fix: conflict

* fix: button disabled when loading

* feat: register and otp integration

* Update middleware.ts

* feat: OTP Resend

* fix: minor

* stash

* feat: mentor register pages

* feat: mentor status page pending and success
2025-07-13 03:40:23 +07:00
boboiazumi e2be5105e9 feat: mentor status page pending and success 2025-07-12 22:38:23 +07:00
boboiazumi eb5ff2e46c feat: mentor register pages 2025-07-12 22:15:43 +07:00
boboiazumi e1269f4daa fix: conflict 2025-07-10 10:18:44 +07:00
boboiazumi eff44c42a1 stash 2025-07-10 10:07:26 +07:00
euxzy 3e232dcdc2 feat(dimentorin): slicing landing page menu mentoring 2025-07-10 08:01:11 +07:00
Muhamad RijalandGitHub ec13f2c693 feat(dimentorin): slicing landing page (#46)
* feat(landing): slicing navigation bar

* feat(landing): slicing hero section

* feat(landing): slicing what we offer section

* feat(landing): add animation on hero and what we offer section

* feat(landing): slicing testimonial section

* feat(landing): change the animation for what we offer section

* feat: add utility for readable looping and conditional rendering of components

* feat(landing): slicing faq section

* feat(landing): change border radius of card on `what we offer` and `testimonial` section

* feat(landing): slicing cta section

* feat: modify accordion component

* feat(landing): add shape background at faq section

* feat(landing): slicing footer

* feat: toggle header visibility on scroll
2025-06-30 09:24:37 +07:00
boboiazumi aa52b62ae7 fix: minor 2025-06-19 21:36:08 +07:00
Naufal AzmiandGitHub b7282f9c99 Resend OTP (#34)
* feat: responsive

* fix: success register

* feat: auth login responsive && auth login implementation

* fix: login page button disabled & register page

* fix: conflict

* fix: button disabled when loading

* feat: register and otp integration

* Update middleware.ts

* feat: OTP Resend
2025-06-18 18:50:06 +07:00
boboiazumi a7cf85dd66 feat: OTP Resend 2025-05-30 14:19:36 +07:00
Naufal AzmiandGitHub aaf5b4262d Register and OTP (#31)
* feat: responsive

* fix: success register

* feat: auth login responsive && auth login implementation

* fix: login page button disabled & register page

* fix: conflict

* fix: button disabled when loading

* feat: register and otp integration

* Update middleware.ts
2025-05-26 20:49:57 +07:00
boboiazumi 935d23887c feat: register and otp integration 2025-05-26 20:14:26 +07:00
Naufal AzmiandGitHub 0f46244d2b Fix conflict and add disabled button when invalid input (#30)
* feat: responsive

* fix: success register

* feat: auth login responsive && auth login implementation

* fix: login page button disabled & register page

* fix: conflict

* fix: button disabled when loading
2025-05-26 17:07:51 +07:00
boboiazumi 363f1582c9 fix: button disabled when loading 2025-05-26 17:05:02 +07:00
boboiazumi 1a9b47953a fix: conflict 2025-05-26 16:28:46 +07:00
boboiazumi 182ff7facc fix: conflict 2025-05-25 10:12:21 +07:00
boboiazumi 4bd66af0ff fix: login page button disabled & register page 2025-05-25 09:24:24 +07:00
Maulana Sodiqin 9a0fee65a5 fixing so much trouble 2025-05-23 00:28:29 +07:00
Maulana Sodiqin f8cd57a1cf chore: update readme and env example 2025-05-20 11:09:14 +07:00
Naufal AzmiandGitHub 240e684b53 Dimentorin auth login responsive and implementation (#23)
* feat: responsive

* fix: success register

* feat: auth login responsive && auth login implementation
2025-04-09 12:59:33 +07:00
boboiazumi 73826fb4c3 feat: auth login responsive && auth login implementation 2025-04-08 12:28:18 +07:00
boboiazumi df479a0a8d fix: success register 2025-04-07 20:48:19 +07:00
Maulana Sodiqin 1b795f2dfc chore: add workflow 2025-04-07 19:15:39 +07:00
Maulana SodiqinandGitHub c907c696f5 Merge pull request #22 from IMPHNEN/DimentorinAuth
feat: register page and register success page
2025-04-07 17:46:09 +07:00
boboiazumi 1e391a2932 feat: register page and register success page 2025-04-07 11:36:44 +07:00
Maulana Sodiqin f8f796e071 chore: fix global error build 2025-04-03 12:31:16 +07:00
boboiazumi 74c0ebc5dd fix: bugs 2025-03-29 20:57:48 +07:00
boboiazumi ecdaa4a82e feat: Forgot Password Slicing, fix: webp image 2025-03-29 20:42:54 +07:00