{"id":23050455,"url":"https://github.com/cut0x/portfolio","last_synced_at":"2026-01-11T04:02:43.678Z","repository":{"id":298005913,"uuid":"993996870","full_name":"Cut0x/portfolio","owner":"Cut0x","description":"Code source de mon portfolio","archived":false,"fork":false,"pushed_at":"2025-12-17T16:57:26.000Z","size":8264,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-21T03:28:21.305Z","etag":null,"topics":["config","css","html","javasript","portfolio","website"],"latest_commit_sha":null,"homepage":"https://valloic.dev","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cut0x.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-01T00:57:55.000Z","updated_at":"2025-12-17T16:57:29.000Z","dependencies_parsed_at":"2025-06-08T22:26:20.833Z","dependency_job_id":"1b0ca59e-a4de-4080-ac27-f4399d85f6a8","html_url":"https://github.com/Cut0x/portfolio","commit_stats":null,"previous_names":["cut0x/portfolio"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/Cut0x/portfolio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cut0x%2Fportfolio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cut0x%2Fportfolio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cut0x%2Fportfolio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cut0x%2Fportfolio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cut0x","download_url":"https://codeload.github.com/Cut0x/portfolio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cut0x%2Fportfolio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28280313,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T03:48:11.750Z","status":"ssl_error","status_checked_at":"2026-01-11T03:48:02.765Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["config","css","html","javasript","portfolio","website"],"created_at":"2024-12-15T23:32:50.533Z","updated_at":"2026-01-11T04:02:43.672Z","avatar_url":"https://github.com/Cut0x.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📁 Structure du Projet Portfolio\n\n```\nportfolio/\n│\n├── index.php                    # Page d'accueil\n├── contact.php                  # Page de contact\n├── projects.php                 # Page tous les projets\n├── about.php                    # Page à propos\n├── config.php                   # Configuration\n│\n├── discord/\n│   ├── login.php               # Authentification Discord\n│   ├── callback.php            # Callback OAuth\n│   └── logout.php              # Déconnexion\n│\n├── src/\n│   ├── css/\n│   │   └── styles.css          # Styles avec dégradés bleu/violet\n│   │\n│   ├── js/\n│   │   └── three-background.js # Cubes 3D flottants Three.js\n│   │\n│   ├── imgs/\n│   │   └── logo.png            # Logo du site\n│   │\n│   ├── utils/\n│   │   ├── database.php        # Classe Database\n│   │   └── functions.php       # Fonctions utilitaires\n│   │\n│   └── includes/\n│       └── layout/\n│           └── landing.php     # Template principal avec Three.js\n│\n├── admin/\n│   └── panel.php               # Panel admin (à créer)\n│\n├── vendor/                      # Dépendances Composer\n│   └── autoload.php\n│\n├── composer.json                # Configuration Composer\n└── schema.sql                   # Structure de la base de données\n```\n\n## 🚀 Installation\n\n### 1. Configuration de la base de données\n\n```bash\nmysql -u root -p \u003c schema.sql\n```\n\n### 2. Installation de PHPMailer via Composer\n\n```bash\ncomposer require phpmailer/phpmailer\n```\n\n### 3. Configuration dans `config.php`\n\nModifiez les paramètres selon votre environnement :\n- Base de données (DB_HOST, DB_NAME, DB_USER, DB_PASS)\n- Discord OAuth (CLIENT_ID, CLIENT_SECRET)\n- ADMIN_DISCORD_ID\n\n### 4. Configuration PHPMailer dans `contact.php`\n\nRemplacez dans la section PHPMailer :\n```php\n$mail-\u003eHost = 'smtp.gmail.com';\n$mail-\u003eUsername = 'votre-email@gmail.com';\n$mail-\u003ePassword = 'votre-mot-de-passe-app';\n```\n\nPour Gmail, créez un mot de passe d'application :\n1. Allez dans votre compte Google\n2. Sécurité → Mots de passe des applications\n3. Créez un nouveau mot de passe pour l'application\n\n## ✨ Fonctionnalités\n\n### 🎨 Design\n- **Cubes 3D flottants** avec Three.js\n- **Dégradés bleu/violet** (#6366f1, #8b5cf6, #3b82f6, #9333ea)\n- **Glassmorphism** sur la navbar\n- **Animations fluides** et parallax\n- **Responsive** parfait sur tous les appareils\n\n### 🔐 Authentification\n- **Discord OAuth** pour se connecter\n- **Sessions sécurisées** en base de données\n- **Panel admin** pour gérer le contenu\n\n### 📧 Contact\n- **Formulaire de contact** avec validation\n- **Sauvegarde en BDD** de tous les messages\n- **Envoi d'email** via PHPMailer\n- **Panel admin** pour consulter les messages\n\n### 📊 Base de données\n- **site_settings** : Paramètres du site\n- **projects** : Gestion des projets\n- **posts** : Articles de blog\n- **contact_messages** : Messages de contact\n- **user_sessions** : Sessions utilisateurs\n- **project_categories** : Catégories de projets\n- **site_stats** : Statistiques du site\n\n## 🔧 Fichiers créés\n\n### ✅ Complétés\n1. **schema.sql** - Structure BDD complète avec table contact_messages\n2. **styles.css** - Design moderne avec dégradés bleu/violet\n3. **three-background.js** - Cubes 3D flottants animés\n4. **landing.php** - Template avec Three.js et responsive corrigé\n5. **contact.php** - Page de contact avec PHPMailer\n6. **index.php** - Page d'accueil avec toutes les sections\n\n### 📝 À créer (optionnel)\n- `projects.php` - Liste complète des projets\n- `about.php` - Page à propos\n- `post.php` - Affichage d'un article\n- `admin/panel.php` - Panel d'administration\n\n## 🎯 Points clés\n\n### Three.js - Cubes 3D\n- 25 cubes flottants avec couleurs dégradées\n- Animation de rotation continue\n- Mouvement flottant sinusoïdal\n- Pulsation de l'opacité\n- Réaction au mouvement de la souris\n- Performance optimisée\n\n### Responsive navbar\n- **Corrigé** : Toggle fonctionne parfaitement\n- Fermeture au clic extérieur\n- Fermeture au clic sur lien\n- Animations fluides\n- Glassmorphism préservé\n\n### Dégradés bleu/violet\n- Variables CSS cohérentes\n- Utilisation dans tous les éléments\n- Animations de gradient\n- Effets de glow et shadows\n\n## 📱 Responsive\n\n- ✅ Desktop (1920px+)\n- ✅ Laptop (1366px)\n- ✅ Tablet (768px)\n- ✅ Mobile (480px)\n- ✅ Small Mobile (320px)\n\n## 🎨 Palette de couleurs\n\n```css\n--primary: #6366f1;      /* Indigo */\n--blue: #3b82f6;         /* Bleu */\n--secondary: #8b5cf6;    /* Violet */\n--purple: #9333ea;       /* Purple */\n--accent: #a855f7;       /* Violet clair */\n```\n\n## 🔒 Sécurité\n\n- Préparation des requêtes SQL (PDO)\n- Échappement HTML (htmlspecialchars)\n- Validation des emails (filter_var)\n- Protection CSRF (à ajouter en production)\n- Sessions sécurisées avec tokens\n- Nettoyage automatique des sessions expirées","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcut0x%2Fportfolio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcut0x%2Fportfolio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcut0x%2Fportfolio/lists"}