Aller au contenu principal
logoYvan Kerdanet
Tous les projets
enzo-DC /

doo

Créé le 29 mai 2026 · Dernière mise à jour 29 mai 2026

// langages

TypeScript70.3%Python18.5%JavaScript11.2%

// README

Doo

Doo est une application mobile anti-doomscrolling qui te propose des défis courts et concrets adaptés à ta situation du moment — dans le bus, en pause, dans ton lit, dans la salle d'attente, dans le métro ou à la maison.

Au lieu de scroller sans fin, Doo t'invite à observer, bouger et interagir avec le monde réel autour de toi.


Fonctionnalités

  • Sélection de contexte — Tu choisis où tu es (bus, métro, lit, maison...) et Doo te propose un défi adapté à cet endroit.
  • Défi aléatoire — Un défi est tiré au sort parmi une banque de défis prédéfinis. Tu peux en tirer un autre avec le bouton shuffle.
  • Réponse au défi — Une fois le défi réalisé, tu peux écrire comment ça s'est passé. Tes réponses sont sauvegardées.
  • Protection anti-scroll — Un gardien de notifications te prévient après X minutes de scroll (configurable : 5, 10, 15, 20, 30 min) pour te rappeler de lever les yeux.

Stack technique

Frontend

  • React Native avec Expo (Expo Router pour la navigation)
  • TypeScript
  • react-native-reanimated pour les animations
  • expo-notifications pour les notifications locales (protection anti-scroll)
  • expo-haptics pour les retours haptiques

Backend

  • Python avec FastAPI
  • MongoDB via Motor (driver async)
  • Pydantic pour la validation des données

API REST — endpoints principaux

MéthodeRouteDescription
GET/api/contextsListe tous les contextes disponibles
GET/api/challenge?context=busRetourne un défi aléatoire pour un contexte
POST/api/answersSauvegarde la réponse d'un utilisateur
GET/api/answersRécupère l'historique des réponses

Structure du projet

doo/ ├── backend/ │ ├── server.py # API FastAPI + logique des défis │ ├── requirements.txt # Dépendances Python │ └── tests/ │ └── test_doo_api.py └── frontend/ ├── app/ │ ├── index.tsx # Écran d'accueil — sélection du contexte │ ├── challenge.tsx # Écran du défi │ └── answer.tsx # Écran de réponse └── src/ ├── api/ # Client HTTP vers le backend ├── theme/ # Couleurs et espacements └── utils/ # Stockage local, notifications

Lancer le projet

Backend

cd backend pip install -r requirements.txt uvicorn server:main --reload

Pense à créer un fichier .env avec MONGO_URL et DB_NAME.

Frontend

cd frontend yarn install yarn start

Scanne le QR code avec l'app Expo Go sur ton téléphone, ou lance sur un émulateur avec yarn android / yarn ios.


Contextes disponibles

ContexteDescription
BusDéfis d'observation dans les transports
PauseMini-activités bien-être pendant une pause
LitExercices de pleine conscience au repos
Salle d'attenteJeux d'observation dans un espace public
MétroDéfis rapides dans les transports souterrains
MaisonActivités simples pour bouger chez soi