Skip to content

Repository files navigation

🗺️ DNA Interactive - Duet Night Abyss Map

DNA Interactive

Carte interactive et ressources communautaires pour Duet Night Abyss

Next.js

TypeScript

Tailwind CSS

Bun

License

🌟 À propos du projet

DNA Interactive est une plateforme web communautaire dédiée au jeu Duet Night Abyss. Notre mission est de faciliter l'exploration et la découverte de cet univers fascinant en fournissant des outils interactifs et des ressources utiles aux joueurs.

⚠️ Avertissement important

DNA Interactive n'est en aucun cas affilié ou lié au créateur du jeu Duet Night Abyss. Ce site est un projet communautaire indépendant créé par des fans pour des fans. Toutes les données et ressources utilisées proviennent de sources publiques et respectent les droits d'auteur et les conditions d'utilisation du jeu original.

Pour plus d'informations sur le jeu officiel, visitez le site d'Ascencia.

✨ Fonctionnalités

🗺️ Carte Interactive

  • 6 régions cartographiées : Explorez tous les recoins du jeu
  • Système de marqueurs : Marquez automatiquement vos découvertes
  • Filtres avancés : Catégorisation par type de contenu (coffres, PNJ, points d'intérêt)
  • Interface responsive : Compatible desktop et mobile
  • Navigation fluide : Zoom, panoramique et recherche intuitifs

📚 Centre de Ressources

  • Page d'accueil : Présentation du projet et du jeu
  • Support & FAQ : Aide complète et questions fréquentes
  • Contact : Formulaire de contact et informations communautaires
  • À propos : Histoire du projet et équipe

🎨 Fonctionnalités Techniques

  • SEO optimisé : Métadonnées complètes, Open Graph, Twitter Cards
  • Performance : Images optimisées, lazy loading, PWA-ready
  • Accessibilité : Navigation ARIA, contraste optimisé
  • Internationalisation : Support français complet

🚀 Démarrage rapide

Prérequis

  • Node.js 18+ ou Bun 1.2+
  • Git pour le clonage

Installation

  1. Clonez le repository

    git clone https://github.com/your-username/dna-interactive.git
    cd dna-interactive
  2. Installez les dépendances

    # Avec Bun (recommandé)
    bun install
    
    # Ou avec npm
    npm install
    
    # Ou avec yarn
    yarn install
  3. Lancez le serveur de développement

    # Avec Bun
    bun run dev
    
    # Avec npm
    npm run dev
    
    # Avec yarn
    yarn dev
  4. Ouvrez votre navigateur

    http://localhost:3000
    

🛠️ Technologies utilisées

Framework & Runtime

  • Next.js 15 - Framework React moderne avec App Router
  • TypeScript - Typage statique pour JavaScript
  • Bun - Runtime JavaScript ultra-rapide

UI & Styling

État & Données

  • Jotai - Gestion d'état légère et performante
  • JSON - Stockage des données de cartes

SEO & Performance

  • Métadonnées Next.js - SEO automatique et optimisé
  • Données structurées - JSON-LD pour les moteurs de recherche
  • Sitemap dynamique - Indexation automatique
  • Robots.txt - Instructions pour les crawlers

📁 Structure du projet

dna-interactive/
├── public/
│   ├── assets/
│   │   ├── ui/           # Éléments d'interface (logos, icônes)
│   │   ├── icons/        # Icônes des catégories
│   │   ├── worldview/    # Images du carrousel
│   │   └── swiper/       # Images supplémentaires
│   ├── manifest.json     # Configuration PWA
│   └── robots.txt        # Instructions SEO
├── src/
│   ├── app/
│   │   ├── layout.tsx    # Layout principal avec métadonnées
│   │   ├── page.tsx      # Page d'accueil
│   │   ├── globals.css   # Styles globaux
│   │   ├── sitemap.ts    # Sitemap dynamique
│   │   ├── map/          # Page de la carte interactive
│   │   ├── contact/      # Page de contact
│   │   ├── support/      # Page de support
│   │   └── about/        # Page à propos
│   ├── components/
│   │   ├── MapComponent.tsx    # Composant carte principal
│   │   ├── StructuredData.tsx  # Données structurées SEO
│   │   └── Providers.tsx       # Providers React
│   ├── lib/
│   │   ├── constants.ts  # Constantes centralisées
│   │   └── store.ts      # État global Jotai
│   └── data/
│       └── mapData.json  # Données des cartes
└── package.json

🎯 Scripts disponibles

# Développement
bun run dev          # Serveur de développement
bun run build        # Build de production
bun run start        # Serveur de production
bun run lint         # Vérification ESLint

# Analyse
bun run type-check   # Vérification TypeScript
bun run analyze      # Analyse du bundle (si configuré)

🌐 Déploiement

Préparation pour la production

  1. Variables d'environnement

    # Créez un fichier .env.local
    NEXT_PUBLIC_SITE_URL=https://dna.ascencia.re
    NEXT_PUBLIC_SARUTOBI_PROJECT_TOKEN=st_live_...
    NEXT_PUBLIC_SARUTOBI_HOST=https://sarutobi.ascencia.re
  2. Build de production

    bun run build
  3. Déploiement

    bun run start

Plateformes recommandées

  • Vercel - Déploiement automatique depuis Git
  • Netlify - Hébergement moderne
  • Railway - Déploiement simple

🤝 Contribution

Les contributions sont les bienvenues ! Voici comment participer :

Pour les développeurs

  1. Fork le projet
  2. Créez une branche (git checkout -b feature/AmazingFeature)
  3. Committez vos changements (git commit -m 'Add some AmazingFeature')
  4. Push vers la branche (git push origin feature/AmazingFeature)
  5. Ouvrez une Pull Request

Pour les contributeurs de contenu

  • Signalez des bugs ou des problèmes
  • Suggérez de nouvelles fonctionnalités
  • Améliorez la documentation
  • Partagez vos découvertes dans le jeu

📞 Support & Contact

Communauté

Équipe

  • Créateur : Ahmed Karim aka PedroKarim
  • Studio : Ascencia

📊 Métriques & Analytics

DNA Interactive utilise l'instance auto-hébergée Sarutobi, via le paquet @ascencia/sarutobi-react épinglé dans package.json. Le site chargeait auparavant https://sarutobi.ascencia.re/s.js par une balise <script> — cette voie existe pour les sites sans bundler, et elle privait celui-ci de environment et de beforeSend, qui manquaient tous les deux.

L'initialisation vit dans src/lib/analytics.ts ; SarutobiAnalytics.tsx ne fait que l'appeler depuis la racine cliente.

La clé st_live_... est publique et limitée aux domaines déclarés dans Sarutobi. Sans NEXT_PUBLIC_SARUTOBI_PROJECT_TOKEN, rien n'est initialisé, aucune requête n'est émise et l'application fonctionne normalement.

Deux réglages méritent d'être connus :

  • /admin, /reset-password et /verify-email ne sont jamais collectés, toutes locales confondues.
  • Le préfixe de locale est retiré du chemin mesuré. localePrefix: 'always' faisait compter une même page sous sept chemins ; la langue voyage désormais en contexte de lot, donc elle reste lisible sur tous les événements.

La collecte automatique couvre les pages, parcours, sources, appareils, Web Vitals et erreurs JavaScript expurgées. Les événements métier instrumentés :

Événement
build_started, build_published, build_publish_failed constructeur
build_shared, build_voted constructeur, fiche perso, hub, détail
favorite_toggled objets et personnages
list_filtered grilles objets et personnages
signup_completed, signup_failed inscription
login_completed, login_failed connexion
code_copied codes
map_marker_opened carte

Aucun terme de recherche n'est transmis : list_filtered porte le fait qu'une recherche a eu lieu et le nombre de résultats, pas ce qui a été tapé.

Pour vérifier localement, définir temporairement NEXT_PUBLIC_SARUTOBI_ENABLE_LOCAL=true et NEXT_PUBLIC_SARUTOBI_DEBUG=true, puis contrôler qu'un POST vers https://sarutobi.ascencia.re/api/collect reçoit 202. Le domaine local ou de preview doit être autorisé côté Sarutobi.

🔒 Sécurité & Confidentialité

  • les valeurs de formulaires, mots de passe, emails, pseudos et contenus de builds ne sont jamais envoyés à Sarutobi ;
  • un compte connecté est rapproché uniquement par son identifiant interne et son rôle ;
  • la politique complète et localisée est disponible sur la page Confidentialité.

📈 Roadmap

✅ Version actuelle (1.0.0)

  • Carte interactive complète
  • Interface responsive
  • SEO optimisé
  • Support multilingue (FR)

🔄 Prochaines fonctionnalités

  • Système de recherche avancé
  • Mode hors-ligne (PWA)
  • Partage de découvertes communautaires
  • API pour intégrations tierces
  • Mode sombre/clair automatique

💡 Idées communautaires

  • Calculatrice de ressources
  • Guide visuel des quêtes
  • Base de données des PNJ
  • Outil de planification d'exploration

🏆 Crédits & Remerciements

Équipe de développement

  • Ahmed Karim (PedroKarim) - Créateur & Développeur principal

Communauté

  • Tous les testeurs et contributeurs
  • La communauté Duet Night Abyss

Technologies & Ressources

📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.


🎮 À propos de Duet Night Abyss

Duet Night Abyss est un jeu d'aventure captivant développé par Ascencia. Le jeu transporte les joueurs dans un monde mystérieux rempli de secrets, de créatures étranges et de trésors cachés.

DNA Interactive a été créé pour enrichir l'expérience de jeu en fournissant des outils communautaires et des ressources utiles aux joueurs.


Fait avec ❤️ pour la communauté Duet Night Abyss

🌟 Explorez, découvrez, maîtrisez ! 🌟

About

DNA Interactive est une plateforme web communautaire dédiée au jeu Duet Night Abyss

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages