Application mobile React Native qui détermine en temps réel les villes du monde où il est actuellement l'heure de l'apéro (18h00 - 19h30) !
L'app utilise une base de données SQLite avec des fuseaux horaires internationaux et affiche pour chaque ville :
- L'heure locale actuelle
- Le cocktail, mocktail et plat typique du pays
- Mise à jour automatique toutes les minutes
Parfait pour savoir où trinquer virtuellement avec le monde entier ! 🍻
- Affichage des villes en heure d'apéro (18h00-19h30)
- Base de données SQLite avec 20+ villes internationales
- Spécialités locales par pays (cocktails, mocktails, plats)
- Mise à jour temps réel des heures locales
- Interface avec thèmes clair/sombre/auto
- Navigation par onglets (Home/Settings)
- Gestion des fuseaux horaires avec Luxon
- Paramètres de personnalisation des heures d'apéro
- React Native + Expo - Framework mobile
- TypeScript - Typage statique
- SQLite (expo-sqlite) - Base de données locale
- Luxon - Gestion des dates/fuseaux horaires
- Expo Router - Navigation
- React Navigation - Thèmes et navigation
- AsyncStorage - Stockage des préférences
EstimatedTimeofApero/
│── app/ # Pages Expo Router
│ │── (tabs)/ # Navigation par onglets
│ │ │── index.tsx # Page d'accueil (villes apéro)
│ │ │── settings.tsx# Paramètres thème
│ │ └── _layout.tsx # Layout onglets
│ └── _layout.tsx # Layout racine
│── assets/ # Fichiers statiques
│ │── full_seed.sql # Seed SQL complet
│ └── timezones_*.json# Données fuseaux horaires
│── components/ # Composants réutilisables
│ │── Cities/ # Cartes des villes
│ └── home/ # Composants page d'accueil
│── constants/ # Constantes (couleurs, thèmes)
│── context/ # Context React (ThemeProvider)
│── utils/ # Logique métier
│ │── apero.ts # Logique heure apéro
│ │── aperoDb.ts # Interface base de données
│ │── db.ts # Gestion SQLite
│ └── getCurrentTimezone.ts # Utils timezone
└── README.md # Cette documentationgit clone https://github.com/MarineG404/ETA
cd EstimatedTimeofAperonpm install
# ou
yarn installnpx expo startNote : La base de données SQLite se crée automatiquement au premier lancement avec toutes les données nécessaires (villes, pays, fuseaux horaires, spécialités).
- iOS : Scanner le QR code avec l'app Appareil photo
- Android : Scanner avec l'app Expo Go
- Web : Appuyer sur
wdans le terminal
L'app couvre 20+ villes dans 10 pays :
- 🇫🇷 France (Paris, Lyon)
- 🇺🇸 États-Unis (New York, Los Angeles)
- 🇬🇧 Royaume-Uni (London, Manchester)
- 🇩🇪 Allemagne (Berlin)
- 🇯🇵 Japon (Tokyo, Osaka)
- 🇮🇳 Inde (Mumbai, Delhi)
- 🇦🇺 Australie (Sydney)
- 🇧🇷 Brésil (São Paulo, Rio)
- 🇿🇦 Afrique du Sud (Johannesburg, Cape Town)
- 🇨🇦 Canada (Toronto, Montreal)
Chaque ville affiche ses spécialités locales (ex: French 75 🍸, Croissant 🥐 pour la France).
À venir
- GONNORD Marine : Développement Full-Stack (Backend SQLite + Frontend React Native)
À venir
// Dans l'app, la fonction resetDatabase() recrée toute la DB
import { resetDatabase } from '@/utils/aperoDb';
await resetDatabase();Modifier utils/aperoDb.ts dans la section seed cities et specials.
Modifier les constantes dans utils/apero.ts :
const aperoStart = '18:00'; // Début apéro
const aperoEnd = '19:30'; // Fin apéro