Landing page, design system, Supabase backend, hero video, Navbar/Footer#142
Open
akiwumi wants to merge 28 commits intoTechnigo:mainfrom
Open
Landing page, design system, Supabase backend, hero video, Navbar/Footer#142akiwumi wants to merge 28 commits intoTechnigo:mainfrom
akiwumi wants to merge 28 commits intoTechnigo:mainfrom
Conversation
Co-authored-by: Cursor <cursoragent@cursor.com>
…header Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…cts) Co-authored-by: Cursor <cursoragent@cursor.com>
New color palette (warm gold accent, deep near-black, parchment bg), Playfair Display serif headings, DM Sans body, pill-shaped buttons across all sections. Adds eyebrow labels, left-gold-border card accents, and refined typography hierarchy. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- EntrepreneurRegister: full registration form with company details, validation, confirmation email state - Welcome: email-confirmed T&C page (9 sections, accordion, 80/20 refund policy) - EntrepreneurProfile: avatar upload, bio, company presentation, read-only registration details - SubmitProject: project form with 21 business categories, PDF drag-and-drop upload (max 50 MB) - Payment: €1,000 payment page, working-day calendar, 30-min GMT time slots, card form - EntrepreneurDashboard: stats, submission tracker with status badges, admin chat panel - ProjectFeed: LinkedIn/Kickstarter-style discovery feed with search, category and stage filters - EntrepreneurSidebar: shared dark sidebar navigation component - App.jsx: all new routes wired; ChooseRole entrepreneur CTA updated to /register Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Step-by-step instructions covering: Supabase tables (entrepreneurs, projects, payments, messages, project_interests), RLS policies, storage buckets, auth email confirmation setup, frontend Supabase client, and per-page wiring for Register, Welcome, Profile, SubmitProject, Payment, Dashboard, and ProjectFeed. Includes Stripe PaymentIntent + webhook routes, signed PDF downloads, and deployment checklist. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Each page includes a dark hero with headline and CTA, image placeholders throughout, rich body content relevant to Connect Africa, and a bottom CTA section. Advice page includes a newsletter signup block and filterable article grid. Testimonials page includes video placeholders and case study sections. Why Us includes a problem/solution grid and comparison table. How It Works has a per-role step-by-step layout with alternating image panels. Navbar links updated from anchor hashes to proper routes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Full rewrite covering: all routes (public + entrepreneur flow), project structure with every new file, submission flow diagram, environment variables for both backend and frontend, design system tokens, and links to BACKEND_WIRING.md, DESIGN_SYSTEM.md, and Build_Guide.md. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Made-with: Cursor
…ct, Welcome; frontend Supabase client; backend server updates Made-with: Cursor
Made-with: Cursor
- Replace all <a> tags in Navbar, HeroVideo, Login, Register with React Router <Link> to prevent full-page reloads in the SPA - Add a prominent Register button in the navbar pointing to /login - Make the register CTA on the Login page a full-width button Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This was causing the Vercel build to fail, leaving the deployed app on an outdated version without the /login route. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
createClient throws if passed undefined, crashing the entire app and breaking all routes. Fall back to placeholder values so the app loads even without env vars configured (auth calls will fail gracefully). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ial — validate before signUp() Made-with: Cursor
Shows real-time feedback (green check / grey dot) for each rule as the user types: length, uppercase, lowercase, number, special char. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Avatar upload now stops and displays the error message if the storage upload fails (e.g. missing bucket or RLS policy), instead of silently continuing with no photo saved. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace .single() with .maybeSingle() to avoid 406 when no profile row exists - Remove unused Users import from lucide-react Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace getUser() (network request) with getSession() (local storage) so profile data loads reliably even after WebSocket suspension. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Made-with: Cursor
…nsert When Supabase email confirmation is enabled, signUp() returns no session, so the RLS policy blocks the entrepreneurs INSERT in Register.jsx silently. This leaves the user authenticated but without an entrepreneurs row, causing a FK violation (409) when inserting into projects. Fix: store form data in localStorage at registration, then retry the entrepreneurs INSERT in Welcome.jsx once the user is authenticated (after clicking the email confirmation link). Also updates README: add /login route, correct vercel.json path to frontend/vercel.json (root one was removed in a previous commit). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add type:module and strip babel/mongoose from backend - Tighten CORS to FRONTEND_URL origin - Add render.yaml for Render deployment blueprint Made-with: Cursor
- Strip Stripe import, payment intent and webhook routes from backend - Remove @stripe/stripe-js and stripe dependencies - Rewrite Payment page as verification-only scheduler (no card payment) - Update SubmitProject flow: pending_verification status, no fee references - Update Dashboard status config to match new pending_verification state - Remove Stripe env vars from render.yaml Made-with: Cursor
- Remove MOCK_PROJECTS, MOCK_SUBMISSIONS, MOCK_MESSAGES (replaced by Supabase) - Wire Dashboard to use real submissions state instead of mock data - Remove unused CATEGORIES_ICONS and Rocket from Advice.jsx - Remove unused useNavigate from Register.jsx - Remove extraneous suffix from StatsSection useEffect deps - Delete unused CTASection component - Delete dead .babelrc (Babel not used) - Remove boilerplate placeholder route from server.js Made-with: Cursor
Made-with: Cursor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
first push