@@ -6,26 +6,61 @@ This is a Nuxt 3 + Supabase project using TypeScript
66
77## Key Directories
88
9+ - /assets: Project assets (images, videos, CSS)
10+ - /img: Image assets including logo
11+ - /videos: Video assets with subtitles
12+ - /css: Global styles
13+ - /components: Vue components organized by feature
914- /server: Server-side TypeScript configuration
1015- /supabase: Local Supabase instance configuration
1116- /public: Static assets
1217
18+ ## Component Organization
19+
20+ - SiteHeader: Main navigation and search
21+ - HomeHero: Hero section with side-by-side video and content
22+ - ProjectsList: Grid display of projects from Supabase
23+ - GetInvolved: Call-to-action section with engagement options
24+ - SiteFooter: Site navigation and links
25+
1326## Critical Files
1427
1528- app.vue: Main application entry point
1629- nuxt.config.ts: Nuxt configuration
1730- supabase/.env: Local Supabase configuration (copy from .env.example)
1831- tsconfig.json: TypeScript configuration
32+ - .env: Frontend environment variables (base64 encoded in GitHub secrets)
1933
2034## Development Requirements
2135
2236- Node.js is managed via asdf (.tool-versions)
2337- Supabase requires Docker for local development
24- - Environment setup requires copying supabase/.env.example to supabase/.env
38+ - Environment setup requires:
39+ 1. Copying supabase/.env.example to supabase/.env
40+ 2. Setting up .env with frontend configuration
41+
42+ ## Deployment
43+
44+ - Static site generation using `npm run generate`
45+ - Automated deployment to GitHub Pages via Actions workflow
46+ - Environment variables handled through FRONTEND_ENV_BASE64 secret
47+ - Custom domain configured through CNAME
2548
2649## Important Considerations
2750
2851- Always ensure Supabase Docker containers are running before development
2952- The application runs on port 3000, Supabase on port 8000
3053- TypeScript is used throughout the project
3154- Changes to Supabase configuration require Docker container restart
55+ - Components follow a modular design pattern with clear separation of concerns
56+ - Video and image assets are stored in /assets directory and referenced using ~/assets path
57+ - When replicating existing pages, first capture a full-resolution screenshot:
58+
59+ ```bash
60+ # Example for capturing homepage:
61+ puppeteer screenshot --viewport 1280x720 https://codeforphilly.org/ .scratch/home.png
62+ # Example for capturing projects page:
63+ puppeteer screenshot --viewport 1280x720 https://codeforphilly.org/projects .scratch/projects.png
64+ ```
65+
66+ Then examine the saved image to ensure accurate replication at desktop resolution
0 commit comments