OneSub est une application web moderne conçue pour vous aider à reprendre le contrôle de vos finances personnelles en centralisant la gestion de tous vos abonnements.
Dans une économie où le modèle par abonnement est omniprésent, il devient difficile de suivre exactement ce que l'on paie chaque mois. OneSub répond à ce problème en permettant de :
- Centraliser tous vos abonnements (Streaming, Logiciels, Assurances, Sport...) en un seul endroit.
- Visualiser l'impact financier mensuel et annuel de vos engagements.
- Anticiper les prélèvements à venir grâce à un calendrier interactif.
- Analyser la répartition de vos dépenses par catégories.
- Être notifié la veille de chaque échéance pour éviter les mauvaises surprises.
Ce projet utilise une stack technique moderne, robuste et performante :
- Next.js 15 (App Router) : Framework React full-stack.
- React 19 : Bibliothèque UI.
- Typescript : Pour un code typé et maintenable.
- Tailwind CSS : Pour le styling rapide et responsive.
- Firebase :
- Authentication : Gestion sécurisée des utilisateurs.
- Firestore : Base de données NoSQL en temps réel pour stocker les abonnements.
- Cloud Messaging (FCM) : Gestion des notifications push web.
- Lucide React : Système d'icônes cohérent.
- date-fns : Manipulation avancée des dates (gestion des récurrences, calendrier).
Une vue synthétique avec vos KPIs, la répartition graphique de vos dépenses et la liste de vos abonnements actifs.

Un calendrier intuitif pour visualiser vos échéances.
- Vert : Échéances passées (payées).
- Orange : Échéances à venir.
- Interactivité : Cliquez sur un jour pour voir les détails et modifier/supprimer un abonnement directement.

Une interface simple pour ajouter ou modifier vos services, avec sélection automatique des icônes et des couleurs de marque.

L'interface est entièrement pensée pour mobile, avec des claviers adaptés (numérique pour les prix) et une navigation fluide.
Pour lancer ce projet localement :
-
Cloner le dépôt
git clone https://github.com/JeremyB006/OneSub.git cd OneSub -
Installer les dépendances
npm install
Note : Assurez-vous d'avoir installé
firebase-adminetts-nodepour les scripts serveurs. -
Configurer Firebase Créez un fichier
.env.localà la racine et ajoutez vos identifiants Firebase :NEXT_PUBLIC_FIREBASE_API_KEY=... NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=... NEXT_PUBLIC_FIREBASE_PROJECT_ID=... NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=... NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=... NEXT_PUBLIC_FIREBASE_APP_ID=... # Clé VAPID pour les notifications (Voir section Notifications) NEXT_PUBLIC_FIREBASE_VAPID_KEY=...
-
Lancer le serveur de développement
npm run dev
L'application sera accessible sur http://localhost:8092.
OneSub intègre un système de notifications Web Push pour vous alerter la veille d'un paiement.
- Allez dans la console Firebase > Paramètres du projet > Cloud Messaging.
- Dans "Configuration Web", générez une nouvelle paire de clés (Certificats Push Web).
- Ajoutez la clé publique dans votre fichier
.env.local:NEXT_PUBLIC_FIREBASE_VAPID_KEY=votre_cle_publique
Le fichier public/firebase-messaging-sw.js gère la réception des notifications en arrière-plan.
.env.local). Vous devez éditer ce fichier et remplacer les valeurs de firebaseConfig manuellement avec vos propres clés Firebase.
// public/firebase-messaging-sw.js
firebase.initializeApp({
apiKey: "VOTRE_API_KEY",
authDomain: "VOTRE_PROJECT_ID.firebaseapp.com",
projectId: "VOTRE_PROJECT_ID",
// ... autres clés
});Un script serveur est prévu pour vérifier chaque jour les abonnements arrivant à échéance le lendemain et notifier les utilisateurs concernés.
Pré-requis :
- Générez une clé privée pour votre compte de service Firebase (Console > Paramètres du projet > Comptes de service > Générer une nouvelle clé privée).
- Sauvegardez ce fichier JSON à la racine du projet sous le nom
service-account.json(ce fichier est ignoré par git).
Exécution quotidienne (CRON) :
Utilisez le script utilitaire scripts/run-daily-job.sh pour lancer le processus. Idéalement, configurez une tâche CRON pour l'exécuter chaque jour (ex: à 09h00 ou 19h00).
# Rendre le script exécutable
chmod +x scripts/run-daily-job.sh
# Lancer manuellement
./scripts/run-daily-job.shLe script se chargera automatiquement de définir GOOGLE_APPLICATION_CREDENTIALS et d'exécuter la logique TypeScript.
© 2026 OneSub. Tous droits réservés.
