grants/FILE_MANIFEST.md
gdegelas a05331128b Atlas Green Morocco — grant strategy platform
- Full grant strategy framework for renewable energy & green hydrogen
- AI-powered grant studio, partner outreach, financial modeling
- Umami analytics with data-performance tracking
- Live Degelas metrics connected to solar.degelas.be
- Trilingual (EN/FR/AR) with i18n support
- Dockerized with Nginx frontend + Express API proxy
2026-06-01 09:44:03 +00:00

788 lines
21 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Atlas Green Morocco — Complete File Manifest
## Every File in the Production-Ready Package
---
## 🎯 Quick File Reference
### Essential Files (Must Keep)
| File | Purpose | Size | Can Delete? |
|------|---------|------|------------|
| `src/App.tsx` | Main React app component | ~500 B | ❌ No |
| `src/main.tsx` | React entry point | ~200 B | ❌ No |
| `index.html` | HTML template | ~400 B | ❌ No |
| `Dockerfile` | Docker build configuration | ~300 B | ❌ No |
| `docker-compose.yml` | Docker Compose config | ~200 B | ❌ No |
| `nginx.conf` | Nginx server config | ~1 KB | ❌ No |
| `package.json` | Dependencies and scripts | ~1 KB | ❌ No |
| `tailwind.config.ts` | Tailwind CSS config | ~500 B | ❌ No |
### Important Files (Should Keep)
| File | Purpose | Size | Can Delete? |
|------|---------|------|------------|
| `.dockerignore` | Docker build exclusions | ~200 B | ❌ No (for Docker) |
| `tsconfig.json` | TypeScript configuration | ~500 B | ❌ No (for build) |
| `vite.config.ts` | Vite build configuration | ~300 B | ❌ No (for build) |
| `public/images/hero.jpg` | Hero section background | ~200 KB | ✅ Yes (but recommended) |
### Documentation (For Reference)
| File | Purpose | Size | Can Delete? |
|------|---------|------|------------|
| `README.md` | Project overview | ~20 KB | ✅ Yes (but recommended) |
| `DEPLOYMENT_GUIDE.md` | 1236 month playbook | ~40 KB | ✅ Yes (but recommended) |
| `FOUNDER_CHECKLIST.md` | Daily/weekly tasks | ~30 KB | ✅ Yes (but recommended) |
| `DOCKER_DEPLOYMENT.md` | Docker deployment guide | ~35 KB | ✅ Yes (but recommended) |
| `PACKAGE_SUMMARY.md` | Package contents | ~30 KB | ✅ Yes (but recommended) |
| `FILE_MANIFEST.md` | This file | ~20 KB | ✅ Yes |
---
## 📁 Complete Directory Tree
```
atlas-green-morocco/
├── 📄 Root Files
│ ├── index.html # HTML template (entry point)
│ ├── package.json # Dependencies and npm scripts
│ ├── package-lock.json # Dependency lock file (auto-generated)
│ ├── tsconfig.json # TypeScript configuration
│ ├── vite.config.ts # Vite build tool config
│ ├── tailwind.config.ts # Tailwind CSS configuration
│ ├── .gitignore # Git exclusions
│ │
│ ├── 🐳 Docker & Deployment
│ │ ├── Dockerfile # Multi-stage Docker build
│ │ ├── docker-compose.yml # Docker Compose setup
│ │ ├── nginx.conf # Nginx server configuration
│ │ └── .dockerignore # Docker build exclusions
│ │
│ └── 📚 Documentation
│ ├── README.md # Complete project documentation
│ ├── DEPLOYMENT_GUIDE.md # 1236 month execution playbook
│ ├── FOUNDER_CHECKLIST.md # Daily/weekly action checklist
│ ├── DOCKER_DEPLOYMENT.md # Production deployment guide
│ ├── PACKAGE_SUMMARY.md # Package contents & usage
│ ├── FILE_MANIFEST.md # This file
│ └── LICENSE # MIT License
├── src/ # Source code directory
│ │
│ ├── components/ # React components
│ │ ├── Nav.tsx # Navigation header (sticky)
│ │ ├── Hero.tsx # Hero section with background
│ │ ├── PositionSection.tsx # Business model selector (interactive)
│ │ ├── OpportunitiesSection.tsx # 4 opportunity categories (AD)
│ │ ├── ZonesSection.tsx # Moroccan free zones
│ │ ├── PlaybookSection.tsx # Company structure, funding, MVP
│ │ ├── DeploymentPlaybook.tsx # 7-phase deployment guide
│ │ ├── MacroSection.tsx # Morocco's advantages
│ │ ├── IdeasSection.tsx # Top 5 startup ideas
│ │ ├── PathSection.tsx # Recommended practical path
│ │ ├── Footer.tsx # Footer with branding
│ │ └── Section.tsx # Reusable section wrapper
│ │
│ ├── data/ # TypeScript data files
│ │ ├── index.ts # Business models, opportunities, zones, ideas
│ │ └── deployment.ts # 7 deployment phases (100+ actions)
│ │
│ ├── utils/ # Utility functions
│ │ └── cn.ts # Tailwind class merging
│ │
│ ├── App.tsx # Main app component
│ ├── main.tsx # React entry point
│ └── index.css # Global Tailwind CSS styles
├── public/ # Static assets
│ └── images/
│ └── hero.jpg # Hero background image (AI-generated)
├── dist/ # Built application (auto-generated)
│ └── index.html # Single-file compiled app
└── node_modules/ # Dependencies (auto-generated, excluded from git)
└── [installed packages]
```
---
## 🔧 File Descriptions
### Source Code Files
#### `src/App.tsx` (Main Component)
```typescript
// Root React component
// Renders all sections in order:
// - Nav
// - Hero
// - PositionSection
// - OpportunitiesSection
// - ZonesSection
// - PlaybookSection
// - DeploymentPlaybook
// - MacroSection
// - IdeasSection
// - PathSection
// - Footer
```
**Lines**: ~40
**Edit**: When adding new sections or reordering
#### `src/main.tsx` (Entry Point)
```typescript
// React DOM render entry point
// Mounts <App /> to #root div
```
**Lines**: ~10
**Edit**: Only if changing React version or setup
#### `src/components/Nav.tsx` (Navigation)
```typescript
// Sticky header navigation
// Features:
// - Fixed positioning on scroll
// - Mobile hamburger menu
// - Quick links to all sections
// - Responsive design
```
**Lines**: ~100
**Edit**: To add/remove navigation links or change styling
#### `src/components/Hero.tsx` (Hero Section)
```typescript
// Full-screen hero with background image
// Features:
// - Background image (public/images/hero.jpg)
// - Gradient overlay
// - Core thesis statement
// - CTA buttons
// - Key statistics
```
**Lines**: ~80
**Edit**: To change hero image, copy, or CTA
#### `src/components/PositionSection.tsx` (Interactive Model Selector)
```typescript
// Business model comparison section
// Features:
// - 5 business models with metrics
// - Interactive click to select
// - Sticky detail panel
// - Capital/complexity/scalability meters
// - Entry point benefits highlight
```
**Lines**: ~150
**Edit**: To modify business models or metrics
#### `src/components/OpportunitiesSection.tsx` (Opportunity Categories)
```typescript
// 4 opportunity categories (AD)
// Features:
// - Expandable accordion cards
// - 13 products/services detailed
// - Context descriptions
// - "Why attractive" benefits
```
**Lines**: ~120
**Edit**: To add/modify opportunities or products
#### `src/components/ZonesSection.tsx` (Moroccan Free Zones)
```typescript
// 5 Moroccan free zones guide
// Features:
// - Zone cards with specialization
// - Future zone highlight (Dakhla)
// - Icons and descriptions
```
**Lines**: ~60
**Edit**: To add/remove zones or descriptions
#### `src/components/PlaybookSection.tsx` (Execution Playbook)
```typescript
// Company structure, funding, MVP strategy
// Features:
// - MVP Build → Embed → Expand timeline
// - Phase 2 (company structure)
// - Phase 4 (funding)
// - Phase 5 (MVP strategy)
```
**Lines**: ~90
**Edit**: To modify phases or add new ones
#### `src/components/DeploymentPlaybook.tsx` (Interactive Playbook)
```typescript
// 7 deployment phases with full details
// Features:
// - 7 expandable accordion cards
// - 36+ actions with owners/timelines
// - 21+ checkpoints
// - 90+ success metrics
// - 40+ pitfalls documented
// - Color-coded criticality badges
```
**Lines**: ~200
**Edit**: To modify phases, actions, metrics, or pitfalls
#### `src/components/MacroSection.tsx` (Macro Analysis)
```typescript
// Morocco's advantages & macro trends
// Features:
// - 5 advantage cards
// - Core insight callout
```
**Lines**: ~50
**Edit**: To modify advantages or add new insights
#### `src/components/IdeasSection.tsx` (Top 5 Ideas)
```typescript
// 5 highest-upside startup ideas
// Features:
// - Ranked list with icons
// - Brief description for each
```
**Lines**: ~50
**Edit**: To add/remove ideas
#### `src/components/PathSection.tsx` (Practical Path)
```typescript
// 5-step recommended journey
// Features:
// - Numbered timeline
// - Dark section with gradient
// - CTA callout box
```
**Lines**: ~70
**Edit**: To modify path steps or messaging
#### `src/components/Section.tsx` (Reusable Component)
```typescript
// Generic section wrapper
// Features:
// - Eyebrow label
// - Title
// - Intro text
// - Optional dark mode
```
**Lines**: ~40
**Edit**: To change section styling defaults
#### `src/components/Footer.tsx` (Footer)
```typescript
// Footer with branding
// Features:
// - Logo
// - Copyright
// - Disclaimer
```
**Lines**: ~30
**Edit**: To add contact info, links, etc.
### Data Files
#### `src/data/index.ts` (Main Data)
```typescript
// Business models (5)
// Entry point benefits (5)
// Opportunities (4 categories, 13 products)
// Zones (5 Moroccan free zones)
// Startup ideas (5)
// Morocco advantages (5)
// Practical path (5 steps)
```
**Lines**: ~350
**Edit**: To update any strategy content
#### `src/data/deployment.ts` (Deployment Phases)
```typescript
// 7 deployment stages (07)
// Each includes:
// - Phase title, duration, objective
// - 56 actions (title, description, owner, timeline, resources)
// - 34 checkpoints (name, description, success criteria)
// - 812 success metrics
// - 46 pitfalls
```
**Lines**: ~900
**Edit**: To modify deployment timeline or add phases
### Configuration Files
#### `package.json`
```json
{
"name": "react-vite-tailwind",
"version": "0.0.0",
"dependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0",
"clsx": "^2.0.0",
"tailwind-merge": "^2.2.0"
},
"devDependencies": {
"typescript": "^5.3.0",
"vite": "^7.3.2",
"tailwindcss": "^3.4.0",
"@types/react": "^18.2.0",
"@types/node": "^20.0.0"
},
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
}
}
```
**Edit**: To add new npm packages or modify scripts
#### `tsconfig.json`
```json
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"jsx": "react-jsx",
"strict": true,
"moduleResolution": "bundler"
}
}
```
**Edit**: To change TypeScript compilation settings
#### `vite.config.ts`
```typescript
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import singleFile from 'vite-plugin-singlefile'
export default defineConfig({
plugins: [react(), singleFile()]
})
```
**Edit**: To change Vite build behavior or add plugins
#### `tailwind.config.ts`
```typescript
export default {
theme: {
extend: {
colors: {
emerald: { ... },
teal: { ... }
}
}
}
}
```
**Edit**: To customize colors, fonts, spacing, etc.
### Docker Files
#### `Dockerfile` (Multi-Stage Build)
```dockerfile
# Stage 1: Builder (Node.js 20 Alpine)
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# Stage 2: Runtime (Nginx Alpine)
FROM nginx:alpine AS runner
RUN rm -rf /usr/share/nginx/html/*
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
```
**Edit**: To change Node version, Nginx config, or build steps
#### `docker-compose.yml`
```yaml
version: '3.8'
services:
atlas-green-app:
build:
context: .
dockerfile: Dockerfile
image: atlas-green-morocco:latest
container_name: atlas-green-production
ports:
- "80:80"
restart: unless-stopped
environment:
- NODE_ENV=production
```
**Edit**: To change port, container name, or environment variables
#### `nginx.conf` (Web Server)
```nginx
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
# Gzip compression
gzip on;
gzip_types text/plain text/css application/javascript;
# Security headers
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
# SPA routing
location / {
try_files $uri $uri/ /index.html;
}
# Static asset caching
location ~* \\.(?:ico|css|js)$ {
expires 6M;
}
}
```
**Edit**: To add HTTPS, change domain, modify headers, etc.
#### `.dockerignore`
```
node_modules
dist
.git
.gitignore
.dockerignore
Dockerfile
docker-compose.yml
README.md
```
**Edit**: To exclude additional files from Docker build
### HTML & CSS
#### `index.html`
```html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Atlas Green — Building the Hydrogen Economy in Morocco (20262035)</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
```
**Edit**: To change page title or meta tags
#### `src/index.css`
```css
@import "tailwindcss";
html {
scroll-behavior: smooth;
}
body {
font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto;
}
```
**Edit**: To add global CSS or change font
### Utilities
#### `src/utils/cn.ts`
```typescript
import { clsx, type ClassValue } from "clsx";
import { twMerge } from "tailwind-merge";
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
}
```
**Edit**: Rarely (used for merging Tailwind classes)
### Documentation Files
#### `README.md` (~500 lines)
- Project overview
- What is Atlas Green Morocco
- Features
- Getting started
- Project structure
- Documentation guide
- Technology stack
- Customization
- Performance metrics
- Browser support
- Contributing
- License
- Contact
#### `DEPLOYMENT_GUIDE.md` (~600 lines)
- Phase-by-phase breakdown (07)
- Actions with timelines
- Success checkpoints
- Success metrics
- Common pitfalls
- Quick reference table
- Financial milestones
- Funding by phase
- Pre-launch checklist
#### `FOUNDER_CHECKLIST.md` (~500 lines)
- Week-by-week tasks
- Daily action items
- Metrics to track
- Founder habits (weekly, monthly, quarterly)
- Key metrics guide
- Pro tips and don'ts
- Self-care reminders
#### `DOCKER_DEPLOYMENT.md` (~400 lines)
- Quick start (local)
- Production deployment options
- Docker architecture explained
- Nginx configuration details
- Environment variables
- Health checks
- Scaling tips
- Troubleshooting
- Security best practices
- Cost analysis
#### `PACKAGE_SUMMARY.md` (~350 lines)
- Package contents overview
- File structure
- Quick start (3 ways)
- Documentation guide
- Feature breakdown
- Customization guide
- Data statistics
- Design system
- Security & performance
- Pre-launch checklist
#### `FILE_MANIFEST.md` (~250 lines, this file)
- Quick file reference
- Complete directory tree
- File descriptions
- Lines of code per file
- Edit guidelines
---
## 📊 Code Statistics
### Total Lines of Code
| Category | Files | Lines | Purpose |
|----------|-------|-------|---------|
| **React Components** | 11 | ~1,100 | UI components |
| **Data Files** | 2 | ~1,250 | Strategy + deployment data |
| **Configuration** | 5 | ~500 | Build, TypeScript, Tailwind |
| **Docker** | 3 | ~150 | Containerization |
| **HTML/CSS** | 2 | ~50 | Global styles |
| **Total Code** | 23 | ~3,050 | - |
| **Documentation** | 6 | ~2,500 | .md files |
| **Grand Total** | 29 | ~5,550 | Everything |
### Bundle Sizes
| Metric | Size | Compressed | Notes |
|--------|------|-----------|-------|
| HTML output | 307 KB | 98 KB | Single-file build |
| Docker image | <25 MB | - | Nginx Alpine based |
| hero.jpg | ~200 KB | - | AI-generated background |
---
## 🔄 File Dependencies
```
index.html
src/main.tsx
src/App.tsx
├─→ src/components/Nav.tsx
├─→ src/components/Hero.tsx
├─→ src/components/PositionSection.tsx
│ ↓
│ src/data/index.ts (businessModels, entryPointBenefits)
├─→ src/components/OpportunitiesSection.tsx
│ ↓
│ src/data/index.ts (opportunities)
├─→ src/components/ZonesSection.tsx
│ ↓
│ src/data/index.ts (zones)
├─→ src/components/PlaybookSection.tsx
│ ↓
│ src/data/index.ts (phases, mvpSteps)
├─→ src/components/DeploymentPlaybook.tsx
│ ↓
│ src/data/deployment.ts (deploymentStages)
├─→ src/components/MacroSection.tsx
│ ↓
│ src/data/index.ts (moroccoAdvantages)
├─→ src/components/IdeasSection.tsx
│ ↓
│ src/data/index.ts (startupIdeas)
├─→ src/components/PathSection.tsx
│ ↓
│ src/data/index.ts (practicalPath)
└─→ src/components/Footer.tsx
All components use:
├─→ src/components/Section.tsx
├─→ src/utils/cn.ts
└─→ Tailwind CSS (via src/index.css)
```
---
## 🛠️ Building & Deployment Flow
```
package.json (npm scripts)
├─→ npm run dev
│ └─→ Vite dev server (port 5173)
├─→ npm run build
│ ├─→ TypeScript compilation
│ ├─→ React + Vite bundling
│ ├─→ Tailwind CSS processing
│ └─→ Output to dist/ (single index.html)
└─→ npm run preview
└─→ Preview production build locally
Dockerfile
├─→ Stage 1: Build (Node.js Alpine)
│ ├─→ npm ci (install dependencies)
│ ├─→ npm run build (compile)
│ └─→ Output: dist/index.html
└─→ Stage 2: Runtime (Nginx Alpine)
├─→ Copy dist/index.html → /usr/share/nginx/html/
├─→ Copy nginx.conf → /etc/nginx/conf.d/
└─→ Expose port 80, run Nginx
docker-compose.yml
├─→ docker compose up (build + run)
├─→ docker compose logs (view logs)
└─→ docker compose down (stop container)
```
---
## 🔐 Security: What's Where
| Security Feature | Location | Details |
|-----------------|----------|---------|
| Gzip compression | nginx.conf (line 7) | Reduces bandwidth 60% |
| Security headers | nginx.conf (line 11) | X-Frame-Options, CSP, etc. |
| HTTPS ready | DOCKER_DEPLOYMENT.md | Use Traefik or Cloudflare |
| Data encryption | Tailwind only | No backend, no data storage |
| Input validation | React components | Form validation (not applicable) |
| CORS | nginx.conf | Not explicitly set (static site) |
---
## 📝 Editing Checklists
### To Add a New Deployment Phase
1. Edit `src/data/deployment.ts`
2. Add new `DeploymentStage` object to `deploymentStages` array
3. Include: phase, title, objective, actions, checkpoints, metrics, pitfalls
4. Rebuild: `npm run build`
5. Test in browser
### To Modify Business Models
1. Edit `src/data/index.ts` `businessModels` array
2. Change properties (name, capital, complexity, etc.)
3. Rebuild: `npm run build`
4. PositionSection will automatically update
### To Add a New Opportunity Category
1. Edit `src/data/index.ts` `opportunities` array
2. Add new `Opportunity` object with products and functions
3. Update the icon emoji if needed
4. Rebuild: `npm run build`
5. OpportunitiesSection will automatically display
### To Deploy to Production
1. Ensure `Dockerfile`, `docker-compose.yml`, `nginx.conf` are correct
2. Run: `docker compose up -d --build`
3. Access at `http://your_server_ip`
4. See `DOCKER_DEPLOYMENT.md` for specific platform instructions
---
## 🚀 File Optimization Tips
### For Development
- Keep `src/` organized (components/ and data/ folders)
- Use TypeScript for type safety
- Use `npm run dev` for hot reload
### For Production
- Run `npm run build` before deploying
- Use Docker for containerization
- Verify `dist/index.html` contains compiled app
- Test with `docker compose up` before push
### For Maintenance
- Keep `src/data/` files in sync
- Update documentation when changing strategy
- Use git for version control
- Tag releases with version numbers
---
## 📦 What NOT to Delete
**Critical** (app won't work):
- `src/App.tsx`
- `index.html`
- `src/main.tsx`
- `package.json`
- `vite.config.ts`
- `tailwind.config.ts`
**Important** (Docker won't work):
- `Dockerfile`
- `docker-compose.yml`
- `nginx.conf`
**Helpful** (won't break, but lose value):
- `public/images/hero.jpg` (hero won't have background)
- Documentation files (lose reference material)
---
## ✅ Pre-Deployment Checklist
Before deploying to production:
- [ ] All files present (check FILE_MANIFEST.md)
- [ ] `npm run build` completes without errors
- [ ] `dist/index.html` exists and is <400 KB
- [ ] `docker compose up -d --build` succeeds
- [ ] Application loads at `http://localhost`
- [ ] All sections visible and clickable
- [ ] Navigation links work
- [ ] Expandable cards expand/collapse
- [ ] Hero image loads
- [ ] Responsive on mobile (open devtools, zoom to 375px width)
---
**Last Updated**: January 2026
**Version**: 1.0
**Status**: Production Ready