Spaces:
Running
Running
Commit History
26 days ago
-
fix(cert): auto-issue certificate on payment confirmation & sync course to 100% certified
46ab86e
29 days ago
-
feat: deploy Gemma 4 optimizations and backend updates to HF Spaces
b69dd51
-
refactor(ui): complete platform de-slop and remove AI badges across all pages
48e2068
-
feat: Add GetCert YT competency certification engine and assessment flow
515e3fb
-
feat: implement Swiss Modern Variant A for free course certificates and fix modal PDF download
4961d05 -
fix: resolve certificateType reference error, sync my_courses with admin backend and certificates fallback, and ensure resume visibility
7087641
-
perf: make free courses load in sub-50ms via direct Supabase query and decouple from dashboard stats
3689075 -
fix(build): restore missing closing bracket in getcertV2API import
2ad2a62 -
feat: add free starter courses, Google OAuth integration, and resilient profile sync
6f30bfd
-
feat: full UI credibility overhaul β Inter typography, clean headers, remove all AI slop tagsβ
- Migrate to Inter + JetBrains Mono typefaces site-wide; remove all napkin/sketch fonts - Replace all wobbly cartoon borders with clean rounded-xl/2xl geometry - Remove all floating AI slop pill badges: Cryptographic Registry, ACADEMIC ACCREDITATION TRACKS, Official Student Portal, PROCTORED EVALUATION, SYNTHESIZING CURRICULUM, ACCREDITATION GATE, QuickCert Credential Issuance, LEGAL AGREEMENT, DATA PROTECTION, PAYMENT ASSURANCE, ACADEMIC & PROFESSIONAL INTEGRITY, ABOUT GETCERT, CANDIDATE SUPPORT DESK, and more - Remove decorative icon boxes (w-8 h-8 rounded-lg) preceding page headings in MyCourses, MyCertificates, Dashboard - Remove mobile navbar user pill tag (Sarvesh) from Sidebar sticky header - Integrate official getcert_full_logo.svg in Sidebar (desktop + mobile), PolicyHeader - Integrate shadcn PencilLoader (loader-1.tsx) replacing broken napkin spinner - Fix hero section button/text color contrast: dark bg β white text, light bg β dark text - Fix selected pill state conβ¦50cd427
-
feat: normalize course titles into professional canonical titles and remove emojis across app
d08bef8
-
fix(certificate): eliminate PDF text vertical shift with calibrated html2canvas baseline correction and integrate OG GetCert logos
3302f5e -
feat(certificate): complete Course Completion Certificate redesign matching reference specificationβ
- Implement CertificateTemplateV2 matching exact visual layout, 1024x682 landscape canvas, vector rosette badge, dual dotted grids, corner waves/blobs, and typography - Dynamic QR code generation decoding to canonical verification URL - Dynamic recipient and course title scaling with safety constraints - Refactor CertificatePreview to integrate CertificateTemplateV2 across QuickCert, VerifiedCert, and MyCertificates flows - Optimize 300 DPI high-resolution A4 landscape PDF export with jsPDF & html2canvas - Add Playwright automated QA script verifying preview, PDF rendering, and QR code resolution8de00d6
-
feat(ui): complete end-to-end Napkin UI & hand-written notes transformation across all screens
1b5ee98
-
fix(auth, llm, yt): bypass browser Navigator LockManager lock collision, fix Gemma thinkingConfig and JSON extraction, and make YouTube initial data parser robust
373f801
-
feat(ux): add Apple-designed floating bottom course resume strip overlay
da384c1
-
fix(certificate): use pre-rendered high-res base64 GetCert brandmark to ensure 100% full logo rendering in PDF exports
0d2bc6b -
fix(certificate): fix PDF download misalignment, remove intersecting name line, and add forExport container scaling
e1340b3
-
fix(certificate): fix alignment, remove intersecting line through name, fix logo branding, and balance footer metadata
77fdf7f
-
feat: add MINT60 promo code discount, Huashu Design certificate revamp, and Cashfree paywall integration
6800903
-
Remove ALL fallback from course pipeline; fix skill resolution; add retry buttonsβ
BREAKING: Zero fallback policy β every failure must propagate to the UI. Backend: - courseEngine.ts: removed buildFallbackResources(); normalizeResources throws on missing YouTube URL; buildCourse throws instead of falling back - videoCatalog.ts: removed Python/JS hardcoded fallback in getOfflineFallbackCandidates() β returns empty array instead of wrong videos - videoSearch.ts: disabled selection cache (TTL=0), always does fresh search - llm_service.ts: removed generateRawPromptResponse try/catch fallback (no more 'autonomous free mode' hardcoded content) - skillValidationService.ts: stage2Token checks n-grams before single tokens; single-token match only for β€2 word queries; skips filler words (prevents 'full stack in java' being reduced to 'java-developer') - api/index.ts: better error message with skill name + 'Please retry.' hint Frontend: - getcertV2API.ts: removed withFallback(), fallbackProject(), fallbackEvaluateProject() β generateProject and evaluateProject nowβ¦48e10ef -
Fix course gen fallback and onboarding bugsβ
- generateCourse.ts: remove defaultModules fallback (errors propagate with retry button) - generateCourse.ts: fix timeout default 10s -> 300s (Gemma 4 needs ~40s) - getcertV2API.ts: remove fallbackCourse and withFallback call for generateCourse - migration: UPDATE existing users onboarding_completed=true so they skip onboarding - App.tsx: fix onboarding loading state (was falling through to dashboard before API check) - skillValidationService.ts: reduce validateWithLlm timeout to 60s - api/index.ts: remove unused skillValidationService import24502b8
-
Remove all assessment fallbacks, add retry button on generation failureβ
- Remove defaultAssessment() from backend - LLM failure now throws - Remove fallbackAssessment() from frontend API client - Remove fallbackGradeAssessment() + gradeTheory() heuristic fallbacks - API handler now returns actual error message from LLM - Assessment.tsx: add generationError/onRetry props, show retry UI when null pack - QuickCertFlow/VerifiedCertFlow: navigate to assessment step on failure with error14a92f0 -
Fix: revert paymentSessionId (camelCase SDK expects it), add track param for correct fee
69f083f
-
v4.5
8f3884e
-
v4.2
Boty AI58f08f5
-
v4.0
Boty AI6068938
-
fix: remove redundant 'users' table upsert to resolve 403 Forbidden errors blocking persistence
1bf095b -
fix: backfill user profiles for course persistence
18f0a56 -
fix: harden course persistence and repair unique constraints
cd2d934 -
fix: final 409 conflict resolution by forcing correct Vercel build output and removing upsert
2be273c -
chore: add diagnostic logs for my_courses to trace 409 error
aab6733 -
fix: replace Supabase HTTP upsert with select-update-insert fallback to prevent 409 Conflict errors
52744bc
-
Fix 500 on signup: remove flowType pkce (incompatible with email verification OFF)
grimb77b6a7 -
Fix critical auth flow bugs: race conditions, fingerprint dedup, session persistenceβ
grim- useAuth: Remove broken fingerprint deduplication that swallowed valid SIGNED_IN events - useAuth: Make onAuthStateChange the single source of truth (signUp/signIn no longer manually set user state) - useAuth: Handle INITIAL_SESSION event for proper session restoration on page load - useAuth: Add useCallback for stable function references, useRef for init tracking - supabase.ts: Add detectSessionInUrl for OAuth PKCE callback handling - supabase.ts: Explicitly enable persistSession - supabase.ts: Set flowType to 'pkce' for secure OAuth flows - AuthCallback: Remove manual exchangeCodeForSession (detectSessionInUrl handles it) - AuthCallback: Fix misleading 'Confirming your email' text - AuthForm: Remove unused useEffect import8c89708
-
refactor(assessment): utilize active course context for LLM generation, increase timeout, configure hot-reload for dev server, and clean up legacy dead code
grimf237798
-
latest
ef42ebe
-
Fix critical assessment generation errorβ
- Fixed 'originalGenerateLearningPathAssessment is not defined' error - Added missing imports from gemini.ts to enhancedAI.ts - Removed unused AccessCodeManager imports from PremiumLearningPaths.tsx - Assessment generation should now work properly in premium learning pathsfb45352 -
π§ Fix Gemini API integration for Vercel deploymentβ
β CRITICAL FIXES: - Update Assessment component to use secure AI client instead of direct gemini calls - Add missing methods to secureAIClient (generateAssessment, evaluateAnswer, generateMiniProject) - Fix API error handling with detailed logging and fallback responses - Add development-only VITE_GEMINI_API_KEY_1 for local fallback functionality - Update useChat.ts to use secure AI client methods with proper JSON parsing π‘οΈ API IMPROVEMENTS: - Enhanced error logging in backend API with environment debugging - Better fallback response when API keys not configured in Vercel - Added testConnection() method for API health checking - Improved error messages for troubleshooting deployment issues π DEBUGGING FEATURES: - Environment variable debugging (without exposing keys) - Detailed error reporting for API failures - Fallback responses to keep app functional during API issues This should resolve Gemini API integration issues in Vercel production deployment.fdca72a -
π SECURITY OVERHAUL: Complete production-ready security implementationβ
β MAJOR SECURITY FIXES: - Remove all console.log exposure of API keys and credentials - Implement secure serverless backend API proxy (/api/ai.ts) - Add production-safe logging system with credential sanitization - Configure build to strip all debug code in production - Fix all missing secure logger imports across entire codebase π‘οΈ BACKEND SECURITY: - Vercel serverless functions for secure API key management - Server-side AI API proxy prevents client credential exposure - Rate limiting and environment-based fallback handling - Complete separation of client/server environment variables π§ COMPREHENSIVE LOGGER AUDIT: - Fixed missing imports in 18+ files causing ReferenceError - All logger usage now properly imports secure logging system - Development-only logging with automatic production stripping - Credential sanitization prevents sensitive data leaks π¦ PRODUCTION HARDENING: - Terser build configuration strips console statements - Environment variable validation without value expβ¦d6ab07d
-
π CRITICAL SECURITY FIX: Remove all credential leaks from browser consoleβ
- Replace all console.log/error/warn with secure logger that only works in development - Created secureLogger.ts that automatically redacts sensitive data (API keys, user IDs, tokens) - Fixed duplicate logger imports that were breaking the build - Updated certificationAPI.ts to use secure logging (no more API keys/session IDs in console) - Enhanced environment security with secureEnvironment.ts validator - Updated supabase.ts to use secure configuration - Modified vite.config.ts to strip ALL console statements from production builds - Added security headers and build optimizations BEFORE: All API keys, user data, and credentials were visible in browser console AFTER: Zero sensitive data exposure - production builds have no logging whatsoever Production Security Status: π‘ IMPROVED (logging secured, API keys still need server proxy) Development Security: β SECURE (sensitive data redacted from logs)33927c8 -
Fix assessment evaluation system: Replace placeholder scores with real AI evaluationβ
- Enhanced certification API to use actual Gemini AI evaluation instead of placeholders - Added proper pass/fail logic with 60% threshold (scores below 60% now fail) - Updated Results component with conditional UI for passed vs failed assessments - Implemented retake functionality for failed assessments - Added comprehensive AI evaluation prompt with actual assessment questions - Enhanced scoring criteria: Beginner (60-75%), Intermediate (76-85%), Advanced (86-100%) - Added detailed feedback system to help students improve - Updated session status tracking for assessment failures - Modified CertificationFlowManager to handle assessment state and retakes - Added extensive debugging throughout the evaluation process - Created comprehensive test cases for assessment evaluation - Fixed all placeholder values (85 marks, A grade) with real evaluation results Assessment now properly evaluates student understanding and only allows progression to final project after demonstrating genuine compeβ¦abd2f2e
-
π Major Platform Revamp: Premium Learning Paths + Enhanced Certification Flow + Homepage Transformationβ
β¨ NEW FEATURES: - Premium Learning Paths with structured multi-step courses, badges, and mentorship - Enhanced AI-powered certification flow with real project generation - Completely revamped homepage showcasing new capabilities - Course session persistence system for seamless learning experience - Certification-focused navigation (removed chat-based UI) π¨ HOMEPAGE TRANSFORMATION: - Modern hero section with dual CTAs (Quick Certs vs Premium Paths) - Premium Learning Paths showcase with 6 comprehensive tracks - Enhanced Quick Certifications section (2-5 hour completions) - Updated features highlighting AI-powered + industry recognition - Professional gradient design with glassmorphism effects β‘ TECHNICAL IMPROVEMENTS: - New certification API with AI project generation - Premium topic detection system - Course session persistence with auto-resume - Sidebar restructured for certification-focused experience - Dashboard transformed from chat-based to certification-centric π§ SYSTEM ENHAβ¦e64b891
-
Initial commit: GetCert AI certification platform with chat interface and scroll fixes
7fa7b12