ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A high-performing, mobile-first landing page for Willow Education built with Next.js 16, TypeScript, and Tailwind CSS.
Clone the repository and navigate to the project directory
Install dependencies:
pnpm install
Set up environment variables:
cp .env.example .env
Then fill in your Supabase credentials in .env:
NEXT_PUBLIC_SUPABASE_URL=your-supabase-project-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
Create a Supabase table for proposal requests:
CREATE TABLE proposal_requests (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
email TEXT NOT NULL,
phone TEXT NOT NULL,
job_title TEXT NOT NULL,
school_name TEXT NOT NULL,
school_size TEXT NOT NULL,
state TEXT NOT NULL,
interests TEXT,
message TEXT,
created_at TIMESTAMPTZ DEFAULT NOW()
);
Run the development server:
pnpm dev
Open http://localhost:3000 in your browser
.
├── app/
│ ├── layout.tsx # Root layout with fonts and metadata
│ ├── page.tsx # Home page
│ └── globals.css # Global styles
├── components/
│ ├── header.tsx # Navigation header
│ ├── hero.tsx # Hero section
│ ├── logo-carousel.tsx # Logo carousel
│ ├── stats-section.tsx # Statistics with count-up
│ ├── features-section.tsx # Feature blocks
│ ├── how-it-works.tsx # Process steps
│ ├── testimonials-section.tsx # Testimonials grid
│ ├── faq-section.tsx # FAQ accordion
│ ├── final-cta.tsx # Final CTA section
│ ├── footer.tsx # Footer
│ ├── proposal-form.tsx # Proposal request form
│ └── grey-placeholder.tsx # Reusable placeholder component
├── lib/
│ ├── utils.ts # Utility functions (cn)
│ ├── validations.ts # Zod schemas
│ ├── supabase.ts # Supabase client
│ └── proposal-modal-context.tsx # Modal state management
└── types/ # TypeScript type definitions
pnpm build
pnpm start
The landing page uses a greyscale color palette:
All visual assets (images, videos, logos) are currently grey placeholders ready to be replaced with actual assets.
All rights reserved - Willow Education
/one-goal-planning/faq is the Willow × OneGoal partnership FAQ. Everything
else under /one-goal-planning is forwarded to the partnership workspace app
(see next.config.ts); this one page is served from here. It is behind the
workspace passcode: the page checks the visitor's workspace sign-in with the
workspace itself, so there is nothing to configure.
middleware.ts adds a small script to full page
loads of the workspace (lib/one-goal-faq/workspace-links.ts) that puts an
FAQ card on the workspace home page and an FAQ entry in its menu. It removes
itself once the workspace ships its own link to the FAQ. Everything else under
/one-goal-planning still goes through the plain rewrite.lib/one-goal-faq/workspace-alma.ts), to every workspace page. She answers
through the workspace's own /api/ask, so she gets whatever the deployed
workspace supports, and she removes herself once the workspace renders its
own Alma. The FAQ page mounts her directly
(app/one-goal-planning/faq/AlmaAssistant.tsx).content/one-goal-faq.md. Edit it on GitHub; merging to
main publishes it. The notes at the top of the file explain the format.faq_suggestions table in Supabase and
emailed to [email protected]. Every two hours on weekdays,
.github/workflows/faq-suggestions.yml turns each new one into a pull
request against content/one-goal-faq.md: merge to accept, edit then merge
to revise, close to reject. One-time setup: run
supabase/faq_suggestions.sql in the Supabase SQL editor, then add the
SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY repository secrets. Set the
FAQ_REVIEWERS repository variable (comma-separated GitHub usernames) to
have each pull request request their review..github/workflows/update-one-goal-faq.yml.
Every Monday morning (Eastern) it reads the workspace for new meeting notes,
documents, and workstream changes, asks the model which answers they change,
and opens a pull request, "FAQ updates, week of ...", with the revised FAQ,
the update log the page shows, and a description of every change and its
source. Merging it publishes the changes. An unmerged pull request is
refreshed the next Monday rather than duplicated. A week whose records change
no answers only records that they were reviewed. It needs two repository
secrets, WORKSPACE_PASSCODE and OPENAI_API_KEY, and does nothing until
both are set; it can also be run any time from the Actions tab.